From 3241885f908eeafbd903b682eaab5e6d2d641762 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub <vvaintroub@macbook.local> Date: Tue, 26 Jan 2010 18:09:14 +0100 Subject: [PATCH] Move OSX specific checks to cmake/os/Darwin.cmake --- cmake/Makefile.am | 5 ++++- cmake/os/Darwin.cmake | 34 ++++++++++++++++++++++++++++++++++ configure.cmake | 21 +++++---------------- 3 files changed, 43 insertions(+), 17 deletions(-) create mode 100644 cmake/os/Darwin.cmake diff --git a/cmake/Makefile.am b/cmake/Makefile.am index 2e6563cd92c..623176288b7 100644 --- a/cmake/Makefile.am +++ b/cmake/Makefile.am @@ -26,4 +26,7 @@ EXTRA_DIST = \ build_configurations/mysql_release.cmake \ os/Windows.cmake \ os/Linux.cmake \ - os/SunOS.cmake + os/SunOS.cmake \ + os/Darwin.cmake + + diff --git a/cmake/os/Darwin.cmake b/cmake/os/Darwin.cmake new file mode 100644 index 00000000000..09d82bed7bd --- /dev/null +++ b/cmake/os/Darwin.cmake @@ -0,0 +1,34 @@ +# Copyright (C) 2010 Sun Microsystems, Inc +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +# This file includes OSX specific options and quirks, related to system checks + +# Workaround for CMake bug#9051 +# (CMake does not pass CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET when +# running TRY_COMPILE) + +IF(CMAKE_OSX_SYSROOT) + SET(ENV{CMAKE_OSX_SYSROOT} ${CMAKE_OSX_SYSROOT}) +ENDIF() +IF(CMAKE_OSX_SYSROOT) + SET(ENV{MACOSX_DEPLOYMENT_TARGET} ${OSX_DEPLOYMENT_TARGET}) +ENDIF() + +IF(CMAKE_OSX_DEPLOYMENT_TARGET) + # Workaround linker problems on OSX 10.4 + IF(CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS "10.5") + ADD_DEFINITIONS(-fno-common) + ENDIF() +ENDIF() diff --git a/configure.cmake b/configure.cmake index 31d211256e8..4493fd900bc 100644 --- a/configure.cmake +++ b/configure.cmake @@ -1,3 +1,4 @@ + # Copyright (C) 2009 Sun Microsystems,Inc # # This program is free software; you can redistribute it and/or modify @@ -73,12 +74,6 @@ IF(CMAKE_COMPILER_IS_GNUCXX) SET(HAVE_DLOPEN FALSE CACHE "Disable dlopen due to -static flag" FORCE) SET(WITHOUT_DYNAMIC_PLUGINS TRUE) ENDIF() - IF(APPLE AND CMAKE_OSX_DEPLOYMENT_TARGET) - # Workaround linker problems on OSX 10.4 - IF(CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS "10.5") - ADD_DEFINITIONS(-fno-common) - ENDIF() - ENDIF() ENDIF() @@ -189,15 +184,7 @@ IF(UNIX) ENDIF() ENDIF() ENDIF() - -# Workaround for CMake bug#9051 -IF(CMAKE_OSX_SYSROOT) - SET(ENV{CMAKE_OSX_SYSROOT} ${CMAKE_OSX_SYSROOT}) -ENDIF() -IF(CMAKE_OSX_SYSROOT) - SET(ENV{MACOSX_DEPLOYMENT_TARGET} ${OSX_DEPLOYMENT_TARGET}) -ENDIF() - +s # System check macros that do nothing on Windows. # Very often, it is known that some function is not available @@ -517,7 +504,7 @@ int main() { # INCLUDE(TestBigEndian) IF(APPLE) - # Cannot run endian test on universal PPC/Intel binaries + # Cannot run endian test on universal PPC/Intel binaries # would return inconsistent result. # config.h.cmake includes a special #ifdef for Darwin ELSE() @@ -550,6 +537,8 @@ IF(HAVE_STDINT_H) ENDIF(HAVE_STDINT_H) IF(NOT APPLE) + # Prevent some checks on OSX, they return ambigious results + # on universal 32/64 bit binariess CHECK_TYPE_SIZE("char *" SIZEOF_CHARP) CHECK_TYPE_SIZE(long SIZEOF_LONG) CHECK_TYPE_SIZE(size_t SIZEOF_SIZE_T) -- 2.30.9