From 0915b3ef56dfac3113cce55a59a5765dc94976be Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:34:54 +0200 Subject: Adding upstream version 2.13.6. Signed-off-by: Daniel Baumann --- tools/mkunity/CMakeLists.txt | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tools/mkunity/CMakeLists.txt (limited to 'tools/mkunity/CMakeLists.txt') diff --git a/tools/mkunity/CMakeLists.txt b/tools/mkunity/CMakeLists.txt new file mode 100644 index 0000000..8fa0f20 --- /dev/null +++ b/tools/mkunity/CMakeLists.txt @@ -0,0 +1,47 @@ +# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ + +define_property( + SOURCE + PROPERTY EXCLUDE_UNITY_BUILD + BRIEF_DOCS "Whether to exclude the source file from unity builds" + FULL_DOCS "Specified whether a source file should be excluded from unity builds and should be built separately" +) + +if(ICINGA2_UNITY_BUILD) + set(mkunity_SOURCES + mkunity.c + ) + + add_executable(mkunity ${mkunity_SOURCES}) + + set_target_properties ( + mkunity PROPERTIES + FOLDER Bin + ) + + function(MKUNITY_TARGET Target Prefix UnityInputRef) + set(UnityInput ${${UnityInputRef}}) + set(UnityOutput ${CMAKE_CURRENT_BINARY_DIR}/${Target}_unity.cpp) + set(RealSources "") + set(UnitySources "") + foreach(UnitySource ${UnityInput}) + get_property(SourceExcluded SOURCE ${UnitySource} PROPERTY EXCLUDE_UNITY_BUILD) + if(SourceExcluded MATCHES TRUE OR NOT ${UnitySource} MATCHES "\\.(cpp|cxx|cc)\$") + list(APPEND RealSources ${UnitySource}) + else() + list(APPEND UnitySources ${UnitySource}) + endif() + endforeach() + add_custom_command( + OUTPUT ${UnityOutput} + COMMAND mkunity + ARGS ${Prefix} ${UnitySources} > ${UnityOutput}.tmp + COMMAND ${CMAKE_COMMAND} + ARGS -E copy ${UnityOutput}.tmp ${UnityOutput} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS mkunity ${UnitySources} + ) + list(APPEND RealSources ${UnityOutput}) + set(${UnityInputRef} ${RealSources} PARENT_SCOPE) + endfunction() +endif() -- cgit v1.2.3