Make compiler flags for reproducible builds optional

no change in default behavior: -ffile-prefix-map is still added if
supported by compiler but add option for disabling it as it breaks
generic tools for extracting debuginfo/debugsource from build artifacts
like: https://sourceware.org/git/?p=debugedit.git;a=blob;f=scripts/find-debuginfo.in
This commit is contained in:
Jan Palus 2023-12-28 00:41:54 +01:00
parent cd3c7ebe87
commit 1512dac7e4
No known key found for this signature in database
GPG Key ID: AF176E5122D88062
2 changed files with 7 additions and 2 deletions

View File

@ -11,6 +11,7 @@ endif()
option(CATCH_INSTALL_DOCS "Install documentation alongside library" ON) option(CATCH_INSTALL_DOCS "Install documentation alongside library" ON)
option(CATCH_INSTALL_EXTRAS "Install extras (CMake scripts, debugger helpers) alongside library" ON) option(CATCH_INSTALL_EXTRAS "Install extras (CMake scripts, debugger helpers) alongside library" ON)
option(CATCH_DEVELOPMENT_BUILD "Build tests, enable warnings, enable Werror, etc" OFF) option(CATCH_DEVELOPMENT_BUILD "Build tests, enable warnings, enable Werror, etc" OFF)
option(CATCH_ENABLE_REPRODUCIBLE_BUILD "Add compiler flags for improving build reproducibility" ON)
include(CMakeDependentOption) include(CMakeDependentOption)
cmake_dependent_option(CATCH_BUILD_TESTING "Build the SelfTest project" ON "CATCH_DEVELOPMENT_BUILD" OFF) cmake_dependent_option(CATCH_BUILD_TESTING "Build the SelfTest project" ON "CATCH_DEVELOPMENT_BUILD" OFF)

View File

@ -348,7 +348,9 @@ source_group("generated headers"
) )
add_library(Catch2 ${ALL_FILES}) add_library(Catch2 ${ALL_FILES})
if (CATCH_ENABLE_REPRODUCIBLE_BUILD)
add_build_reproducibility_settings(Catch2) add_build_reproducibility_settings(Catch2)
endif()
add_library(Catch2::Catch2 ALIAS Catch2) add_library(Catch2::Catch2 ALIAS Catch2)
if (ANDROID) if (ANDROID)
@ -401,7 +403,9 @@ target_include_directories(Catch2
add_library(Catch2WithMain add_library(Catch2WithMain
${SOURCES_DIR}/internal/catch_main.cpp ${SOURCES_DIR}/internal/catch_main.cpp
) )
if (CATCH_ENABLE_REPRODUCIBLE_BUILD)
add_build_reproducibility_settings(Catch2WithMain) add_build_reproducibility_settings(Catch2WithMain)
endif()
add_library(Catch2::Catch2WithMain ALIAS Catch2WithMain) add_library(Catch2::Catch2WithMain ALIAS Catch2WithMain)
target_link_libraries(Catch2WithMain PUBLIC Catch2) target_link_libraries(Catch2WithMain PUBLIC Catch2)
set_target_properties(Catch2WithMain set_target_properties(Catch2WithMain