tkurbad-overlay/media-libs/lib3mf/files/lib3mf-2.2.0-0001-use-system-provided-act-binary.patch
2022-03-22 14:37:07 +01:00

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