Browse Source

Fix OS X dylib and module GNU flags

The commit "Split GNU compiler information files" broke the settings of

  CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS
  CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS

and started using just "-shared" for them.  This worked when tested on newer
Mac machines, but older ones really need "-dynamiclib" and "-bundle" (which are
the documented flags anyway).
Brad King 16 years ago
parent
commit
58d6057a52

+ 1 - 0
Modules/Platform/Darwin-GNU-C.cmake

@@ -1,2 +1,3 @@
 include(Platform/Darwin-GNU)
+__darwin_compiler_gnu(C)
 cmake_gnu_has_isysroot(C)

+ 1 - 0
Modules/Platform/Darwin-GNU-CXX.cmake

@@ -1,2 +1,3 @@
 include(Platform/Darwin-GNU)
+__darwin_compiler_gnu(CXX)
 cmake_gnu_has_isysroot(CXX)

+ 2 - 0
Modules/Platform/Darwin-GNU-Fortran.cmake

@@ -0,0 +1,2 @@
+include(Platform/Darwin-GNU)
+__darwin_compiler_gnu(Fortran)

+ 26 - 0
Modules/Platform/Darwin-GNU.cmake

@@ -1,3 +1,29 @@
+
+#=============================================================================
+# Copyright 2002-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# This module is shared by multiple languages; use include blocker.
+if(__DARWIN_COMPILER_GNU)
+  return()
+endif()
+set(__DARWIN_COMPILER_GNU 1)
+
+macro(__darwin_compiler_gnu lang)
+  # GNU does not have -shared on OS X
+  set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -headerpad_max_install_names")
+  set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -headerpad_max_install_names")
+endmacro()
+
 macro(cmake_gnu_has_isysroot lang)
   if("x${CMAKE_${lang}_HAS_ISYSROOT}" STREQUAL "x")
     set(_doc "${lang} compiler has -isysroot")