mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
Make the static library build reproducible with supported compilers
This is based on bed285af07
from
`v2.x` branch, but done properly for the build in v3 branch,
effectively porting #2141 to devel.
This commit is contained in:
parent
342dd3445c
commit
d4a3cd9992
@ -77,3 +77,13 @@ function(add_warnings_to_targets targets)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
# Adds flags required for reproducible build to the target
|
||||||
|
# Currently only supports GCC and Clang
|
||||||
|
function(add_build_reproducibility_settings target)
|
||||||
|
# Make the build reproducible on versions of g++ and clang that supports -ffile-prefix-map
|
||||||
|
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 8) OR
|
||||||
|
("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 10))
|
||||||
|
target_compile_options(${target} PRIVATE "-ffile-prefix-map=${CATCH_DIR}=.")
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
@ -240,6 +240,7 @@ add_library(Catch2 STATIC
|
|||||||
${BENCHMARK_HEADERS}
|
${BENCHMARK_HEADERS}
|
||||||
${BENCHMARK_SOURCES}
|
${BENCHMARK_SOURCES}
|
||||||
)
|
)
|
||||||
|
add_build_reproducibility_settings(Catch2)
|
||||||
add_library(Catch2::Catch2 ALIAS Catch2)
|
add_library(Catch2::Catch2 ALIAS Catch2)
|
||||||
|
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
@ -281,6 +282,7 @@ target_include_directories(Catch2
|
|||||||
add_library(Catch2WithMain STATIC
|
add_library(Catch2WithMain STATIC
|
||||||
${SOURCES_DIR}/internal/catch_main.cpp
|
${SOURCES_DIR}/internal/catch_main.cpp
|
||||||
)
|
)
|
||||||
|
add_build_reproducibility_settings(Catch2WithMain)
|
||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user