3 KiB
Usage with CMake
Build
First clone mapnik from github and initialize submodules
git clone https://github.com/mapnik/mapnik.git
cd mapnik
git submodule update --init
Make sure that all dependencies are installed.
All available cmake options are listed at the top of CMakeLists.txt.
Pass your options while configuring e.g.: cmake -DBUILD_DEMO_VIEWER=OFF ..
to disable the build of the demo viewer application.
To quickstart open a console in the root mapnik dir and execute the following commands: (Pass all options and dependency dirs after -DBUILD_TEST=OFF
)
> cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=OFF
> cmake --build build --target install
Usage
To use Mapnik in your project add the following lines to your CMakeLists.tzt.
find_package(mapnik CONFIG REQUIRED)
[...]
target_link_libraries(mytarget ... mapnik::core mapnik::mapnik)
All mapnik executables and targets are exported within mapnikTargets.cmake
.
The plugin dir is available in the variable MAPNIK_PLUGINS_DIR
.
The font path is is available in the variable MAPNIK_FONTS_DIR
.
Recommendations
If you target a specific platform, it is recommended to create a toolchain file and set all the options and library path that you would normally set via cmd line options. If you are using a recent cmake version (>=3.20), it is recommended to use a CMakePreset instead. https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
CMakePreset example
If you are using CMakePresets and need to add vcpkg integration, just create a CMakeUserPresets.json
file beside `CMakePresets.json.
This could look like this:
{
"version": 2,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "vcpkg-x64-win-debug",
"inherits": "windows-default-debug",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake",
"ADDITIONAL_LIBARIES_PATHS":"<path-to-vcpkg>/installed/x64-windows/debug/bin"
}
},
{
"name": "vcpkg-x64-win-release",
"inherits": "windows-default-release",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake",
"ADDITIONAL_LIBARIES_PATHS":"<path-to-vcpkg>/installed/x64-windows/bin"
}
}
]
}
If your libraries are not in the global search paths, you could add a own CMakeUserPresets.json
with
{
"version": 2,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "linux-clang-debug-own",
"inherits": "linux-clang-debug",
"cacheVariables": {
"WebP_DIR": "/home/myuser/webp/cmake",
"USE_CAIRO": "OFF",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install"
}
}
]
}