X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=simgear%2FCMakeLists.txt;h=59768334b9880a5b8a88242c08868ce0073f4cf4;hb=b8d07cc4608536119b3d99ee041d5820aad040ef;hp=684e2eee8e0ec24b2e6428d05a34e56f4468afb4;hpb=9d20de068c609a69ad8dfee5ccae5c464aca3d6b;p=simgear.git diff --git a/simgear/CMakeLists.txt b/simgear/CMakeLists.txt index 684e2eee..59768334 100644 --- a/simgear/CMakeLists.txt +++ b/simgear/CMakeLists.txt @@ -1,8 +1,9 @@ file(WRITE ${PROJECT_BINARY_DIR}/simgear/version.h "#define SIMGEAR_VERSION ${SIMGEAR_VERSION}") -foreach( mylibfolder +foreach( mylibfolder bucket + bvh debug ephemeris io @@ -10,13 +11,14 @@ foreach( mylibfolder math misc nasal + nasal/cppbind props - route serial structure threads timing xml + package ) add_subdirectory(${mylibfolder}) @@ -24,6 +26,7 @@ foreach( mylibfolder endforeach( mylibfolder ) if(NOT SIMGEAR_HEADLESS) + add_subdirectory(canvas) add_subdirectory(environment) add_subdirectory(screen) add_subdirectory(scene) @@ -39,60 +42,111 @@ endif(ENABLE_RTI) set(HEADERS compiler.h constants.h sg_inlines.h ${PROJECT_BINARY_DIR}/simgear/version.h) install (FILES ${HEADERS} DESTINATION include/simgear/) +get_property(coreSources GLOBAL PROPERTY CORE_SOURCES) +get_property(sceneSources GLOBAL PROPERTY SCENE_SOURCES) +get_property(publicHeaders GLOBAL PROPERTY PUBLIC_HEADERS) +get_property(localExpatSources GLOBAL PROPERTY LOCAL_EXPAT_SOURCES) + 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) - - add_library(SimGearCore SHARED ${coreSources}) - set_property(TARGET SimGearCore PROPERTY COMPILE_FLAGS "-DNO_OPENSCENEGRAPH_INTERFACE=1") - - # set_property(TARGET SimGearCore PROPERTY FRAMEWORK 1) - # message(STATUS "public header: ${publicHeaders}") - # set_property(TARGET SimGearCore PROPERTY PUBLIC_HEADER "${publicHeaders}") - set_property(TARGET SimGearCore PROPERTY LINKER_LANGUAGE CXX) + message(STATUS "Library building mode: SHARED LIBRARIES") + add_library(SimGearCore SHARED ${coreSources} ${localExpatSources}) + set_property(TARGET SimGearCore PROPERTY LINKER_LANGUAGE CXX) 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}) + install(TARGETS SimGearCore + EXPORT SimGearTargets + LIBRARY DESTINATION + ${CMAKE_INSTALL_LIBDIR}) if(NOT SIMGEAR_HEADLESS) - 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) - endif(LIBSVN_FOUND) - - list(APPEND sceneSources scene/util/SGCoreOSGDependant.cxx) - add_library(SimGearScene SHARED ${sceneSources}) - # set_property(TARGET SimGearScene PROPERTY FRAMEWORK 1) - # set_property(TARGET SimGearScene PROPERTY PUBLIC_HEADER "${publicHeaders}") set_property(TARGET SimGearScene PROPERTY LINKER_LANGUAGE CXX) set_property(TARGET SimGearScene PROPERTY VERSION ${SIMGEAR_VERSION}) set_property(TARGET SimGearScene PROPERTY SOVERSION ${SIMGEAR_SOVERSION}) - - target_link_libraries(SimGearScene - SimGearCore - ${ZLIB_LIBRARY} - ${OPENSCENEGRAPH_LIBRARIES} - ${OPENAL_LIBRARY} ${ALUT_LIBRARY} - ${OPENGL_LIBRARY} - ${JPEG_LIBRARY}) - - if(LIBSVN_FOUND) - target_link_libraries(SimGearScene ${LIBSVN_LIBRARIES}) - endif(LIBSVN_FOUND) - - install(TARGETS SimGearScene LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + # EXPORT SimGearSceneConfig + install(TARGETS SimGearScene + EXPORT SimGearTargets + LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR} ) endif() - + +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} ${localExpatSources}) + install(TARGETS SimGearCore + EXPORT SimGearTargets + 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 + EXPORT SimGearTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif(NOT SIMGEAR_HEADLESS) endif(SIMGEAR_SHARED) - + +target_link_libraries(SimGearCore + ${ZLIB_LIBRARY} + ${RT_LIBRARY} + ${DL_LIBRARY} + ${EXPAT_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ${COCOA_LIBRARY} + ${CURL_LIBRARIES}) + +if(NOT SIMGEAR_HEADLESS) + target_link_libraries(SimGearScene + SimGearCore + ${ZLIB_LIBRARY} + ${OPENSCENEGRAPH_LIBRARIES} + ${OPENAL_LIBRARY} + ${OPENGL_LIBRARY} + ${JPEG_LIBRARY}) +endif() + +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)