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