瀏覽代碼

Use one arch for 1.4-compatible check_type_size

The CMakeBackwardCompatibilityC module provides some try-compile results
that were automatically provided by CMake 1.4.  When performing the
checks for OS X universal binaries we just pick one architecture to get
through the checks without error.  Since CMake 1.4 did not support any
universal binaries, projects that want them should not depend on this
compatibility module anyway.
Brad King 16 年之前
父節點
當前提交
27873a48d7
共有 1 個文件被更改,包括 16 次插入0 次删除
  1. 16 0
      Modules/CMakeBackwardCompatibilityC.cmake

+ 16 - 0
Modules/CMakeBackwardCompatibilityC.cmake

@@ -23,6 +23,17 @@ IF(CMAKE_GENERATOR MATCHES "Visual Studio 6")
 ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6")
 
 IF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
+  # Old CMake versions did not support OS X universal binaries anyway,
+  # so just get through this with at least some size for the types.
+  LIST(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHS)
+  IF(${NUM_ARCHS} GREATER 1)
+    IF(NOT DEFINED CMAKE_TRY_COMPILE_OSX_ARCHITECTURES)
+      MESSAGE(WARNING "This module does not work with OS X universal binaries.")
+      SET(__ERASE_CMAKE_TRY_COMPILE_OSX_ARCHITECTURES 1)
+      LIST(GET CMAKE_OSX_ARCHITECTURES 0 CMAKE_TRY_COMPILE_OSX_ARCHITECTURES)
+    ENDIF()
+  ENDIF()
+
   INCLUDE (CheckTypeSize)
   CHECK_TYPE_SIZE(int      CMAKE_SIZEOF_INT)
   CHECK_TYPE_SIZE(long     CMAKE_SIZEOF_LONG)
@@ -70,6 +81,11 @@ IF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
 
   SET (CMAKE_USE_SPROC          ${CMAKE_USE_SPROC_INIT} CACHE BOOL 
      "Use sproc libs.")
+
+  IF(__ERASE_CMAKE_TRY_COMPILE_OSX_ARCHITECTURES)
+    SET(CMAKE_TRY_COMPILE_OSX_ARCHITECTURES)
+    SET(__ERASE_CMAKE_TRY_COMPILE_OSX_ARCHITECTURES)
+  ENDIF()
 ENDIF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
 
 MARK_AS_ADVANCED(