]> git.mxchange.org Git - simgear.git/blobdiff - simgear/CMakeLists.txt
No need to link to ShivaVG anymore
[simgear.git] / simgear / CMakeLists.txt
index 7612bb8da3c69e8e5ae05478205e18ae7d567b34..fd83c895e50e6130d24203ea0efe6314000c1492 100644 (file)
@@ -3,6 +3,7 @@ file(WRITE ${PROJECT_BINARY_DIR}/simgear/version.h "#define SIMGEAR_VERSION ${SI
 
 foreach( mylibfolder 
         bucket
+        bvh
         debug
         ephemeris
         io
@@ -11,7 +12,6 @@ foreach( mylibfolder
         misc
         nasal
         props
-        route
         serial
         structure
         threads
@@ -24,6 +24,7 @@ foreach( mylibfolder
 endforeach( mylibfolder )
 
 if(NOT SIMGEAR_HEADLESS)
+    add_subdirectory(canvas)
     add_subdirectory(environment)
     add_subdirectory(screen)
     add_subdirectory(scene)
@@ -39,12 +40,17 @@ endif(ENABLE_RTI)
 set(HEADERS compiler.h constants.h sg_inlines.h ${PROJECT_BINARY_DIR}/simgear/version.h)
 install (FILES ${HEADERS}  DESTINATION include/simgear/)
 
-if(SIMGEAR_SHARED)
-    message(STATUS "building shared library")
-    get_property(coreSources GLOBAL PROPERTY CORE_SOURCES)
-    get_property(sceneSources GLOBAL PROPERTY SCENE_SOURCES)
-    get_property(publicHeaders GLOBAL PROPERTY PUBLIC_HEADERS)
+get_property(coreSources GLOBAL PROPERTY CORE_SOURCES)
+get_property(sceneSources GLOBAL PROPERTY SCENE_SOURCES)
+get_property(publicHeaders GLOBAL PROPERTY PUBLIC_HEADERS)
+
+if(LIBSVN_FOUND)
+       add_definitions(${APR_CFLAGS})
+       include_directories(${LIBSVN_INCLUDE_DIR})
+endif()
 
+if(SIMGEAR_SHARED)
+    message(STATUS "Library building mode: SHARED LIBRARIES")
     add_library(SimGearCore SHARED ${coreSources})
 
   # set_property(TARGET SimGearCore PROPERTY FRAMEWORK 1)
@@ -55,17 +61,11 @@ if(SIMGEAR_SHARED)
     set_property(TARGET SimGearCore PROPERTY VERSION   ${SIMGEAR_VERSION})
     set_property(TARGET SimGearCore PROPERTY SOVERSION ${SIMGEAR_SOVERSION})
 
-    target_link_libraries(SimGearCore ${ZLIB_LIBRARY} ${RT_LIBRARY})
-    install(TARGETS SimGearCore LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    target_link_libraries(SimGearCore ${ZLIB_LIBRARY} ${RT_LIBRARY} 
+        ${EXPAT_LIBRARIES}
+        ${CMAKE_THREAD_LIBS_INIT})
 
     if(LIBSVN_FOUND)
-        add_definitions(${APR_CFLAGS})
-
-        IF(APPLE)
-            set_property(SOURCE scene/tsync/terrasync.cxx PROPERTY COMPILE_FLAGS "-iwithsysroot ${LIBSVN_INCLUDE_DIR}")
-        ELSE()
-            include_directories(${LIBSVN_INCLUDE_DIR})
-        ENDIF(APPLE)
         target_link_libraries(SimGearCore ${LIBSVN_LIBRARIES})
     endif(LIBSVN_FOUND)
 
@@ -81,12 +81,66 @@ if(SIMGEAR_SHARED)
             SimGearCore
             ${ZLIB_LIBRARY}
             ${OPENSCENEGRAPH_LIBRARIES}
-            ${OPENAL_LIBRARY} ${ALUT_LIBRARY}
+            ${OPENAL_LIBRARY}
             ${OPENGL_LIBRARY}
             ${JPEG_LIBRARY})
     
         install(TARGETS SimGearScene LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
     endif()
-
+    
+    install(TARGETS SimGearCore LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+else()
+    message(STATUS "Library building mode: STATIC LIBRARIES")
+
+       get_property(FG_GROUPS_CORE_SOURCES_C GLOBAL PROPERTY FG_GROUPS_CORE_SOURCES_C)
+       string(REPLACE "@" ";" groups ${FG_GROUPS_CORE_SOURCES_C} )
+       foreach(g ${groups})
+               string(REPLACE "#" ";" g2 ${g})
+               list(GET g2 0 name)
+               list(REMOVE_AT g2 0)
+               source_group("${name}\\Sources" FILES ${g2})
+       endforeach()
+
+       get_property(FG_GROUPS_CORE_SOURCES_H GLOBAL PROPERTY FG_GROUPS_CORE_SOURCES_H)
+       string(REPLACE "@" ";" groups ${FG_GROUPS_CORE_SOURCES_H} )
+       foreach(g ${groups})
+               string(REPLACE "#" ";" g2 ${g})
+               list(GET g2 0 name)
+               list(REMOVE_AT g2 0)
+               source_group("${name}\\Headers" FILES ${g2})
+       endforeach()
+
+    add_library(SimGearCore STATIC ${coreSources})
+    install(TARGETS SimGearCore ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    
+    if(NOT SIMGEAR_HEADLESS)
+               get_property(FG_GROUPS_SCENE_SOURCES_C GLOBAL PROPERTY FG_GROUPS_SCENE_SOURCES_C)
+               string(REPLACE "@" ";" groups ${FG_GROUPS_SCENE_SOURCES_C} )
+               foreach(g ${groups})
+                       string(REPLACE "#" ";" g2 ${g})
+                       list(GET g2 0 name)
+                       list(REMOVE_AT g2 0)
+                       source_group("${name}\\Sources" FILES ${g2})
+               endforeach()
+
+               get_property(FG_GROUPS_SCENE_SOURCES_H GLOBAL PROPERTY FG_GROUPS_SCENE_SOURCES_H)
+               string(REPLACE "@" ";" groups ${FG_GROUPS_SCENE_SOURCES_H} )
+               foreach(g ${groups})
+                       string(REPLACE "#" ";" g2 ${g})
+                       list(GET g2 0 name)
+                       list(REMOVE_AT g2 0)
+                       source_group("${name}\\Headers" FILES ${g2})
+               endforeach()
+
+        add_library(SimGearScene STATIC ${sceneSources})
+        install(TARGETS SimGearScene ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+    endif(NOT SIMGEAR_HEADLESS)
 endif(SIMGEAR_SHARED)
 
+if(ENABLE_RTI)
+    # Ugly first aid to make hla compile agian
+    set_property(SOURCE hla/RTI13InteractionClass.cxx hla/RTI13ObjectClass.cxx
+        hla/RTI13ObjectInstance.cxx hla/RTI13Federate.cxx
+        hla/RTI13FederateFactory.cxx
+        APPEND PROPERTY COMPILE_FLAGS "-I${RTI_INCLUDE_DIR}")
+endif(ENABLE_RTI)