File: MapnikExport.cmake

package info (click to toggle)
mapnik 4.2.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,592 kB
  • sloc: cpp: 163,859; python: 1,332; sh: 690; xml: 161; makefile: 123; perl: 28; lisp: 13
file content (68 lines) | stat: -rw-r--r-- 2,805 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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"
        VERSION ${MAPNIK_VERSION}
        COMPATIBILITY ExactVersion
    )
    get_property(MAPNIK_UTILITIES GLOBAL PROPERTY MAPNIK_UTILITIES)

    # generate all find_dependency and pkg_config calls
    set(mapnik_find_deps)
    foreach(dep IN LISTS mapnik_deps)
        set(ver_comment "# ${dep} used with version ${mapnik_${dep}_version}")
        set(mapnik_find_deps "${mapnik_find_deps}\n${ver_comment}\n")
        if(mapnik_${dep}_find_args)
            list(REMOVE_DUPLICATES mapnik_${dep}_find_args)
            list(JOIN mapnik_${dep}_find_args " " m_args_joined)
            set(mapnik_find_deps "${mapnik_find_deps}find_dependency(${dep} ${m_args_joined})")
        else()
            list(JOIN mapnik_${dep}_pkg_args " " m_args_joined)
            set(mapnik_find_deps "${mapnik_find_deps}pkg_check_modules(${dep} ${m_args_joined})")
        endif()
    endforeach()

    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_find_deps 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()


mapnik_export_cmake_config()

install(EXPORT MapnikTargets
    DESTINATION ${MAPNIK_CMAKE_DIR}
    FILE mapnikTargets.cmake
    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(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}/${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}/${m_mapnik_plugin_file_name}.cmake"
  DESTINATION ${MAPNIK_CMAKE_DIR}
)