From 011d5a4b4704c745dcd1b5ae8bf58b7a14df30db Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 17 Sep 2012 15:34:50 -0400 Subject: [PATCH] OS X: Add platform-specific Clang compiler info files (#13536) Clang has the same interface as GNU except that we do not need to test for the deployment target and sysroot flags. Simply set variables CMAKE_${lang}_HAS_ISYSROOT CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG to true because every version of Clang available on OS X supports these flags. --- Modules/Platform/Darwin-Clang-C.cmake | 2 ++ Modules/Platform/Darwin-Clang-CXX.cmake | 2 ++ Modules/Platform/Darwin-Clang.cmake | 26 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 Modules/Platform/Darwin-Clang-C.cmake create mode 100644 Modules/Platform/Darwin-Clang-CXX.cmake create mode 100644 Modules/Platform/Darwin-Clang.cmake diff --git a/Modules/Platform/Darwin-Clang-C.cmake b/Modules/Platform/Darwin-Clang-C.cmake new file mode 100644 index 000000000..0a1502ea9 --- /dev/null +++ b/Modules/Platform/Darwin-Clang-C.cmake @@ -0,0 +1,2 @@ +include(Platform/Darwin-Clang) +__darwin_compiler_clang(C) diff --git a/Modules/Platform/Darwin-Clang-CXX.cmake b/Modules/Platform/Darwin-Clang-CXX.cmake new file mode 100644 index 000000000..f8e8d888e --- /dev/null +++ b/Modules/Platform/Darwin-Clang-CXX.cmake @@ -0,0 +1,2 @@ +include(Platform/Darwin-Clang) +__darwin_compiler_clang(CXX) diff --git a/Modules/Platform/Darwin-Clang.cmake b/Modules/Platform/Darwin-Clang.cmake new file mode 100644 index 000000000..46f06f768 --- /dev/null +++ b/Modules/Platform/Darwin-Clang.cmake @@ -0,0 +1,26 @@ + +#============================================================================= +# Copyright 2002-2012 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 distribute 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_CLANG) + return() +endif() +set(__DARWIN_COMPILER_CLANG 1) + +macro(__darwin_compiler_clang lang) + set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") + set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "-bundle -Wl,-headerpad_max_install_names") + set(CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=") + set(CMAKE_${lang}_HAS_ISYSROOT 1) +endmacro()