Skip to content

Commit

Permalink
CMake build system fixes by Jan Comans: Cmake 2.8.8 has a new feature…
Browse files Browse the repository at this point in the history
… that allows the creation of 'object' libraries that will be fully embeded into the final library, resulting in a true standalone library.
  • Loading branch information
ehofman committed Jan 22, 2014
1 parent dc2c5a0 commit 2f98a5d
Show file tree
Hide file tree
Showing 15 changed files with 32 additions and 143 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required (VERSION 2.8.0)
cmake_minimum_required (VERSION 2.8.8)

################################################################################
# Project description #
Expand Down
19 changes: 13 additions & 6 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,24 @@ add_subdirectory(math)
add_subdirectory(models)
add_subdirectory(simgear)

list(APPEND JSBSIM_LINK_LIBRARIES Init Atmosphere Models FlightControl
Propulsion Math InputOutput Properties Expat
coremag)

set(HEADERS FGFDMExec.h
FGJSBBase.h)
set(SOURCES FGFDMExec.cpp
FGJSBBase.cpp)

add_library(libJSBSim ${HEADERS} ${SOURCES})
target_link_libraries(libJSBSim ${JSBSIM_LINK_LIBRARIES})
add_library(libJSBSim ${HEADERS} ${SOURCES}
$<TARGET_OBJECTS:Init>
$<TARGET_OBJECTS:Atmosphere>
$<TARGET_OBJECTS:Models>
$<TARGET_OBJECTS:FlightControl>
$<TARGET_OBJECTS:Propulsion>
$<TARGET_OBJECTS:Math>
$<TARGET_OBJECTS:InputOutput>
$<TARGET_OBJECTS:Properties>
$<TARGET_OBJECTS:Expat>
$<TARGET_OBJECTS:coremag>
)

set_target_properties (libJSBSim PROPERTIES
OUTPUT_NAME JSBSim${STATIC_LIBNAME_SUFFIX}
VERSION ${LIBRARY_VERSION})
Expand Down
14 changes: 1 addition & 13 deletions src/initialization/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,7 @@ set(JSBSIM_INITIALISATION_HDR FGInitialCondition.h
FGTrimmer.h
FGLinearization.h)

add_library(Init ${JSBSIM_INITIALISATION_HDR} ${JSBSIM_INITIALISATION_SRC})
set_target_properties (Init PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Init PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()
add_library(Init OBJECT ${JSBSIM_INITIALISATION_HDR} ${JSBSIM_INITIALISATION_SRC})

install(TARGETS Init LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_INITIALISATION_HDR} DESTINATION include/JSBSim/initialization)

14 changes: 1 addition & 13 deletions src/input_output/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,7 @@ set(JSBSIM_INPUT_OUTPUT_HDR FGGroundCallback.h
FGOutputTextFile.h
FGPropertyReader.h)

