]> git.mxchange.org Git - simgear.git/blobdiff - CMakeLists.txt
Initial work on making OpenAL private to the sound code.
[simgear.git] / CMakeLists.txt
index b4420de0097404888bcee4d91a93824745961121..39dfab99bf448617b9fd805c265d61ebd3ac35ba 100644 (file)
@@ -74,6 +74,8 @@ option(JPEG_FACTORY     "Enable JPEG-factory support" OFF)
 option(ENABLE_LIBSVN    "Set to ON to build SimGear with libsvnclient support" ON)
 option(ENABLE_RTI       "Set to ON to build SimGear with RTI support" OFF)
 option(ENABLE_TESTS     "Set to OFF to disable building SimGear's test applications" ON)
+option(ENABLE_SOUND     "Set to OFF to disable building SimGear's sound support" ON)
+option(SYSTEM_EXPAT     "Set to ON to build SimGear using the system libExpat" OFF)
 
 if (MSVC)
   GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
@@ -94,11 +96,13 @@ endif (MSVC)
 if (MSVC AND MSVC_3RDPARTY_ROOT)
   message(STATUS "3rdparty files located in ${MSVC_3RDPARTY_ROOT}")
   set( OSG_MSVC "msvc" )
-  if (${MSVC_VERSION} EQUAL 1600)
+  if (${MSVC_VERSION} EQUAL 1700)
+      set( OSG_MSVC ${OSG_MSVC}110 )
+  elseif (${MSVC_VERSION} EQUAL 1600)
       set( OSG_MSVC ${OSG_MSVC}100 )
-  else (${MSVC_VERSION} EQUAL 1600)
+  else (${MSVC_VERSION} EQUAL 1700)
       set( OSG_MSVC ${OSG_MSVC}90 )
-  endif (${MSVC_VERSION} EQUAL 1600)
+  endif (${MSVC_VERSION} EQUAL 1700)
   if (CMAKE_CL_64)
       set( OSG_MSVC ${OSG_MSVC}-64 )
       set( MSVC_3RDPARTY_DIR 3rdParty.x64 )
@@ -108,27 +112,39 @@ if (MSVC AND MSVC_3RDPARTY_ROOT)
 
   set (CMAKE_LIBRARY_PATH ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib ${MSVC_3RDPARTY_ROOT}/install/${OSG_MSVC}/OpenScenegraph/lib )
   set (CMAKE_INCLUDE_PATH ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include ${MSVC_3RDPARTY_ROOT}/install/${OSG_MSVC}/OpenScenegraph/include)
-  set (BOOST_ROOT ${MSVC_3RDPARTY_ROOT}/boost_1_44_0)
+  find_path(BOOST_ROOT boost/version.hpp
+                       ${MSVC_3RDPARTY_ROOT}/boost
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_51_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_50_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_49_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_48_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_47_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_46_1
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_46_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_45_0
+                       ${MSVC_3RDPARTY_ROOT}/boost_1_44_0
+                       )
+  # set (BOOST_ROOT ${MSVC_3RDPARTY_ROOT}/boost_1_44_0)
   message(STATUS "BOOST_ROOT is ${BOOST_ROOT}")
   set (OPENAL_INCLUDE_DIR ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include)
-  set (ALUT_INCLUDE_DIR ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include)
   set (OPENAL_LIBRARY_DIR ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib)
 endif (MSVC AND MSVC_3RDPARTY_ROOT)
 
 find_package(Boost REQUIRED)
 set (BOOST_CXX_FLAGS "-DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DBOOST_BIMAP_DISABLE_SERIALIZATION")
 
-find_package(ZLIB REQUIRED)
-find_package(Threads REQUIRED)
-
 if(SIMGEAR_HEADLESS)
     message(STATUS "SimGear mode: HEADLESS")
+    set(ENABLE_SOUND 0)
 else()
     message(STATUS "SimGear mode: NORMAL")
     find_package(OpenGL REQUIRED)
-    find_package(OpenAL REQUIRED)
-    find_package(ALUT REQUIRED)
-    find_package(OpenSceneGraph 3.0.0 REQUIRED osgText osgSim osgDB osgParticle osgUtil)
+    
+    if (ENABLE_SOUND)
+        find_package(OpenAL REQUIRED)
+    endif(ENABLE_SOUND)
+    
+    find_package(OpenSceneGraph 3.0.0 REQUIRED osgText osgSim osgDB osgParticle osgGA osgUtil)
 endif(SIMGEAR_HEADLESS)
 
 if(JPEG_FACTORY)
@@ -156,6 +172,19 @@ else()
     message(STATUS "Subversion client support: DISABLED")
 endif(ENABLE_LIBSVN)
 
+find_package(ZLIB REQUIRED)
+find_package(Threads REQUIRED)
+
+if (SYSTEM_EXPAT)
+    message(STATUS "Requested to use system Expat library, forcing SIMGEAR_SHARED to true")
+    set(SIMGEAR_SHARED ON)
+    find_package(EXPAT REQUIRED)
+    include_directories(${EXPAT_INCLUDE_DIRS})
+else()
+    message(STATUS "Using built-in expat code")
+    add_definitions(-DHAVE_EXPAT_CONFIG_H)
+endif(SYSTEM_EXPAT)
+
 check_include_file(sys/time.h HAVE_SYS_TIME_H)
 check_include_file(sys/timeb.h HAVE_SYS_TIMEB_H)
 check_include_file(unistd.h HAVE_UNISTD_H)
@@ -209,6 +238,11 @@ check_cxx_source_compiles(
     void f() { isnan(0.0);} "
     HAVE_ISNAN)
 
+check_cxx_source_compiles(
+    "#include <cmath> 
+    void f() { std::isnan(0.0);} "
+    HAVE_STD_ISNAN)
+
 if(CMAKE_COMPILER_IS_GNUCXX)
     set(WARNING_FLAGS_CXX "-Wall")
     set(WARNING_FLAGS_C   "-Wall")
@@ -238,7 +272,7 @@ if(WIN32)
         #     SET(WARNING_FLAGS "${WARNING_FLAGS} /wd${warning}")
         # endforeach(warning)
         
-        set(MSVC_FLAGS "-DWIN32 -DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS /wd4996")
+        set(MSVC_FLAGS "-DWIN32 -DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS /wd4996 /wd4250")
     endif(MSVC)
     
     # assumed on Windows
@@ -257,10 +291,9 @@ include_directories(${PROJECT_BINARY_DIR}/simgear/xml)
 
 include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS} 
     ${Boost_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR} 
-    ${ALUT_INCLUDE_DIR} ${OPENAL_INCLUDE_DIR} )
+    ${OPENAL_INCLUDE_DIR} )
 
 add_definitions(-DHAVE_CONFIG_H)
-add_definitions(-DHAVE_EXPAT_CONFIG_H)
 
 # configure a header file to pass some of the CMake settings
 # to the source code