From 646e1f608d37640d4f4e359cf6b7ff7d9c7bbcdd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?=
 <martin.horenovsky@gmail.com>
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