Skip to content

Commit

Permalink
Fixes the build process when SYSTEM_EXPAT is set to ON.
Browse files Browse the repository at this point in the history
The problem did not arise on Travis CI because SYSTEM_EXPAT=ON was tested simultaneously with BUILD_SHARED_LIBS=ON.
  • Loading branch information
bcoconni committed Sep 6, 2020
1 parent c890674 commit 9ef357c
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 5 deletions.
13 changes: 11 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@ function(get_tail INPUT_STRING OUTPUT_STRING SEPARATOR)
set(${OUTPUT_STRING} ${TAIL} PARENT_SCOPE)
endfunction()

find_package(PkgConfig)

################################################################################
# Build JSBSim libs and exec #
################################################################################

set(CMAKE_POSITION_INDEPENDENT_CODE ON)
add_subdirectory(src)
get_target_property(libJSBSim_LINK_LIBRARIES libJSBSim LINK_LIBRARIES)

################################################################################
# Documentation #
Expand Down Expand Up @@ -90,9 +93,12 @@ endif(CXXTEST_FOUND)
# Packaging #
################################################################################

find_package(PkgConfig)

if (PKG_CONFIG_FOUND)
if (NOT BUILD_SHARED_LIBS)
foreach(_LIB ${libJSBSim_LINK_LIBRARIES})
set(JSBSIM_PKG_CONFIG_LINK_LIBRARIES "${JSBSIM_PKG_CONFIG_LINK_LIBRARIES} -l${_LIB}")
endforeach(_LIB)
endif(NOT BUILD_SHARED_LIBS)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/JSBSim.pc.in ${CMAKE_CURRENT_BINARY_DIR}/JSBSim.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/JSBSim.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT devel)
endif()
Expand Down Expand Up @@ -176,6 +182,9 @@ set(CPACK_DEBIAN_RUNTIME_FILE_NAME "${CMAKE_PROJECT_NAME}${EXTENSION_NAME}.deb")
set(CPACK_DEBIAN_DEVEL_FILE_NAME "${CMAKE_PROJECT_NAME}-devel${EXTENSION_NAME}.deb")
set(CPACK_DEBIAN_PYMODULES_PACKAGE_NAME "python${PYTHON_VERSION_MAJOR}-${CPACK_PACKAGE_NAME}")
set(CPACK_DEBIAN_PYMODULES_FILE_NAME "python${PYTHON_VERSION_MAJOR}-${CMAKE_PROJECT_NAME}${EXTENSION_NAME}.deb")
if (SYSTEM_EXPAT)
set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "libexpat1")
endif(SYSTEM_EXPAT)
if(BUILD_SHARED_LIBS)
set(CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS "${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME} (>=${CPACK_PACKAGE_VERSION})")
set(CPACK_DEBIAN_PYMODULES_PACKAGE_DEPENDS "${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME} (>=${CPACK_PACKAGE_VERSION})")
Expand Down
2 changes: 1 addition & 1 deletion JSBSim.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ includedir=@CMAKE_INSTALL_PREFIX@/include
Name: JSBSim
Description: An open source flight dynamics & control software library
Version: @PROJECT_VERSION@
Libs: -L${libdir} -lJSBSim
Libs: -L${libdir} -lJSBSim@JSBSIM_PKG_CONFIG_LINK_LIBRARIES@
Cflags: -I${includedir}/JSBSim
1 change: 0 additions & 1 deletion python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ endif(MSVC)
cmake_policy(SET CMP0051 NEW)
get_target_property(libJSBSim_SOURCE_FILES libJSBSim SOURCES)
get_target_property(libJSBSim_DIRECTORY libJSBSim TARGET_DIRECTORY)
get_target_property(libJSBSim_LINK_LIBRARIES libJSBSim LINK_LIBRARIES)
get_directory_property(FLAGS_LIST DIRECTORY ${libJSBSim_DIRECTORY} COMPILE_DEFINITIONS)
file(RELATIVE_PATH libJSBSim_PATH ${CMAKE_SOURCE_DIR} ${libJSBSim_DIRECTORY})

Expand Down
6 changes: 5 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,11 @@ add_subdirectory(simgear)

if(EXPAT_FOUND)
include_directories(${EXPAT_INCLUDE_DIRS})
set(JSBSIM_LINK_LIBRARIES ${EXPAT_LIBRARIES} ${JSBSIM_LINK_LIBRARIES})
if (PKG_CONFIG_FOUND)
set(JSBSIM_LINK_LIBRARIES ${PC_EXPAT_LIBRARIES} ${JSBSIM_LINK_LIBRARIES})
else()
set(JSBSIM_LINK_LIBRARIES ${EXPAT_LIBRARIES} ${JSBSIM_LINK_LIBRARIES})
endif()
endif()

set(HEADERS FGFDMExec.h
Expand Down

0 comments on commit 9ef357c

Please sign in to comment.