]> git.mxchange.org Git - flightgear.git/commitdiff
cmake changes for osg::CullSettings::ClearMask and Fedora
authorTim Moore <timoore33@gmail.com>
Sat, 25 Dec 2010 23:44:02 +0000 (00:44 +0100)
committerTim Moore <timoore33@gmail.com>
Sat, 25 Dec 2010 23:44:02 +0000 (00:44 +0100)
HAVE_CULLSETTINGS_CLEAR_MASK was not set, so a program to test
CLEAR_MASK was added. The Posix timer function clock_gettime is in
librt on Fedora, and probably on other systems too.

CMakeLists.txt
src/Include/config_cmake.h.in
src/Main/CMakeLists.txt

index 975d9528e474c6e32a9afb426bb72747b5776d26..e9287c9f7cc4ad9cf7459afec50332cf1e8d85a2 100644 (file)
@@ -2,6 +2,8 @@ cmake_minimum_required (VERSION 2.6)
 
 include (CheckFunctionExists)
 include (CheckCSourceCompiles)
+include (CheckCXXSourceCompiles)
+include (CheckIncludeFile)
 include (CPack)
 
 project(FlightGear)
@@ -67,7 +69,48 @@ find_package(OpenSceneGraph 2.8.2 REQUIRED osgText osgSim osgDB osgParticle osgF
 find_package(PLIB REQUIRED puaux pu js fnt)
 find_package(SimGear 2.0.0 REQUIRED)
 
-find_path (HAVE_SYS_TIME_H sys/time.h )
+check_include_file(unistd.h HAVE_UNISTD_H)
+check_include_file(sys/time.h HAVE_SYS_TIME_H)
+
+# definition depends on OSG version
+set(CMAKE_REQUIRED_INCLUDES ${OPENSCENEGRAPH_INCLUDE_DIRS})
+
+check_cxx_source_compiles(
+    "#include <osg/CullSettings>
+    int main()
+    {
+       osg::CullSettings::VariablesMask mask = osg::CullSettings::CLEAR_MASK;
+       return 0;
+    }
+    "
+    HAVE_CULLSETTINGS_CLEAR_MASK)
+
+# library required by simgear
+# XXX This should go in a module and only run if simgear is not shared.
+
+if(HAVE_UNISTD_H)
+set(CMAKE_REQUIRED_INCLUDES ${CMAKE_INCLUDE_PATH})
+check_cxx_source_compiles(
+   "#include <unistd.h>
+    #if !defined(_POSIX_TIMERS) || (0 >= _POSIX_TIMERS)
+    #error clock_gettime is not supported
+    #endif
+
+    int main() { return 0; }
+    "
+    HAVE_CLOCK_GETTIME)    
+endif(HAVE_UNISTD_H)
+
+set(RT_LIBRARY "")
+if(HAVE_CLOCK_GETTIME)
+check_function_exists(clock_gettime CLOCK_GETTIME_IN_LIBC)
+if(NOT CLOCK_GETTIME_IN_LIBC)
+check_library_exists(rt clock_gettime "" HAVE_RT)
+if(HAVE_RT)
+set(RT_LIBRARY rt)
+endif(HAVE_RT)
+endif(NOT CLOCK_GETTIME_IN_LIBC)
+endif(HAVE_CLOCK_GETTIME)
 
 if(CMAKE_COMPILER_IS_GNUCXX)
     set(WARNING_FLAGS -Wall)
index e9589fbc0384a69769c51e04f2ddf5f4fd156721..9f4bfcb1c2d400f7cb22d2e179cf6755b07ee7fe 100644 (file)
@@ -18,6 +18,7 @@
 #define ENABLE_AUDIO_SUPPORT 1 
 
 #cmakedefine HAVE_SYS_TIME_H
+#cmakedefine HAVE_CULLSETTINGS_CLEAR_MASK
 
 #define VERSION "@FLIGHTGEAR_VERSION"
 
index 0f791dc0ef7e2d3fd3622a32ecd74d7e641c0968..ffc87c85782a03b586f2a123d17a64ea4db7023d 100644 (file)
@@ -38,8 +38,7 @@ target_link_libraries(fgfs
        ${OPENGL_LIBRARIES}
        ${ALUT_LIBRARY} 
        ${ZLIB_LIBRARIES}
-       ${PLIB_LIBRARIES})
+       ${PLIB_LIBRARIES}
+       ${RT_LIBRARY})
        
 install(TARGETS fgfs RUNTIME DESTINATION bin)
-
-       
\ No newline at end of file