Skip to content

Commit

Permalink
Merge pull request #68 from maz-1/master
Browse files Browse the repository at this point in the history
export package to cmake build system; fix pkg-config requires
  • Loading branch information
jklimke authored Mar 14, 2022
2 parents 32c3fda + 0d7337f commit 6e2b9c8
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 3 deletions.
48 changes: 46 additions & 2 deletions sources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,10 @@ generate_export_header(citygml
EXPORT_MACRO_NAME LIBCITYGML_EXPORT
EXPORT_FILE_NAME ${EXPORT_HEADER_FILE_NAME})

TARGET_LINK_LIBRARIES( ${target} ${XERCESC_LIBRARIES} ${OPENGL_LIBRARIES} ${GDAL_LIBRARY} )
TARGET_LINK_LIBRARIES( ${target} PUBLIC ${XERCESC_LIBRARIES} ${OPENGL_LIBRARIES} )
if(LIBCITYGML_USE_GDAL)
TARGET_LINK_LIBRARIES( ${target} PUBLIC ${GDAL_LIBRARY} )
endif(LIBCITYGML_USE_GDAL)

set_target_properties( ${target} PROPERTIES
VERSION ${META_VERSION}
Expand All @@ -222,26 +225,57 @@ if(NOT DEFINED INCLUDE_INSTALL_DIR)
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/citygml")
endif(NOT DEFINED INCLUDE_INSTALL_DIR)

if(WIN32)
set(CONFIG_INSTALL_DIR "cmake")
else()
set(CONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/citygml")
endif()

INSTALL(
TARGETS ${target}
EXPORT citygmlConfigInternal
RUNTIME DESTINATION ${BIN_INSTALL_DIR}
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
COMPONENT "runtime"
)
INSTALL(
EXPORT citygmlConfigInternal
DESTINATION "${CONFIG_INSTALL_DIR}"
NAMESPACE "citygml::"
COMPONENT "development"
)

include(CMakePackageConfigHelpers)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/citygmlConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/citygmlConfig.cmake"
INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}")
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/citygmlConfigVersion.cmake
VERSION "${META_VERSION}"
COMPATIBILITY SameMajorVersion)
INSTALL(
FILES ${CMAKE_CURRENT_BINARY_DIR}/citygmlConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/citygmlConfigVersion.cmake
DESTINATION "${CONFIG_INSTALL_DIR}"
COMPONENT "development"
)

# FIXME: Do not run for OS X framework
INSTALL(
FILES
${PUBLIC_HEADER}
DESTINATION ${INCLUDE_INSTALL_DIR}
COMPONENT "development"
)

INSTALL(
FILES
${EXPORT_HEADER_FILE_NAME}
DESTINATION
${INCLUDE_INSTALL_DIR}
COMPONENT "development"
)

if (LIBCITYGML_DEBUG_POSTFIX AND CMAKE_BUILD_TYPE STREQUAL "Debug")
Expand All @@ -250,7 +284,17 @@ else()
set(LIBCITYGML_POSTFIX "")
endif()

set(PKG_CONFIG_REQUIRES "xerces-c glu")

if (LIBCITYGML_USE_GDAL)
set(PKG_CONFIG_REQUIRES "${PKG_CONFIG_REQUIRES} gdal")
endif()

configure_file(citygml.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/citygml.pc)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/citygml.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
INSTALL(
FILES ${CMAKE_CURRENT_BINARY_DIR}/citygml.pc
DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
COMPONENT "development"
)

2 changes: 1 addition & 1 deletion sources/citygml.pc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ includedir=${INCLUDE_INSTALL_DIR}

Name: citygml
Description: Read and Write CityGML files
Requires: libxml-2.0 glu
Requires: ${PKG_CONFIG_REQUIRES}
Version: ${META_VERSION}
Libs: -L${LIB_INSTALL_DIR} -lcitygml${LIBCITYGML_POSTFIX}
Cflags: -I${INCLUDE_INSTALL_DIR}
9 changes: 9 additions & 0 deletions sources/citygmlConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/citygmlConfigInternal.cmake")

set(CITYGML_ROOT_DIR ${PACKAGE_PREFIX_DIR})
set(CITYGML_LIBRARIES citygml::citygml)
set(CITYGML_DYNAMIC @LIBCITYGML_DYNAMIC@)
get_property(CITYGML_INCLUDE_DIRS TARGET citygml::citygml PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
set(CITYGML_LIBRARY_DIRS "")

0 comments on commit 6e2b9c8

Please sign in to comment.