add_library(InputOutput ${JSBSIM_INPUT_OUTPUT_HDR} ${JSBSIM_INPUT_OUTPUT_SRC})
set_target_properties (InputOutput PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (InputOutput PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()
add_library(InputOutput OBJECT ${JSBSIM_INPUT_OUTPUT_HDR} ${JSBSIM_INPUT_OUTPUT_SRC})

install(TARGETS InputOutput LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_INPUT_OUTPUT_HDR} DESTINATION include/JSBSim/input_output)

14 changes: 1 addition & 13 deletions src/math/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,7 @@ set(JSBSIM_MATH_HDR FGColumnVector3.h
FGNelderMead.h
FGStateSpace.h)

add_library(Math ${JSBSIM_MATH_HDR} ${JSBSIM_MATH_SRC})
set_target_properties (Math PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Math PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()
add_library(Math OBJECT ${JSBSIM_MATH_HDR} ${JSBSIM_MATH_SRC})

install(TARGETS Math LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_MATH_HDR} DESTINATION include/JSBSim/math)

14 changes: 1 addition & 13 deletions src/models/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,7 @@ set(JSBSIM_MODELS_HDR FGAerodynamics.h
FGAccelerations.h
FGFCSChannel.h)

add_library(Models ${JSBSIM_MODELS_HDR} ${JSBSIM_MODELS_SRC})
set_target_properties (Models PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Models PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()
add_library(Models OBJECT ${JSBSIM_MODELS_HDR} ${JSBSIM_MODELS_SRC})

install(TARGETS Models LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_MODELS_HDR} DESTINATION include/JSBSim/models)

14 changes: 1 addition & 13 deletions src/models/atmosphere/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,8 @@ set(JSBSIM_MODELS_ATMOSPHERE_HDR FGMSIS.h
FGStandardAtmosphere.h
FGWinds.h)

add_library(Atmosphere ${JSBSIM_MODELS_ATMOSPHERE_HDR}
add_library(Atmosphere OBJECT ${JSBSIM_MODELS_ATMOSPHERE_HDR}
${JSBSIM_MODELS_ATMOSPHERE_SRC})
set_target_properties (Atmosphere PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Atmosphere PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()

install(TARGETS Atmosphere LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_MODELS_ATMOSPHERE_HDR} DESTINATION include/JSBSim/models/atmosphere)

14 changes: 1 addition & 13 deletions src/models/flight_control/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,8 @@ set(JSBSIM_MODELS_FLIGHT_CONTROL_HDR FGDeadBand.h
FGWaypoint.h
FGDistributor.h)

add_library(FlightControl ${JSBSIM_MODELS_FLIGHT_CONTROL_HDR}
add_library(FlightControl OBJECT ${JSBSIM_MODELS_FLIGHT_CONTROL_HDR}
${JSBSIM_MODELS_FLIGHT_CONTROL_SRC})
set_target_properties (FlightControl PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (FlightControl PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()

install(TARGETS FlightControl LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_MODELS_FLIGHT_CONTROL_HDR} DESTINATION include/JSBSim/models/flight_control)

14 changes: 1 addition & 13 deletions src/models/propulsion/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,8 @@ set(JSBSIM_MODELS_PROPULSION_HDR FGElectric.h
FGTransmission.h
FGRotor.h)

add_library(Propulsion ${JSBSIM_MODELS_PROPULSION_HDR}
add_library(Propulsion OBJECT ${JSBSIM_MODELS_PROPULSION_HDR}
${JSBSIM_MODELS_PROPULSION_SRC})
set_target_properties (Propulsion PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Propulsion PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()

install(TARGETS Propulsion LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_MODELS_PROPULSION_HDR} DESTINATION include/JSBSim/models/propulsion)

2 changes: 2 additions & 0 deletions src/simgear/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ add_subdirectory(xml)

set(JSBSIM_SIMGEAR_HDR compiler.h)

install(FILES ${JSBSIM_SIMGEAR_HDR} DESTINATION include/JSBSim/simgear)

15 changes: 2 additions & 13 deletions src/simgear/magvar/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,7 @@ set(JSBSIM_SIMGEAR_MAGVAR_SRC coremag.cxx)

set(JSBSIM_SIMGEAR_MAGVAR_HDR coremag.hxx)

add_library(coremag ${JSBSIM_SIMGEAR_MAGVAR_HDR} ${JSBSIM_SIMGEAR_MAGVAR_SRC})
set_target_properties (coremag PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (coremag PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()
add_library(coremag OBJECT ${JSBSIM_SIMGEAR_MAGVAR_HDR} ${JSBSIM_SIMGEAR_MAGVAR_SRC})

install(TARGETS coremag LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
install(FILES ${JSBSIM_SIMGEAR_MAGVAR_HDR} DESTINATION include/JSBSim/simgear/magvar)

2 changes: 2 additions & 0 deletions src/simgear/misc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
set(JSBSIM_SIMGEAR_MISC_HDR stdint.hxx)

install(FILES ${JSBSIM_SIMGEAR_MISC_HDR} DESTINATION include/JSBSim/simgear/misc)

16 changes: 2 additions & 14 deletions src/simgear/props/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,6 @@ set(JSBSIM_SIMGEAR_PROPS_SRC props.cxx)

set(JSBSIM_SIMGEAR_PROPS_HDR props.hxx)

add_library(Properties ${JSBSIM_SIMGEAR_PROPS_HDR} ${JSBSIM_SIMGEAR_PROPS_SRC})
set_target_properties (Properties PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Properties PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()

install(TARGETS Properties LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
add_library(Properties OBJECT ${JSBSIM_SIMGEAR_PROPS_HDR} ${JSBSIM_SIMGEAR_PROPS_SRC})

install(FILES ${JSBSIM_SIMGEAR_PROPS_HDR} DESTINATION include/JSBSim/simgear/props)
1 change: 1 addition & 0 deletions src/simgear/structure/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
set(JSBSIM_SIMGEAR_STRUCTURE_HDR SGReferenced.hxx
SGSharedPtr.hxx)

install(FILES ${JSBSIM_SIMGEAR_STRUCTURE_HDR} DESTINATION include/JSBSim/simgear/structure)
20 changes: 2 additions & 18 deletions src/simgear/xml/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,6 @@ else()
include_directories(${EXPAT_INCLUDE_DIRS})
endif()

add_library(Expat ${JSBSIM_SIMGEAR_XML_HDR} ${JSBSIM_SIMGEAR_XML_SRC})
set_target_properties (Expat PROPERTIES
VERSION ${LIBRARY_VERSION})
if(BUILD_SHARED_LIBS)
set_target_properties (Expat PROPERTIES
SOVERSION ${LIBRARY_SOVERSION}
FRAMEWORK ON)
endif()

if(EXPAT_FOUND)
target_link_libraries(Expat ${EXPAT_LIBRARIES})
endif()

install(TARGETS Expat LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION lib
# For Mac
FRAMEWORK DESTINATION "/Library/Frameworks")
add_library(Expat OBJECT ${JSBSIM_SIMGEAR_XML_HDR} ${JSBSIM_SIMGEAR_XML_SRC})

install(FILES ${JSBSIM_SIMGEAR_XML_HDR} DESTINATION include/JSBSim/simgear/xml)

0 comments on commit 2f98a5d

Please sign in to comment.