Skip to content
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add pycairo
  • Loading branch information
mathisloge committed Jul 20, 2021
commit 6fbef52e6f3e02a8881a9d4b25cd3bc9e3a5e2f8
27 changes: 26 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,31 @@ if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
endif()
project(python-mapnik)

find_package(Python COMPONENTS Development REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(Python COMPONENTS Interpreter Development REQUIRED)
find_package(Boost COMPONENTS log python${Python_VERSION_MAJOR}${Python_VERSION_MINOR} REQUIRED)
find_package(mapnik CONFIG REQUIRED)
find_path(MAPBOX_GEOMETRY_INCLUDE_DIRS "mapbox/geometry.hpp" REQUIRED)

set(PYTHON_MAPNIK_COMPILE_DEFS "")
set(PYTHON_MAPNIK_OPTIONAL_LIBS "")
set(PYTHON_MAPNIK_OPTIONAL_INC "")

pkg_check_modules(PY_CAIRO IMPORTED_TARGET pycairo)
if(PY_CAIRO_FOUND)
list(APPEND PYTHON_MAPNIK_COMPILE_DEFS HAVE_PYCAIRO)
list(APPEND PYTHON_MAPNIK_OPTIONAL_LIBS PkgConfig::PY_CAIRO)
message(STATUS "Using pkg-config pycairo")
else()
execute_process(COMMAND ${Python_EXECUTABLE} -c "import os; import cairo; print(os.path.dirname(cairo.__file__))" OUTPUT_VARIABLE PYTHON_PY_CAIRO OUTPUT_STRIP_TRAILING_WHITESPACE)
if(PYTHON_PY_CAIRO)
message(STATUS "Using python pycairo from ${PYTHON_PY_CAIRO}")
file(TO_CMAKE_PATH "${PYTHON_PY_CAIRO}" PYTHON_PY_CAIRO)
list(APPEND PYTHON_MAPNIK_COMPILE_DEFS HAVE_PYCAIRO)
list(APPEND PYTHON_MAPNIK_OPTIONAL_INC "${PYTHON_PY_CAIRO}/include")
endif()
endif()

Python_add_library(python-mapnik MODULE
src/boost_std_shared_shim.hpp
src/mapnik_color.cpp
Expand Down Expand Up @@ -63,9 +83,11 @@ target_link_libraries(python-mapnik PRIVATE
mapnik::json
mapnik::wkt
mapnik::mapnik
${PYTHON_MAPNIK_OPTIONAL_LIBS}
)
target_include_directories(python-mapnik PRIVATE
${MAPBOX_GEOMETRY_INCLUDE_DIRS}
${PYTHON_MAPNIK_OPTIONAL_INC}
)

set_target_properties(python-mapnik PROPERTIES
Expand All @@ -75,6 +97,9 @@ set_target_properties(python-mapnik PROPERTIES



target_compile_definitions(python-mapnik PRIVATE ${PYTHON_MAPNIK_COMPILE_DEFS})


# copy plugins, fonts
file(TO_CMAKE_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" MODULE_PATH)
set(MODULE_LIB_DIR "${MODULE_PATH}/lib/mapnik")
Expand Down