From 58d6057a52e368dca679125b810e52a3e6aacd50 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 2 Dec 2009 15:09:03 -0500 Subject: 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). --- Modules/Platform/Darwin-GNU-C.cmake | 1 + Modules/Platform/Darwin-GNU-CXX.cmake | 1 + Modules/Platform/Darwin-GNU-Fortran.cmake | 2 ++ Modules/Platform/Darwin-GNU.cmake | 26 ++++++++++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 Modules/Platform/Darwin-GNU-Fortran.cmake diff --git a/Modules/Platform/Darwin-GNU-C.cmake b/Modules/Platform/Darwin-GNU-C.cmake index 100e8b1..155d594 100644 --- a/Modules/Platform/Darwin-GNU-C.cmake +++ b/Modules/Platform/Darwin-GNU-C.cmake @@ -1,2 +1,3 @@ include(Platform/Darwin-GNU) +__darwin_compiler_gnu(C) cmake_gnu_has_isysroot(C) diff --git a/Modules/Platform/Darwin-GNU-CXX.cmake b/Modules/Platform/Darwin-GNU-CXX.cmake index a2c2e16..6cc0812 100644 --- a/Modules/Platform/Darwin-GNU-CXX.cmake +++ b/Modules/Platform/Darwin-GNU-CXX.cmake @@ -1,2 +1,3 @@ include(Platform/Darwin-GNU) +__darwin_compiler_gnu(CXX) cmake_gnu_has_isysroot(CXX) diff --git a/Modules/Platform/Darwin-GNU-Fortran.cmake b/Modules/Platform/Darwin-GNU-Fortran.cmake new file mode 100644 index 0000000..8e8acc3 --- /dev/null +++ b/Modules/Platform/Darwin-GNU-Fortran.cmake @@ -0,0 +1,2 @@ +include(Platform/Darwin-GNU) +__darwin_compiler_gnu(Fortran) diff --git a/Modules/Platform/Darwin-GNU.cmake b/Modules/Platform/Darwin-GNU.cmake index 8bbad88..b528c88 100644 --- a/Modules/Platform/Darwin-GNU.cmake +++ b/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") -- cgit v0.12