cmake_minimum_required (VERSION 2.6.4)
+
+if(COMMAND cmake_policy)
+ if(POLICY CMP0054)
+ cmake_policy(SET CMP0054 NEW)
+ endif()
+ if(POLICY CMP0042)
+ cmake_policy(SET CMP0042 NEW)
+ endif()
+endif()
+
include (CheckFunctionExists)
include (CheckIncludeFile)
+include (CheckLibraryExists)
include (CheckCXXSourceCompiles)
include (CheckCXXCompilerFlag)
-# set this before project()
-set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
+# using 10.7 because boost requires libc++ and 10.6 doesn't include it
+set(CMAKE_OSX_DEPLOYMENT_TARGET 10.7)
+set(CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk)
project(SimGear)
if(APPLE)
find_library(COCOA_LIBRARY Cocoa)
+endif()
- # force libstdc++, not libc++
- set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libstdc++")
- list(APPEND CMAKE_CXX_FLAGS "-stdlib=libstdc++")
- list(APPEND CMAKE_EXE_LINKER_FLAGS "-stdlib=libstdc++")
- list(APPEND CMAKE_SHARED_LINKER_FLAGS "-stdlib=libstdc++")
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR
+ ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+ find_package(Threads REQUIRED)
endif()
# Somehow this only works if included before searching for Boost...
include(BoostTestTargets)
find_package(Boost REQUIRED)
-set (BOOST_CXX_FLAGS "-DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_BIMAP_DISABLE_SERIALIZATION")
+set (BOOST_CXX_FLAGS "-DBOOST_BIMAP_DISABLE_SERIALIZATION")
if(SIMGEAR_HEADLESS)
message(STATUS "SimGear mode: HEADLESS")
endif(SIMGEAR_HEADLESS)
find_package(ZLIB REQUIRED)
-find_package(Threads REQUIRED)
if (SYSTEM_EXPAT)
message(STATUS "Requested to use system Expat library, forcing SIMGEAR_SHARED to true")
endif(CMAKE_COMPILER_IS_GNUCXX)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- set(WARNING_FLAGS_CXX "-Wall -Wno-overloaded-virtual")
- set(WARNING_FLAGS_C "-Wall")
+ # Boost redeclares class members
+ set(WARNING_FLAGS_CXX "-Wall -Wno-overloaded-virtual -Wno-redeclared-class-member")
+ set(WARNING_FLAGS_C "-Wall")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")