From 646e1f608d37640d4f4e359cf6b7ff7d9c7bbcdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Sat, 1 Sep 2018 21:51:49 +0200 Subject: [PATCH] Make Catch2ConfigVersion.cmake be generated as arch-independent As it turns out, there is a fairly reasonable workaround available. Closes #1368 --- CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21f52ff1..8156fdaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,11 +125,22 @@ if (NOT_SUBPROJECT) ${CATCH_CMAKE_CONFIG_DESTINATION} ) + # By default, FooConfigVersion is tied to architecture that it was + # generated on. Because Catch2 is header-only, it is arch-independent + # and thus Catch2ConfigVersion should not be tied to the architecture + # it was generated on. + # + # CMake does not provide a direct customization point for this in + # `write_basic_package_version_file`, but it can be accomplished + # indirectly by temporarily undefining `CMAKE_SIZEOF_VOID_P`. + set(CATCH2_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}) + unset(CMAKE_SIZEOF_VOID_P) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/Catch2ConfigVersion.cmake" COMPATIBILITY SameMajorVersion ) + set(CMAKE_SIZEOF_VOID_P ${CATCH2_CMAKE_SIZEOF_VOID_P}) install( DIRECTORY