[CMake] use pkgconfig for webp; make some statements more clearly
This commit is contained in:
parent
c85f8462fd
commit
34df24f4e2
4 changed files with 44 additions and 144 deletions
|
@ -296,15 +296,15 @@ if(USE_TIFF)
|
|||
endif()
|
||||
|
||||
if(USE_WEBP)
|
||||
mapnik_find_package(WebP REQUIRED)
|
||||
pkg_check_modules(WebP REQUIRED IMPORTED_TARGET libwebp)
|
||||
list(APPEND MAPNIK_COMPILE_DEFS HAVE_WEBP)
|
||||
list(APPEND MAPNIK_OPTIONAL_LIBS WebP::WebP)
|
||||
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::WebP)
|
||||
endif()
|
||||
|
||||
if(USE_CAIRO)
|
||||
pkg_check_modules(Cairo REQUIRED IMPORTED_TARGET cairo)
|
||||
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::Cairo)
|
||||
list(APPEND MAPNIK_COMPILE_DEFS HAVE_CAIRO)
|
||||
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::Cairo)
|
||||
endif()
|
||||
|
||||
if(USE_PROJ)
|
||||
|
|
|
@ -1,97 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindWebP
|
||||
-------
|
||||
|
||||
Finds the WebP library.
|
||||
|
||||
Imported Targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module provides the following imported targets, if found:
|
||||
|
||||
``WebP::WebP``
|
||||
The WebP library
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This will define the following variables:
|
||||
|
||||
``WebP_FOUND``
|
||||
True if the system has the WebP library.
|
||||
``WebP_VERSION``
|
||||
The version of the WebP library which was found.
|
||||
``WebP_INCLUDE_DIRS``
|
||||
Include directories needed to use WebP.
|
||||
``WebP_LIBRARIES``
|
||||
Libraries needed to link to WebP.
|
||||
|
||||
Cache Variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The following cache variables may also be set:
|
||||
|
||||
``WebP_INCLUDE_DIR``
|
||||
The directory containing ``decode.h``.
|
||||
``WebP_LIBRARY``
|
||||
The path to the Foo library.
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
if(NOT WebP_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_WebP QUIET libwebp)
|
||||
set(WebP_VERSION ${PC_WebP_VERSION})
|
||||
find_path(WebP_INCLUDE_DIR NAMES decode.h HINTS ${PC_WebP_INCLUDEDIR} ${PC_WebP_INCLUDE_DIR} PATH_SUFFIXES webp)
|
||||
find_library(WebP_LIBRARY_RELEASE NAMES ${WebP_NAMES} webp HINTS ${PC_WebP_LIBDIR} ${PC_WebP_LIBRARY_DIRS})
|
||||
find_library(WebP_LIBRARY_DEBUG NAMES ${WebP_NAMES} webpd HINTS ${PC_WebP_LIBDIR} ${PC_WebP_LIBRARY_DIRS})
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(WebP)
|
||||
else()
|
||||
file(TO_CMAKE_PATH "${WebP_LIBRARY}" WebP_LIBRARY)
|
||||
endif()
|
||||
|
||||
if ("${WebP_FIND_VERSION}" VERSION_GREATER "${WebP_VERSION}")
|
||||
if (WebP_VERSION)
|
||||
message(FATAL_ERROR "Required version (" ${WebP_FIND_VERSION} ") is higher than found version (" ${PC_WebP_VERSION} ")")
|
||||
else ()
|
||||
message(WARNING "Cannot determine WebP version without pkg-config")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WebP
|
||||
REQUIRED_VARS
|
||||
WebP_LIBRARY
|
||||
WebP_INCLUDE_DIR
|
||||
VERSION_VAR WebP_VERSION
|
||||
)
|
||||
mark_as_advanced(WebP_INCLUDE_DIR WebP_LIBRARY)
|
||||
|
||||
if (WebP_FOUND)
|
||||
set(WebP_LIBRARIES ${WebP_LIBRARY})
|
||||
set(WebP_INCLUDE_DIRS ${WebP_INCLUDE_DIR})
|
||||
if(NOT TARGET WebP::WebP)
|
||||
add_library(WebP::WebP UNKNOWN IMPORTED)
|
||||
set_target_properties(WebP::WebP PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${WebP_INCLUDE_DIR}
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES C)
|
||||
|
||||
if(WebP_LIBRARY_RELEASE)
|
||||
set_property(TARGET WebP::WebP APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(WebP::WebP PROPERTIES IMPORTED_LOCATION_RELEASE "${WebP_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
|
||||
if(WebP_LIBRARY_DEBUG)
|
||||
set_property(TARGET WebP::WebP APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties(WebP::WebP PROPERTIES IMPORTED_LOCATION_DEBUG "${WebP_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
|
||||
if(NOT WebP_LIBRARY_RELEASE AND NOT WebP_LIBRARY_DEBUG)
|
||||
set_target_properties(WebP::WebP PROPERTIES IMPORTED_LOCATION "${WebP_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
endif ()
|
|
@ -1,5 +1,7 @@
|
|||
include(CMakePackageConfigHelpers)
|
||||
|
||||
### exports mapnik cmake config files (mapnikConfigVersion and mapnikConfig)
|
||||
function(mapnik_export_cmake_config)
|
||||
# export mapnik configuration
|
||||
write_basic_package_version_file(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mapnikConfigVersion.cmake"
|
||||
|
@ -8,27 +10,22 @@ write_basic_package_version_file(
|
|||
)
|
||||
get_property(MAPNIK_UTILITIES GLOBAL PROPERTY MAPNIK_UTILITIES)
|
||||
list(JOIN MAPNIK_DEPENDENCIES "\n" MAPNIK_DEPENDENCIES)
|
||||
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/mapnikConfig.cmake.in
|
||||
configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/mapnikConfig.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mapnikConfig.cmake"
|
||||
INSTALL_DESTINATION ${MAPNIK_CMAKE_DIR}
|
||||
PATH_VARS MAPNIK_INCLUDE_DIR PLUGINS_INSTALL_DIR FONTS_INSTALL_DIR MAPNIK_DEPENDENCIES MAPNIK_UTILITIES
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||
)
|
||||
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mapnikConfig.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mapnikConfigVersion.cmake"
|
||||
DESTINATION ${MAPNIK_CMAKE_DIR}
|
||||
)
|
||||
endfunction()
|
||||
|
||||
# install our modules, so that the expected target names are found.
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindCairo.cmake"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindWebP.cmake"
|
||||
DESTINATION ${MAPNIK_CMAKE_DIR}/Modules
|
||||
)
|
||||
|
||||
mapnik_export_cmake_config()
|
||||
|
||||
install(EXPORT MapnikTargets
|
||||
DESTINATION ${MAPNIK_CMAKE_DIR}
|
||||
|
@ -36,21 +33,21 @@ install(EXPORT MapnikTargets
|
|||
NAMESPACE mapnik::
|
||||
)
|
||||
|
||||
|
||||
### install plugin cmake config files ###
|
||||
# Create configuration dependend files for the plugin install dirs.
|
||||
# some package managers are using different paths per configuration.
|
||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" _build_type)
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" _build_type_l)
|
||||
set(_mapnik_plugin_file_name "mapnikPlugins-${_build_type}")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_mapnik_plugin_file_name}.cmake.in "set(MAPNIK_PLUGINS_DIR_${_build_type_l} \"@PACKAGE_PLUGINS_INSTALL_DIR@\" CACHE STRING \"\")\n")
|
||||
set(m_mapnik_plugin_file_name mapnikPlugins-${_build_type})
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${m_mapnik_plugin_file_name}.cmake.in" "set(MAPNIK_PLUGINS_DIR_${_build_type_l} \"@PACKAGE_PLUGINS_INSTALL_DIR@\" CACHE STRING \"\")\n")
|
||||
include(CMakePackageConfigHelpers)
|
||||
configure_package_config_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${_mapnik_plugin_file_name}.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${_mapnik_plugin_file_name}.cmake
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${m_mapnik_plugin_file_name}.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${m_mapnik_plugin_file_name}.cmake"
|
||||
PATH_VARS PLUGINS_INSTALL_DIR
|
||||
INSTALL_DESTINATION ${MAPNIK_CMAKE_DIR}
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/${_mapnik_plugin_file_name}.cmake
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/${m_mapnik_plugin_file_name}.cmake"
|
||||
DESTINATION ${MAPNIK_CMAKE_DIR}
|
||||
)
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
macro(mapnik_print_version)
|
||||
string(TOUPPER ${ARGV0} TLNUP)
|
||||
set(TLN ${ARGV0})
|
||||
if(${TLN}_VERSION_STRING)
|
||||
message(STATUS "Using ${ARGV0} version: ${${TLN}_VERSION_STRING}")
|
||||
elseif(${TLN}_VERSION)
|
||||
message(STATUS "Using ${ARGV0} version: ${${TLN}_VERSION}")
|
||||
elseif(${TLNUP}_VERSION_STRING)
|
||||
message(STATUS "Using ${ARGV0} version: ${${TLNUP}_VERSION_STRING}")
|
||||
elseif(${TLNUP}_VERSION)
|
||||
message(STATUS "Using ${ARGV0} version: ${${TLNUP}_VERSION}")
|
||||
string(TOUPPER ${ARGV0} m_package_name_upc)
|
||||
set(m_package_name ${ARGV0})
|
||||
if(${m_package_name}_VERSION_STRING)
|
||||
message(STATUS "Using ${m_package_name} version: ${${m_package_name}_VERSION_STRING}")
|
||||
elseif(${m_package_name}_VERSION)
|
||||
message(STATUS "Using ${m_package_name} version: ${${m_package_name}_VERSION}")
|
||||
elseif(${m_package_name_upc}_VERSION_STRING)
|
||||
message(STATUS "Using ${m_package_name} version: ${${m_package_name_upc}_VERSION_STRING}")
|
||||
elseif(${m_package_name_upc}_VERSION)
|
||||
message(STATUS "Using ${m_package_name} version: ${${m_package_name_upc}_VERSION}")
|
||||
else()
|
||||
message(STATUS "Using ${ARGV0}")
|
||||
message(STATUS "Using ${m_package_name}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
|
Loading…
Reference in a new issue