142 lines
5.2 KiB
Diff
142 lines
5.2 KiB
Diff
|
From: Bernd Waibel <waebbl-gentoo@posteo.net>
|
||
|
Date: Wed, 25 Aug 2021 09:29:17 +0200
|
||
|
Subject: [PATCH] use system provided act binary
|
||
|
|
||
|
Signed-off-by: Bernd Waibel <waebbl-gentoo@posteo.net>
|
||
|
---
|
||
|
CMakeLists.txt | 110 ++++++++++++++++++++++++++++++++-----------------
|
||
|
1 file changed, 73 insertions(+), 37 deletions(-)
|
||
|
|
||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||
|
index d70a030..9c91496 100644
|
||
|
--- a/CMakeLists.txt
|
||
|
+++ b/CMakeLists.txt
|
||
|
@@ -62,14 +62,19 @@ endif()
|
||
|
|
||
|
|
||
|
### The API generation target
|
||
|
-if(CMAKE_HOST_UNIX)
|
||
|
- if(APPLE)
|
||
|
- set(ACT_COMMANDENDING darwin)
|
||
|
- else()
|
||
|
- set(ACT_COMMANDENDING linux)
|
||
|
+option(USE_SYSTEM_ACT "Use system provided act binary" OFF)
|
||
|
+if(NOT USE_SYSTEM_ACT)
|
||
|
+ if(CMAKE_HOST_UNIX)
|
||
|
+ if(APPLE)
|
||
|
+ set(ACT_COMMANDENDING darwin)
|
||
|
+ else()
|
||
|
+ set(ACT_COMMANDENDING linux)
|
||
|
+ endif()
|
||
|
+ elseif(CMAKE_HOST_WIN32)
|
||
|
+ set(ACT_COMMANDENDING exe)
|
||
|
endif()
|
||
|
-elseif(CMAKE_HOST_WIN32)
|
||
|
- set(ACT_COMMANDENDING exe)
|
||
|
+else()
|
||
|
+ find_program(ACT act)
|
||
|
endif()
|
||
|
|
||
|
set(CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED ${CMAKE_CURRENT_SOURCE_DIR}/Autogenerated)
|
||
|
@@ -80,36 +85,67 @@ set(ACT_GENERATED_SOURCE
|
||
|
${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Source/lib3mf_interfacewrapper.cpp
|
||
|
${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Source/lib3mf_interfacejournal.cpp
|
||
|
)
|
||
|
-add_custom_command(
|
||
|
- BYPRODUCTS
|
||
|
- ${ACT_GENERATED_SOURCE}
|
||
|
- OUTPUT
|
||
|
- ${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP
|
||
|
- WORKING_DIRECTORY
|
||
|
- ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit
|
||
|
- COMMAND
|
||
|
- cmake -E make_directory "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}"
|
||
|
- COMMAND
|
||
|
- cmake -E touch "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP"
|
||
|
- COMMAND
|
||
|
- ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/bin/act.${ACT_COMMANDENDING} ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/lib3mf.xml
|
||
|
- COMMAND
|
||
|
- cmake -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Source"
|
||
|
- COMMAND
|
||
|
- cmake -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Bindings"
|
||
|
- COMMAND
|
||
|
- cmake -E copy_directory "${CMAKE_TEMP_HEADER_FOLDER}/Bindings" ${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Bindings
|
||
|
- COMMAND
|
||
|
- cmake -E copy_directory "${CMAKE_TEMP_HEADER_FOLDER}/Implementations/Cpp/Interfaces" "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Source/"
|
||
|
- COMMAND
|
||
|
- cmake -E remove_directory "${CMAKE_TEMP_HEADER_FOLDER}"
|
||
|
- COMMENT
|
||
|
- "Generating hourglass API bindings and implementation stub"
|
||
|
- DEPENDS
|
||
|
- ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/lib3mf.xml
|
||
|
- VERBATIM
|
||
|
-)
|
||
|
-
|
||
|
+if(NOT USE_SYSTEM_ACT)
|
||
|
+ add_custom_command(
|
||
|
+ BYPRODUCTS
|
||
|
+ ${ACT_GENERATED_SOURCE}
|
||
|
+ OUTPUT
|
||
|
+ ${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP
|
||
|
+ WORKING_DIRECTORY
|
||
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit
|
||
|
+ COMMAND
|
||
|
+ cmake -E make_directory "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}"
|
||
|
+ COMMAND
|
||
|
+ cmake -E touch "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP"
|
||
|
+ COMMAND
|
||
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/bin/act.${ACT_COMMANDENDING} ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/lib3mf.xml
|
||
|
+ COMMAND
|
||
|
+ cmake -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Source"
|
||
|
+ COMMAND
|
||
|
+ cmake -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Bindings"
|
||
|
+ COMMAND
|
||
|
+ cmake -E copy_directory "${CMAKE_TEMP_HEADER_FOLDER}/Bindings" ${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Bindings
|
||
|
+ COMMAND
|
||
|
+ cmake -E copy_directory "${CMAKE_TEMP_HEADER_FOLDER}/Implementations/Cpp/Interfaces" "${CMAKE_CURRENT_SOURCE_DIR_AUTOGENERATED}/Source/"
|
||
|
+ COMMAND
|
||
|
+ cmake -E remove_directory "${CMAKE_TEMP_HEADER_FOLDER}"
|
||
|
+ COMMENT
|
||
|
+ "Generating hourglass API bindings and implementation stub"
|
||
|
+ DEPENDS
|
||
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/lib3mf.xml
|
||
|
+ VERBATIM
|
||
|
+ )
|
||
|
+else()
|
||
|
+ add_custom_command(
|
||
|
+ BYPRODUCTS
|
||
|
+ ${ACT_GENERATED_SOURCE}
|
||
|
+ OUTPUT
|
||
|
+ ${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP
|
||
|
+ WORKING_DIRECTORY
|
||
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit
|
||
|
+ COMMAND
|
||
|
+ cmake -E make_directory "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}"
|
||
|
+ COMMAND
|
||
|
+ cmake -E touch "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP"
|
||
|
+ COMMAND
|
||
|
+ ${ACT} ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/lib3mf.xml
|
||
|
+ COMMAND
|
||
|
+ cmake -E remove_directory "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/Source"
|
||
|
+ COMMAND
|
||
|
+ cmake -E remove_directory "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/Bindings"
|
||
|
+ COMMAND
|
||
|
+ cmake -E copy_directory "${CMAKE_TEMP_HEADER_FOLDER}/Bindings" ${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/Bindings
|
||
|
+ COMMAND
|
||
|
+ cmake -E copy_directory "${CMAKE_TEMP_HEADER_FOLDER}/Implementations/Cpp/Interfaces" "${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/Source/"
|
||
|
+ COMMAND
|
||
|
+ cmake -E remove_directory "${CMAKE_TEMP_HEADER_FOLDER}"
|
||
|
+ COMMENT
|
||
|
+ "Generating hourglass API bindings and implementation stub"
|
||
|
+ DEPENDS
|
||
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/AutomaticComponentToolkit/lib3mf.xml
|
||
|
+ VERBATIM
|
||
|
+ )
|
||
|
+endif()
|
||
|
add_custom_target(lib3mfACT
|
||
|
DEPENDS
|
||
|
${CMAKE_CURRENT_BINARY_DIR_AUTOGENERATED}/LIB3MFACTGENERATIONSTAMP
|
||
|
--
|
||
|
2.32.0
|
||
|
|