diff --git a/cmake/MapnikExportPkgConfig.cmake b/cmake/MapnikExportPkgConfig.cmake index 5649cb107..b4b9cd5ef 100644 --- a/cmake/MapnikExportPkgConfig.cmake +++ b/cmake/MapnikExportPkgConfig.cmake @@ -8,26 +8,58 @@ libdir=${exec_prefix}/lib Name: @_lib_name@ Description: @_description@ Version: @MAPNIK_VERSION@ -Libs: -L"${libdir}" -l$$$_POSTFIX> +Libs: -L"${libdir}" -l$$_POSTFIX> Cflags: -I"${includedir}" ]] _contents @ONLY) file(GENERATE - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}.pc + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-$.pc CONTENT "${_contents}" ) install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}.pc + FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-$.pc DESTINATION ${MAPNIK_PKGCONF_DIR} + RENAME ${_lib_name}.pc ) endfunction() function(create_pkg_config_file_mapnik _lib_name _description) - get_target_property(_compile_defs core INTERFACE_COMPILE_DEFINITIONS) - string(JOIN " -D" _str_compile_defs ${_compile_defs}) - if(_str_compile_defs) - set(_str_compile_defs "-D${_str_compile_defs}") + get_target_property(m_compile_defs core INTERFACE_COMPILE_DEFINITIONS) + string(JOIN " -D" m_str_compile_defs ${m_compile_defs}) + if(m_str_compile_defs) + set(m_str_compile_defs "-D${m_str_compile_defs}") endif() + + set(m_requires + libmapnikwkt + libmapnikjson + icu-uc + icu-i18n + harfbuzz + freetype2 + ) + if(USE_LIBXML2) + list(APPEND m_requires libxml-2.0) + endif() + if(USE_PNG) + list(APPEND m_requires libpng) + endif() + if(USE_JPEG) + list(APPEND m_requires libjpeg) + endif() + if(USE_TIFF) + list(APPEND m_requires libtiff-4) + endif() + if(USE_WEBP) + list(APPEND m_requires libwebp) + endif() + if(USE_CAIRO) + list(APPEND m_requires cairo) + endif() + if(USE_PROJ) + list(APPEND m_requires "proj >= ${PROJ_MIN_VERSION}") + endif() + string(JOIN " " m_requires ${m_requires}) string(CONFIGURE [[ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} @@ -37,17 +69,18 @@ libdir=${exec_prefix}/lib Name: @_lib_name@ Description: @_description@ Version: @MAPNIK_VERSION@ -Requires: libmapnikwkt libmapnikjson -Libs: -L"${libdir}" -l$$$_POSTFIX> -l$$$_POSTFIX> -l$$$_POSTFIX> -Cflags: -I"${includedir}" @_str_compile_defs@]] +Requires: @m_requires@ +Libs: -L"${libdir}" -l$$_POSTFIX> +Cflags: -I"${includedir}" @m_str_compile_defs@]] _contents @ONLY) file(GENERATE - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}.pc + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-$.pc CONTENT "${_contents}" ) install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}.pc + FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-$.pc DESTINATION ${MAPNIK_PKGCONF_DIR} + RENAME ${_lib_name}.pc ) endfunction() diff --git a/src/json/CMakeLists.txt b/src/json/CMakeLists.txt index 01efdb819..e427561d9 100644 --- a/src/json/CMakeLists.txt +++ b/src/json/CMakeLists.txt @@ -27,8 +27,9 @@ target_link_libraries(json PRIVATE mapnik::core ${ICUU_LIB}) set_target_properties(json PROPERTIES POSITION_INDEPENDENT_CODE ON DEBUG_POSTFIX "${MAPNIK_DEBUG_POSTFIX}" - OUTPUT_NAME "json" - PREFIX "libmapnik" + OUTPUT_NAME "mapnikjson" + PREFIX "lib" + IMPORT_PREFIX "lib" VERSION ${MAPNIK_VERSION} # see mapnik target for explanation SOVERSION ${MAPNIK_VERSION} diff --git a/src/wkt/CMakeLists.txt b/src/wkt/CMakeLists.txt index 7aef814ad..ff22be452 100644 --- a/src/wkt/CMakeLists.txt +++ b/src/wkt/CMakeLists.txt @@ -19,8 +19,9 @@ target_link_libraries(wkt PRIVATE mapnik::core) set_target_properties(wkt PROPERTIES POSITION_INDEPENDENT_CODE ON DEBUG_POSTFIX "${MAPNIK_DEBUG_POSTFIX}" - OUTPUT_NAME "wkt" - PREFIX "libmapnik" + OUTPUT_NAME "mapnikwkt" + PREFIX "lib" + IMPORT_PREFIX "lib" VERSION ${MAPNIK_VERSION} # see mapnik target for explanation SOVERSION ${MAPNIK_VERSION}