Make Catch2ConfigVersion.cmake be generated as arch-independent
As it turns out, there is a fairly reasonable workaround available.
Closes #1368
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21f52ff..8156fda 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -125,11 +125,22 @@
${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