Skip to content

Commit 9ef357c

Browse files
committed
Fixes the build process when SYSTEM_EXPAT is set to ON.
The problem did not arise on Travis CI because SYSTEM_EXPAT=ON was tested simultaneously with BUILD_SHARED_LIBS=ON.
1 parent c890674 commit 9ef357c

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

CMakeLists.txt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,15 @@ function(get_tail INPUT_STRING OUTPUT_STRING SEPARATOR)
2828
set(${OUTPUT_STRING} ${TAIL} PARENT_SCOPE)
2929
endfunction()
3030

31+
find_package(PkgConfig)
32+
3133
################################################################################
3234
# Build JSBSim libs and exec #
3335
################################################################################
3436

3537
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
3638
add_subdirectory(src)
39+
get_target_property(libJSBSim_LINK_LIBRARIES libJSBSim LINK_LIBRARIES)
3740

3841
################################################################################
3942
# Documentation #
@@ -90,9 +93,12 @@ endif(CXXTEST_FOUND)
9093
# Packaging #
9194
################################################################################
9295

93-
find_package(PkgConfig)
94-
9596
if (PKG_CONFIG_FOUND)
97+
if (NOT BUILD_SHARED_LIBS)
98+
foreach(_LIB ${libJSBSim_LINK_LIBRARIES})
99+
set(JSBSIM_PKG_CONFIG_LINK_LIBRARIES "${JSBSIM_PKG_CONFIG_LINK_LIBRARIES} -l${_LIB}")
100+
endforeach(_LIB)
101+
endif(NOT BUILD_SHARED_LIBS)
96102
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/JSBSim.pc.in ${CMAKE_CURRENT_BINARY_DIR}/JSBSim.pc @ONLY)
97103
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/JSBSim.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT devel)
98104
endif()
@@ -176,6 +182,9 @@ set(CPACK_DEBIAN_RUNTIME_FILE_NAME "${CMAKE_PROJECT_NAME}${EXTENSION_NAME}.deb")
176182
set(CPACK_DEBIAN_DEVEL_FILE_NAME "${CMAKE_PROJECT_NAME}-devel${EXTENSION_NAME}.deb")
177183
set(CPACK_DEBIAN_PYMODULES_PACKAGE_NAME "python${PYTHON_VERSION_MAJOR}-${CPACK_PACKAGE_NAME}")
178184
set(CPACK_DEBIAN_PYMODULES_FILE_NAME "python${PYTHON_VERSION_MAJOR}-${CMAKE_PROJECT_NAME}${EXTENSION_NAME}.deb")
185+
if (SYSTEM_EXPAT)
186+
set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "libexpat1")
187+
endif(SYSTEM_EXPAT)
179188
if(BUILD_SHARED_LIBS)
180189
set(CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS "${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME} (>=${CPACK_PACKAGE_VERSION})")
181190
set(CPACK_DEBIAN_PYMODULES_PACKAGE_DEPENDS "${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME} (>=${CPACK_PACKAGE_VERSION})")

JSBSim.pc.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ includedir=@CMAKE_INSTALL_PREFIX@/include
55
Name: JSBSim
66
Description: An open source flight dynamics & control software library
77
Version: @PROJECT_VERSION@
8-
Libs: -L${libdir} -lJSBSim
8+
Libs: -L${libdir} -lJSBSim@JSBSIM_PKG_CONFIG_LINK_LIBRARIES@
99
Cflags: -I${includedir}/JSBSim

python/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ endif(MSVC)
4242
cmake_policy(SET CMP0051 NEW)
4343
get_target_property(libJSBSim_SOURCE_FILES libJSBSim SOURCES)
4444
get_target_property(libJSBSim_DIRECTORY libJSBSim TARGET_DIRECTORY)
45-
get_target_property(libJSBSim_LINK_LIBRARIES libJSBSim LINK_LIBRARIES)
4645
get_directory_property(FLAGS_LIST DIRECTORY ${libJSBSim_DIRECTORY} COMPILE_DEFINITIONS)
4746
file(RELATIVE_PATH libJSBSim_PATH ${CMAKE_SOURCE_DIR} ${libJSBSim_DIRECTORY})
4847

src/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ add_subdirectory(simgear)
7171

7272
if(EXPAT_FOUND)
7373
include_directories(${EXPAT_INCLUDE_DIRS})
74-
set(JSBSIM_LINK_LIBRARIES ${EXPAT_LIBRARIES} ${JSBSIM_LINK_LIBRARIES})
74+
if (PKG_CONFIG_FOUND)
75+
set(JSBSIM_LINK_LIBRARIES ${PC_EXPAT_LIBRARIES} ${JSBSIM_LINK_LIBRARIES})
76+
else()
77+
set(JSBSIM_LINK_LIBRARIES ${EXPAT_LIBRARIES} ${JSBSIM_LINK_LIBRARIES})
78+
endif()
7579
endif()
7680

7781
set(HEADERS FGFDMExec.h

0 commit comments

Comments
 (0)