Cmake: Split simgear libraries into core and scene (only scene uses OSG). Fix linkage issues, and make helper binaries (yasim, terrasync) link against less stuff.
This commit is contained in:
parent
d09575e646
commit
a5a8090d52
7 changed files with 34 additions and 41 deletions
|
@ -18,6 +18,12 @@ file(READ version versionFile)
|
|||
string(STRIP ${versionFile} FLIGHTGEAR_VERSION)
|
||||
|
||||
#packaging
|
||||
|
||||
# split version string into components, note CMAKE_MATCH_0 is the entire regexp match
|
||||
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" CPACK_PACKAGE_VERSION ${FLIGHTGEAR_VERSION} )
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${CMAKE_MATCH_2})
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${CMAKE_MATCH_3})
|
||||
SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING")
|
||||
SET(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/README")
|
||||
|
||||
|
|
|
@ -105,29 +105,19 @@ endmacro()
|
|||
|
||||
if(${SIMGEAR_LIBRARIES} STREQUAL "SIMGEAR_LIBRARIES-NOTFOUND")
|
||||
set(SIMGEAR_LIBRARIES "") # clear value
|
||||
|
||||
if(NOT MSVC)
|
||||
# Olaf indicates that linking the threads libs causes failures
|
||||
# on MSVC builds
|
||||
set(thread_lib threads)
|
||||
endif(NOT MSVC)
|
||||
|
||||
set(SIMGEAR_CORE_LIBRARIES "") # clear value
|
||||
|
||||
# note the order here affects the order Simgear libraries are
|
||||
# linked in, and hence ability to link when using a traditional
|
||||
# linker such as GNU ld on Linux
|
||||
set(comps
|
||||
ephem
|
||||
tsync
|
||||
environment
|
||||
nasal
|
||||
sky
|
||||
material
|
||||
tgdb
|
||||
model
|
||||
screen
|
||||
bucket
|
||||
bvh
|
||||
util route
|
||||
util
|
||||
route
|
||||
timing
|
||||
io
|
||||
serial
|
||||
|
@ -136,14 +126,29 @@ if(${SIMGEAR_LIBRARIES} STREQUAL "SIMGEAR_LIBRARIES-NOTFOUND")
|
|||
props
|
||||
xml
|
||||
misc
|
||||
${thread_lib}
|
||||
threads
|
||||
debug
|
||||
magvar
|
||||
math)
|
||||
|
||||
set(scene_comps
|
||||
ephem
|
||||
sky
|
||||
material
|
||||
tgdb
|
||||
model
|
||||
screen)
|
||||
|
||||
foreach(component ${comps})
|
||||
find_sg_component(${component} SIMGEAR_CORE_LIBRARIES)
|
||||
endforeach()
|
||||
|
||||
foreach(component ${scene_comps})
|
||||
find_sg_component(${component} SIMGEAR_LIBRARIES)
|
||||
endforeach()
|
||||
|
||||
# again link order matters - scene libraires depend on core ones
|
||||
list(APPEND SIMGEAR_LIBRARIES ${SIMGEAR_CORE_LIBRARIES})
|
||||
endif()
|
||||
|
||||
# now we've found SimGear, check its version
|
||||
|
|
|
@ -37,7 +37,7 @@ add_executable(yasim yasim-test.cpp)
|
|||
|
||||
target_link_libraries(yasim
|
||||
fgYASim
|
||||
${SIMGEAR_LIBRARIES}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${ZLIB_LIBRARIES})
|
||||
|
||||
install(TARGETS yasim RUNTIME DESTINATION bin)
|
||||
|
|
|
@ -36,15 +36,15 @@ if(WIN32)
|
|||
endif(WIN32)
|
||||
|
||||
target_link_libraries(fgjs
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${SOCKETS_LIBRARY}
|
||||
${SIMGEAR_LIBRARIES}
|
||||
${PLIB_LIBRARIES}
|
||||
${ZLIB_LIBRARY})
|
||||
|
||||
add_executable(js_demo js_demo.cxx)
|
||||
|
||||
target_link_libraries(js_demo
|
||||
${SIMGEAR_LIBRARIES}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${PLIB_LIBRARIES}
|
||||
${ZLIB_LIBRARY})
|
||||
|
||||
|
|
|
@ -4,12 +4,7 @@ add_executable(MIDGsmooth MIDG-II.cxx MIDG_main.cxx)
|
|||
add_executable(UGsmooth UGear.cxx UGear_command.cxx UGear_main.cxx UGear_telnet.cxx)
|
||||
|
||||
target_link_libraries(GPSsmooth
|
||||
${SIMGEAR_IO_LIBRARY}
|
||||
${SIMGEAR_MISC_LIBRARY}
|
||||
${SIMGEAR_STRUCTURE_LIBRARY}
|
||||
${SIMGEAR_THREADS_LIBRARY}
|
||||
${SIMGEAR_TIMING_LIBRARY}
|
||||
${SIMGEAR_DEBUG_LIBRARY}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${PLIB_SG_LIBRARY}
|
||||
${PLIB_UL_LIBRARY}
|
||||
${ZLIB_LIBRARIES}
|
||||
|
@ -20,13 +15,7 @@ target_link_libraries(GPSsmooth
|
|||
)
|
||||
|
||||
target_link_libraries(MIDGsmooth
|
||||
${SIMGEAR_IO_LIBRARY}
|
||||
${SIMGEAR_MATH_LIBRARY}
|
||||
${SIMGEAR_SERIAL_LIBRARY}
|
||||
${SIMGEAR_STRUCTURE_LIBRARY}
|
||||
${SIMGEAR_THREADS_LIBRARY}
|
||||
${SIMGEAR_TIMING_LIBRARY}
|
||||
${SIMGEAR_DEBUG_LIBRARY}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${PLIB_SG_LIBRARY}
|
||||
${PLIB_UL_LIBRARY}
|
||||
${WINMM_LIBRARY}
|
||||
|
@ -35,14 +24,7 @@ target_link_libraries(MIDGsmooth
|
|||
)
|
||||
|
||||
target_link_libraries(UGsmooth
|
||||
${SIMGEAR_DEBUG_LIBRARY}
|
||||
${SIMGEAR_IO_LIBRARY}
|
||||
${SIMGEAR_MATH_LIBRARY}
|
||||
${SIMGEAR_MISC_LIBRARY}
|
||||
${SIMGEAR_SERIAL_LIBRARY}
|
||||
${SIMGEAR_STRUCTURE_LIBRARY}
|
||||
${SIMGEAR_THREADS_LIBRARY}
|
||||
${SIMGEAR_TIMING_LIBRARY}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${PLIB_SG_LIBRARY}
|
||||
${PLIB_UL_LIBRARY}
|
||||
${WINMM_LIBRARY}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
add_executable(terrasync terrasync.cxx)
|
||||
|
||||
target_link_libraries(terrasync
|
||||
${SIMGEAR_LIBRARIES}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
${WINSOCK_LIBRARY}
|
||||
${RT_LIBRARY})
|
||||
|
|
|
@ -18,7 +18,7 @@ if(GLUT_FOUND)
|
|||
target_link_libraries(fgpanel
|
||||
${PNG_LIBRARIES}
|
||||
${GLUT_LIBRARIES}
|
||||
${SIMGEAR_LIBRARIES}
|
||||
${SIMGEAR_CORE_LIBRARIES}
|
||||
${OPENGL_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
${PLIB_LIBRARIES}
|
||||
|
|
Loading…
Reference in a new issue