From 65d7787ff9b1e780ec63cf27f5c9ea3b2eaf5fcd Mon Sep 17 00:00:00 2001 From: am2222 Date: Fri, 29 May 2020 15:11:36 -0400 Subject: [PATCH 01/16] MAPNIK port added --- ports/mapnik/CONTROL | 58 ++++++++++ ports/mapnik/portfile.cmake | 210 ++++++++++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+) create mode 100644 ports/mapnik/CONTROL create mode 100644 ports/mapnik/portfile.cmake diff --git a/ports/mapnik/CONTROL b/ports/mapnik/CONTROL new file mode 100644 index 00000000000000..f3ae0909cf4fc7 --- /dev/null +++ b/ports/mapnik/CONTROL @@ -0,0 +1,58 @@ +Source: mapnik +Version: 3.0.22 +Homepage: https://github.com/am2222/mapnik-windows/ +Description: Mapnik is an open source toolkit for developing mapping applications. Compiling on windows. (unofficial port) +Build-Depends: icu, boost-locale[icu], boost-regex[icu], boost, freetype, tiff, libwebp, libxml2, harfbuzz, libpng, zlib + +Feature: WITH_CAIRO +Description: Cairo renderer +Build-Depends: cairo + +Feature: WITH_PROJ4 +Description: PROJ4 Functionalities +Build-Depends: proj4 + +Feature: WITH_INPUT_CSV +Description: CSV input plugin + +Feature: WITH_INPUT_GDAL +Description: GDAL input plugin +Build-Depends: gdal + +Feature: WITH_INPUT_GEOBUF +Description: GEOBUF input plugin +Build-Depends: protozero + +Feature: WITH_INPUT_GEOJSON +Description: GEOJSON input plugin + +Feature: WITH_INPUT_OGR +Description: OGR input plugin +Build-Depends: gdal + +Feature: WITH_INPUT_PGRASTER +Description: PGRASTER input plugin +Build-Depends: libodb-pgsql + +Feature: WITH_INPUT_POSTGIS +Description: POSTGIS input plugin +Build-Depends: libodb-pgsql + +Feature: WITH_INPUT_RASTER +Description: RASTER input plugin + +Feature: WITH_INPUT_SHAPE +Description: SHAPE input plugin + +Feature: WITH_INPUT_SQLITE +Description: SQLITE input plugin +Build-Depends: sqlite3 + +Feature: WITH_INPUT_TOPOJSON +Description: TOPOJSON input plugin + +Feature: WITH_DEMO +Description: Make Demo Application + +Feature: WITH_UTILS +Description: Make utilities Application including mapnik-rendrer and shapeindex diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake new file mode 100644 index 00000000000000..0039032b9ae8c6 --- /dev/null +++ b/ports/mapnik/portfile.cmake @@ -0,0 +1,210 @@ +set(MAPNIK_VERSION 3.0.22) +include(vcpkg_common_functions) +find_program(GIT git) + +set(GIT_URL "https://github.com/am2222/mapnik-windows.git") +set(GIT_REV "fdba45cd95b66576e47de2e56d30196bfc9de99d") + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT}) + +if(NOT EXISTS "${SOURCE_PATH}/.git") + message(STATUS "Cloning and fetching submodules") + vcpkg_execute_required_process( + COMMAND ${GIT} clone --recurse-submodules ${GIT_URL} ${SOURCE_PATH} + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME clone + ) + + message(STATUS "Checkout revision ${GIT_REV}") + vcpkg_execute_required_process( + COMMAND ${GIT} checkout ${GIT_REV} + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME checkout + ) +endif() +message(STATUS "Adding worktree done") + + +vcpkg_find_acquire_program(PYTHON2) +get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY) +set(ENV{PATH} "$ENV{PATH};${PYTHON2_DIR}") + +set(BOOST_ROOT ${CURRENT_INSTALLED_DIR}) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(MAPNIK_STATIC_LIB OFF) +elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(MAPNIK_STATIC_LIB ON) +endif() + + + +if ("WITH_CAIRO" IN_LIST FEATURES) + set(CMAKE_WITH_CAIRO ON) +else() + set(CMAKE_WITH_CAIRO OFF) +endif() + +if ("WITH_DEMO" IN_LIST FEATURES) + set(CMAKE_DEMO ON) +else() + set(CMAKE_DEMO OFF) +endif() + +if ("WITH_GRID" IN_LIST FEATURES) + set(CMAKE_GRID ON) +else() + set(CMAKE_GRID OFF) +endif() + + +if ("WITH_INPUT_CSV" IN_LIST FEATURES) + set(CMAKE_INPUT_CSV ON) +else() + set(CMAKE_INPUT_CSV OFF) +endif() + +if ("WITH_INPUT_GDAL" IN_LIST FEATURES) + set(CMAKE_INPUT_GDAL ON) +else() + set(CMAKE_INPUT_GDAL OFF) +endif() + + +if ("WITH_INPUT_GEOBUF" IN_LIST FEATURES) + set(CMAKE_GEOBUF ON) +else() + set(CMAKE_GEOBUF OFF) +endif() + + +if ("WITH_INPUT_GEOJSON" IN_LIST FEATURES) + set(CMAKE_GEOJSON ON) +else() + set(CMAKE_GEOJSON OFF) +endif() + +if ("WITH_INPUT_OGR" IN_LIST FEATURES) + set(CMAKE_OGR ON) +else() + set(CMAKE_OGR OFF) +endif() + + +if ("WITH_INPUT_PGRASTER" IN_LIST FEATURES) + set(CMAKE_PGRASTER ON) +else() + set(CMAKE_PGRASTER OFF) +endif() + + +if ("WITH_INPUT_POSTGIS" IN_LIST FEATURES) + set(CMAKE_POSTGIS ON) +else() + set(CMAKE_POSTGIS OFF) +endif() + + +if ("WITH_INPUT_RASTER" IN_LIST FEATURES) + set(CMAKE_RASTER ON) +else() + set(CMAKE_RASTER OFF) +endif() + + + +if ("WITH_INPUT_SHAPE" IN_LIST FEATURES) + set(CMAKE_SHAPE ON) +else() + set(CMAKE_SHAPE OFF) +endif() + + + +if ("WITH_INPUT_SQLITE" IN_LIST FEATURES) + set(CMAKE_SQLITE ON) +else() + set(CMAKE_SQLITE OFF) +endif() + +if ("WITH_INPUT_TOPOJSON" IN_LIST FEATURES) + set(CMAKE_TOPOJSON ON) +else() + set(CMAKE_TOPOJSON OFF) +endif() + +if ("WITH_PROJ4" IN_LIST FEATURES) + set(CMAKE_PROJ4 ON) +else() + set(CMAKE_PROJ4 OFF) +endif() + + +if ("WITH_UTILS" IN_LIST FEATURES) + set(CMAKE_UTILS ON) +else() + set(CMAKE_UTILS OFF) +endif() + +if ("WITH_VIEWER" IN_LIST FEATURES) + set(CMAKE_VIEWER ON) +else() + set(CMAKE_VIEWER OFF) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mapnik + # PREFER_NINJA # Disable this option if project cannot be built with Ninja +# NO_CHARSET_FLAG # automatic templates + OPTIONS + -DWITH_CAIRO={$CMAKE_WITH_CAIRO} + -DWITH_DEMO={$CMAKE_DEMO} + #-DWITH_GRID={$CMAKE_} + -DWITH_INPUT_CSV={$CMAKE_CSV} + -DWITH_INPUT_GDAL={$CMAKE_GDAL} + -DWITH_INPUT_GEOBUF={$CMAKE_GEOBUF} + -DWITH_INPUT_GEOJSON={$CMAKE_GEOJSON=} + -DWITH_INPUT_OGR={$CMAKE_OGR} + -DWITH_INPUT_PGRASTER={$CMAKE_PGRASTER} + -DWITH_INPUT_POSTGIS={$CMAKE_POSTGIS} + -DWITH_INPUT_RASTER={$CMAKE_RASTER} + -DWITH_INPUT_SHAPE={$CMAKE_SHAPE} + -DWITH_INPUT_SQLITE={$CMAKE_SQLITE} + -DWITH_INPUT_TOPOJSON={$CMAKE_TOPOJSON} + -DWITH_PROJ4={$CMAKE_PROJ4} + -DWITH_UTILS={$CMAKE_UTILS} + #-DWITH_VIEWER={$CMAKE_VIEWER} + -DMAPNIK_STATIC_LIB=${MAPNIK_STATIC_LIB} + -DBOOST_PREFIX=${CURRENT_INSTALLED_DIR}/include + -DFREE_TYPE_INCLUDE=${CURRENT_INSTALLED_DIR}/include/freetype2 +) + +vcpkg_install_cmake() + + + +file(COPY ${SOURCE_PATH}/include/mapnik DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +vcpkg_copy_pdbs() +file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe") +if(EXES) + file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) + file(REMOVE ${EXES}) + + vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/mapnik) + file(COPY ${SOURCE_PATH}/demo/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik/demo) + file(COPY ${SOURCE_PATH}/fonts DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) +endif() + +file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") +if(DEBUG_EXES) + file(REMOVE ${EXES}) +endif() + + + + +#file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mapnik RENAME copyright) +file(INSTALL ${SOURCE_PATH}/fonts/unifont_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/mapnik RENAME fonts_copyright) \ No newline at end of file From 0388c5ff0773dfc3f26b49c6e907b6735197f951 Mon Sep 17 00:00:00 2001 From: am2222 Date: Fri, 29 May 2020 15:15:01 -0400 Subject: [PATCH 02/16] MAPNIK port added --- scripts/ci.baseline.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index a52034597b70e6..f770eb6a6a87e8 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -2033,3 +2033,6 @@ ctp:x64-uwp=skip ctp:x64-windows=skip ctp:x64-windows-static=skip ctp:x86-windows=skip + +mapnik:arm-uwp=fail +mapnik:x64-uwp=fail \ No newline at end of file From d7a333dc635cf5271390891c5c2c3490dc74d372 Mon Sep 17 00:00:00 2001 From: am2222 Date: Fri, 5 Jun 2020 02:02:41 -0400 Subject: [PATCH 03/16] addressed issues with the port --- ports/mapnik/CONTROL | 30 +++--- ports/mapnik/portfile.cmake | 182 +++++++----------------------------- scripts/ci.baseline.txt | 10 +- 3 files changed, 54 insertions(+), 168 deletions(-) diff --git a/ports/mapnik/CONTROL b/ports/mapnik/CONTROL index f3ae0909cf4fc7..34bd744d543046 100644 --- a/ports/mapnik/CONTROL +++ b/ports/mapnik/CONTROL @@ -4,55 +4,55 @@ Homepage: https://github.com/am2222/mapnik-windows/ Description: Mapnik is an open source toolkit for developing mapping applications. Compiling on windows. (unofficial port) Build-Depends: icu, boost-locale[icu], boost-regex[icu], boost, freetype, tiff, libwebp, libxml2, harfbuzz, libpng, zlib -Feature: WITH_CAIRO +Feature: CAIRO Description: Cairo renderer Build-Depends: cairo -Feature: WITH_PROJ4 +Feature: PROJ4 Description: PROJ4 Functionalities Build-Depends: proj4 -Feature: WITH_INPUT_CSV +Feature: INPUT_CSV Description: CSV input plugin -Feature: WITH_INPUT_GDAL +Feature: INPUT_GDAL Description: GDAL input plugin Build-Depends: gdal -Feature: WITH_INPUT_GEOBUF +Feature: INPUT_GEOBUF Description: GEOBUF input plugin Build-Depends: protozero -Feature: WITH_INPUT_GEOJSON +Feature: INPUT_GEOJSON Description: GEOJSON input plugin -Feature: WITH_INPUT_OGR +Feature: INPUT_OGR Description: OGR input plugin Build-Depends: gdal -Feature: WITH_INPUT_PGRASTER +Feature: INPUT_PGRASTER Description: PGRASTER input plugin Build-Depends: libodb-pgsql -Feature: WITH_INPUT_POSTGIS +Feature: INPUT_POSTGIS Description: POSTGIS input plugin Build-Depends: libodb-pgsql -Feature: WITH_INPUT_RASTER +Feature: INPUT_RASTER Description: RASTER input plugin -Feature: WITH_INPUT_SHAPE +Feature: INPUT_SHAPE Description: SHAPE input plugin -Feature: WITH_INPUT_SQLITE +Feature: INPUT_SQLITE Description: SQLITE input plugin Build-Depends: sqlite3 -Feature: WITH_INPUT_TOPOJSON +Feature: INPUT_TOPOJSON Description: TOPOJSON input plugin -Feature: WITH_DEMO +Feature: DEMO Description: Make Demo Application -Feature: WITH_UTILS +Feature: UTILS Description: Make utilities Application including mapnik-rendrer and shapeindex diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index 0039032b9ae8c6..bbe49f4412004b 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -1,7 +1,4 @@ -set(MAPNIK_VERSION 3.0.22) -include(vcpkg_common_functions) find_program(GIT git) - set(GIT_URL "https://github.com/am2222/mapnik-windows.git") set(GIT_REV "fdba45cd95b66576e47de2e56d30196bfc9de99d") @@ -27,7 +24,7 @@ message(STATUS "Adding worktree done") vcpkg_find_acquire_program(PYTHON2) get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY) -set(ENV{PATH} "$ENV{PATH};${PYTHON2_DIR}") +vcpkg_add_to_path(${PYTHON2_DIR}) set(BOOST_ROOT ${CURRENT_INSTALLED_DIR}) @@ -38,142 +35,33 @@ elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static) endif() +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + # Keyword FEATURES is optional if INVERTED_FEATURES are not used + CAIRO WITH_CAIRO + DEMO WITH_DEMO + INPUT_CSV WITH_INPUT_CSV + INPUT_GDAL WITH_INPUT_GDAL + INPUT_GEOBUF WITH_INPUT_GEOBUF + INPUT_GEOJSON WITH_INPUT_GEOJSON + INPUT_OGR WITH_INPUT_OGR + INPUT_PGRASTER WITH_INPUT_PGRASTER + INPUT_POSTGIS WITH_INPUT_POSTGIS + INPUT_RASTER WITH_INPUT_RASTER + INPUT_SHAPE WITH_INPUT_SHAPE + INPUT_SQLITE WITH_INPUT_SQLITE + INPUT_TOPOJSON WITH_INPUT_TOPOJSON + PROJ4 WITH_PROJ4 + UTILS WITH_UTILS -if ("WITH_CAIRO" IN_LIST FEATURES) - set(CMAKE_WITH_CAIRO ON) -else() - set(CMAKE_WITH_CAIRO OFF) -endif() - -if ("WITH_DEMO" IN_LIST FEATURES) - set(CMAKE_DEMO ON) -else() - set(CMAKE_DEMO OFF) -endif() - -if ("WITH_GRID" IN_LIST FEATURES) - set(CMAKE_GRID ON) -else() - set(CMAKE_GRID OFF) -endif() - - -if ("WITH_INPUT_CSV" IN_LIST FEATURES) - set(CMAKE_INPUT_CSV ON) -else() - set(CMAKE_INPUT_CSV OFF) -endif() - -if ("WITH_INPUT_GDAL" IN_LIST FEATURES) - set(CMAKE_INPUT_GDAL ON) -else() - set(CMAKE_INPUT_GDAL OFF) -endif() - - -if ("WITH_INPUT_GEOBUF" IN_LIST FEATURES) - set(CMAKE_GEOBUF ON) -else() - set(CMAKE_GEOBUF OFF) -endif() - - -if ("WITH_INPUT_GEOJSON" IN_LIST FEATURES) - set(CMAKE_GEOJSON ON) -else() - set(CMAKE_GEOJSON OFF) -endif() - -if ("WITH_INPUT_OGR" IN_LIST FEATURES) - set(CMAKE_OGR ON) -else() - set(CMAKE_OGR OFF) -endif() - - -if ("WITH_INPUT_PGRASTER" IN_LIST FEATURES) - set(CMAKE_PGRASTER ON) -else() - set(CMAKE_PGRASTER OFF) -endif() - - -if ("WITH_INPUT_POSTGIS" IN_LIST FEATURES) - set(CMAKE_POSTGIS ON) -else() - set(CMAKE_POSTGIS OFF) -endif() - - -if ("WITH_INPUT_RASTER" IN_LIST FEATURES) - set(CMAKE_RASTER ON) -else() - set(CMAKE_RASTER OFF) -endif() - - - -if ("WITH_INPUT_SHAPE" IN_LIST FEATURES) - set(CMAKE_SHAPE ON) -else() - set(CMAKE_SHAPE OFF) -endif() - - - -if ("WITH_INPUT_SQLITE" IN_LIST FEATURES) - set(CMAKE_SQLITE ON) -else() - set(CMAKE_SQLITE OFF) -endif() - -if ("WITH_INPUT_TOPOJSON" IN_LIST FEATURES) - set(CMAKE_TOPOJSON ON) -else() - set(CMAKE_TOPOJSON OFF) -endif() - -if ("WITH_PROJ4" IN_LIST FEATURES) - set(CMAKE_PROJ4 ON) -else() - set(CMAKE_PROJ4 OFF) -endif() - - -if ("WITH_UTILS" IN_LIST FEATURES) - set(CMAKE_UTILS ON) -else() - set(CMAKE_UTILS OFF) -endif() +) -if ("WITH_VIEWER" IN_LIST FEATURES) - set(CMAKE_VIEWER ON) -else() - set(CMAKE_VIEWER OFF) -endif() vcpkg_configure_cmake( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mapnik + SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT} # PREFER_NINJA # Disable this option if project cannot be built with Ninja # NO_CHARSET_FLAG # automatic templates - OPTIONS - -DWITH_CAIRO={$CMAKE_WITH_CAIRO} - -DWITH_DEMO={$CMAKE_DEMO} - #-DWITH_GRID={$CMAKE_} - -DWITH_INPUT_CSV={$CMAKE_CSV} - -DWITH_INPUT_GDAL={$CMAKE_GDAL} - -DWITH_INPUT_GEOBUF={$CMAKE_GEOBUF} - -DWITH_INPUT_GEOJSON={$CMAKE_GEOJSON=} - -DWITH_INPUT_OGR={$CMAKE_OGR} - -DWITH_INPUT_PGRASTER={$CMAKE_PGRASTER} - -DWITH_INPUT_POSTGIS={$CMAKE_POSTGIS} - -DWITH_INPUT_RASTER={$CMAKE_RASTER} - -DWITH_INPUT_SHAPE={$CMAKE_SHAPE} - -DWITH_INPUT_SQLITE={$CMAKE_SQLITE} - -DWITH_INPUT_TOPOJSON={$CMAKE_TOPOJSON} - -DWITH_PROJ4={$CMAKE_PROJ4} - -DWITH_UTILS={$CMAKE_UTILS} - #-DWITH_VIEWER={$CMAKE_VIEWER} + OPTIONS + ${FEATURE_OPTIONS} -DMAPNIK_STATIC_LIB=${MAPNIK_STATIC_LIB} -DBOOST_PREFIX=${CURRENT_INSTALLED_DIR}/include -DFREE_TYPE_INCLUDE=${CURRENT_INSTALLED_DIR}/include/freetype2 @@ -183,28 +71,24 @@ vcpkg_install_cmake() -file(COPY ${SOURCE_PATH}/include/mapnik DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/include/${PORT} DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_copy_pdbs() -file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe") -if(EXES) - file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) - file(REMOVE ${EXES}) - - vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/mapnik) + +if ("UTILS" IN_LIST FEATURES) + vcpkg_copy_tools( + TOOL_NAMES mapnik-demo mapnik-render shapeindex + AUTO_CLEAN + ) file(COPY ${SOURCE_PATH}/demo/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik/demo) file(COPY ${SOURCE_PATH}/fonts DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) file(COPY ${CURRENT_PACKAGES_DIR}/bin/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) -endif() -file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") -if(DEBUG_EXES) - file(REMOVE ${EXES}) -endif() + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/mapnik-demo ${CURRENT_PACKAGES_DIR}/debug/bin/mapnik-render ${CURRENT_PACKAGES_DIR}/debug/bin/shapeindex) +endif() -#file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mapnik RENAME copyright) -file(INSTALL ${SOURCE_PATH}/fonts/unifont_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/mapnik RENAME fonts_copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(INSTALL ${SOURCE_PATH}/fonts/unifont_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME fonts_copyright) \ No newline at end of file diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index f770eb6a6a87e8..f9231a8a9c6519 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1024,6 +1024,11 @@ luasocket:x64-linux=fail luasocket:x64-osx=fail lzfse:arm-uwp=fail magnum:arm64-windows=skip +mapnik:arm-uwp=fail +mapnik:x64-uwp=fail +ctp:x64-windows=skip +ctp:x64-windows-static=skip +ctp:x86-windows=skip marl:arm-uwp=fail marl:x64-uwp=fail mathgl:x64-osx=fail @@ -2032,7 +2037,4 @@ ctp:x64-osx=skip ctp:x64-uwp=skip ctp:x64-windows=skip ctp:x64-windows-static=skip -ctp:x86-windows=skip - -mapnik:arm-uwp=fail -mapnik:x64-uwp=fail \ No newline at end of file +ctp:x86-windows=skip \ No newline at end of file From 02d921a7021475de145fa85b9358edefa6a4cdb3 Mon Sep 17 00:00:00 2001 From: am2222 Date: Fri, 5 Jun 2020 02:04:39 -0400 Subject: [PATCH 04/16] addressed issues with the port --- scripts/ci.baseline.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index f9231a8a9c6519..77c9222cd9d8a8 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1026,9 +1026,6 @@ lzfse:arm-uwp=fail magnum:arm64-windows=skip mapnik:arm-uwp=fail mapnik:x64-uwp=fail -ctp:x64-windows=skip -ctp:x64-windows-static=skip -ctp:x86-windows=skip marl:arm-uwp=fail marl:x64-uwp=fail mathgl:x64-osx=fail From 051e1e915d3a1037ffc9ad6ae22b6aa7123ac48a Mon Sep 17 00:00:00 2001 From: am2222 Date: Tue, 9 Jun 2020 18:40:18 -0400 Subject: [PATCH 05/16] added mapnik cmake patch --- ports/mapnik/0001-CMakeFiles.patch | 1197 ++++++++++++++++++ ports/mapnik/0001-CMakeFiles.patch.txt | 1197 ++++++++++++++++++ ports/mapnik/0002-sqlitepixelwidth.patch | 120 ++ ports/mapnik/0002-sqlitepixelwidth.patch.txt | 120 ++ ports/mapnik/CONTROL | 10 +- ports/mapnik/portfile.cmake | 52 +- 6 files changed, 2670 insertions(+), 26 deletions(-) create mode 100644 ports/mapnik/0001-CMakeFiles.patch create mode 100644 ports/mapnik/0001-CMakeFiles.patch.txt create mode 100644 ports/mapnik/0002-sqlitepixelwidth.patch create mode 100644 ports/mapnik/0002-sqlitepixelwidth.patch.txt diff --git a/ports/mapnik/0001-CMakeFiles.patch b/ports/mapnik/0001-CMakeFiles.patch new file mode 100644 index 00000000000000..4a68e6917070f7 --- /dev/null +++ b/ports/mapnik/0001-CMakeFiles.patch @@ -0,0 +1,1197 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..f07a5ce +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,306 @@ ++cmake_minimum_required(VERSION 3.13.4) ++project(mapnik) ++set(CMAKE_CXX_STANDARD 14) ++include(CMakeDependentOption) ++ ++ ++option(MAPNIK_STATIC_LIB "Build a static library" OFF) ++ ++option(WITH_DEMO "Build demo" OFF) ++option(WITH_VIEWER "Build viewer" OFF) ++ ++ ++option(WITH_INPUTS "Build input plugins" ON) ++ ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_CSV "Build the csv input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_GDAL "Build the gdal input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_GEOBUF "Build the geobuf input plugin" OFF "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_GEOJSON "Build the geojson input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_OGR "Build the ogr input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_PGRASTER "Build the pgraster input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_POSTGIS "Build the postgis input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_RASTER "Build the raster input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_SHAPE "Build the shape input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_SQLITE "Build the sqlite input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_TOPOJSON "Build the topojson input plugin" ON "WITH_INPUTS" ON) ++ ++MESSAGE(WITH_INPUT_POSTGIS ${WITH_INPUT_POSTGIS}}) ++ ++option(WITH_UTILS "Build the utilities" ON ) ++ ++option(WITH_GRID "Use the grid renderer" OFF) ++option(WITH_CAIRO "Use cairo" ON) ++option(WITH_PROJ4 "Use proj4" ON) ++ ++if(MSVC) ++ # Force to always compile with W4 ++ if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") ++ string(REGEX REPLACE "/W[0-4]" "/W1" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ else() ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1") ++ endif() ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd\"4068\" /wd\"4661\" /wd\"4503\" ") ++ add_compile_options(/MP) ++ add_compile_options(-bigobj) #added by @am2222 ++ add_compile_definitions(ACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1) #added by @am2222 for proj4 compile ++ add_definitions(-DMAPNIK_THREADSAFE) ++ ++endif() ++ ++find_package(Boost REQUIRED ++ COMPONENTS filesystem system regex program_options) ++ ++find_package(FreeType REQUIRED) ++ ++find_library(HARFBUZZ_LIB harfbuzz.lib) ++find_package(ICU REQUIRED COMPONENTS uc) ++ ++find_package(PNG REQUIRED) ++find_package(jpeg REQUIRED) ++find_package(tiff REQUIRED) ++find_package(WebP REQUIRED) ++find_package(LibXml2 REQUIRED) ++find_package(ZLIB REQUIRED) ++ ++set (MAPNIK_DEFS ++ -DHAVE_PNG ++ -DHAVE_JPEG ++ -DHAVE_TIFF ++ -DHAVE_WEBP) ++ ++set(thirdparty_include_paths ${thirdparty_include_paths} ++ ${JPEG_INCLUDE_DIR} ${WEBP_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR}) ++ ++set(thirdparty_libraries ${thirdparty_libraries} ++ ${JPEG_LIBRARIES} ${WEBP_LIBRARIES} ${LIBXML2_LIBRARIES} ${HARFBUZZ_LIB}) ++ ++# AGG ++ ++include(files.cmake) ++ ++if (WITH_CAIRO) ++ find_library(CAIRO_LIB_DEBUG cairod) ++ find_library(CAIRO_LIB_RELEASE cairo) ++ find_library(CAIRO_GOBJECT_LIB_DEBUG cairo-gobjectd) ++ find_library(CAIRO_GOBJECT_LIB_RELEASE cairo-gobject) ++ find_path(CAIRO_INCLUDE_DIR cairo/cairo.h) ++ ++ set(thirdparty_include_paths ${thirdparty_include_paths} ${CAIRO_INCLUDE_DIR}) ++ set(thirdparty_libraries ${thirdparty_libraries} $<$:${CAIRO_LIB_DEBUG}> $<$:${CAIRO_LIB_RELEASE}>) ++ ++ set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/cairo/process_markers_symbolizer.cpp ++ src/cairo/process_group_symbolizer.cpp ++ ++ src/cairo/cairo_context.cpp ++ src/cairo/cairo_render_vector.cpp ++ src/cairo/cairo_renderer.cpp ++ src/cairo/process_building_symbolizer.cpp ++ src/cairo/process_debug_symbolizer.cpp ++ src/cairo/process_line_pattern_symbolizer.cpp ++ src/cairo/process_line_symbolizer.cpp ++ src/cairo/process_point_symbolizer.cpp ++ src/cairo/process_polygon_pattern_symbolizer.cpp ++ src/cairo/process_polygon_symbolizer.cpp ++ src/cairo/process_raster_symbolizer.cpp ++ src/cairo/process_text_symbolizer.cpp) ++ ++ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DHAVE_CAIRO) ++endif() ++message(STATUS "Cairo renderer " ${WITH_CAIRO}) ++ ++if (WITH_PROJ4) ++ find_package(PROJ4 REQUIRED) ++ set(thirdparty_include_paths ${thirdparty_include_paths} ${PROJ4_INCLUDE_DIRS}) ++ set(thirdparty_libraries ${thirdparty_libraries} ${PROJ4_LIBRARIES}) ++ ++ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DMAPNIK_USE_PROJ4) ++endif() ++ ++if (WITH_GRID) ++ set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/grid/grid.cpp ++ src/grid/grid_renderer.cpp ++ src/grid/process_building_symbolizer.cpp ++ src/grid/process_line_pattern_symbolizer.cpp ++ src/grid/process_line_symbolizer.cpp ++ src/grid/process_point_symbolizer.cpp ++ src/grid/process_polygon_pattern_symbolizer.cpp ++ src/grid/process_polygon_symbolizer.cpp ++ src/grid/process_raster_symbolizer.cpp ++ src/grid/process_shield_symbolizer.cpp ++ src/grid/process_text_symbolizer.cpp) ++ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DGRID_RENDERER) ++ENDIF() ++message(STATUS "Grid renderer: " ${WITH_GRID}) ++ ++set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/svg/output/svg_output_grammars.cpp ++ src/svg/output/svg_renderer.cpp ++ src/svg/output/svg_generator.cpp ++ src/svg/output/svg_output_attributes.cpp ++ src/svg/output/process_symbolizers.cpp ++ src/svg/output/process_line_symbolizer.cpp ++ src/svg/output/process_polygon_symbolizer.cpp) ++set(MAPNIK_DEFS ${MAPNIK_DEFS} -DSVG_RENDERER) ++ ++ ++set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/jpeg_reader.cpp ++ src/libxml2_loader.cpp ++ src/png_reader.cpp ++ src/tiff_reader.cpp ++ src/webp_reader.cpp ++ ) ++ ++#set(MAPNIK_SOURCES ${MAPNIK_SOURCES} src/rapidxml_loader.cpp) ++ ++set(MAPNIK_DEFS ${MAPNIK_DEFS} -DHAVE_LIBXML2 -DBOOST_REGEX_HAS_ICU) ++ ++set(mapnik_include_paths ++ include ++ deps ++ deps/agg/include ++ deps/mapbox/geometry/include ++ deps/mapbox/polylabel/include ++ deps/mapbox/variant/include) ++ ++ ++ ++include_directories(${mapnik_include_paths} ${thirdparty_include_paths}) ++ ++if (MAPNIK_STATIC_LIB) ++ message(STATUS "Building static library") ++ add_library(mapnik STATIC ${MAPNIK_SOURCES} ${MAPNIK_AGG_SOURCES} ${AGG_SOURCES}) ++ target_compile_definitions(mapnik PUBLIC -DMAPNIK_STATICLIB) ++ set(MAPNIK_LIB_DEFINITION -DMAPNIK_STATICLIB) ++else () ++ message(STATUS "Building shared library") ++ add_library(mapnik SHARED ${MAPNIK_SOURCES} ${MAPNIK_AGG_SOURCES} ${AGG_SOURCES}) ++ target_compile_definitions(mapnik PRIVATE -DMAPNIK_EXPORTS) ++ set(MAPNIK_LIB_DEFINITION ) ++endif () ++ ++target_compile_definitions(mapnik PUBLIC ${MAPNIK_DEFS}) ++ ++target_include_directories(mapnik INTERFACE ${mapnik_include_paths} ${thirdparty_include_paths} ) ++target_link_libraries(mapnik PUBLIC ++ ${thirdparty_libraries} ++ Boost::boost Boost::filesystem Boost::system Boost::regex Boost::program_options Boost::system ++ Freetype::Freetype ++ ICU::uc ++ PNG::PNG ++ TIFF::TIFF ++ ZLIB::ZLIB) ++ ++install(TARGETS mapnik ++ LIBRARY DESTINATION lib) ++ ++install(DIRECTORY include/ DESTINATION include/ CONFIGURATIONS Release) ++ ++add_subdirectory(src/json) ++add_subdirectory(src/wkt) ++ ++# ideally we should also generate mapnik-config ++ ++if (WITH_INPUT_CSV) ++ add_subdirectory(plugins/input/csv) ++endif() ++ ++if (WITH_INPUT_GDAL) ++ find_package(GDAL REQUIRED) ++ add_subdirectory(plugins/input/gdal) ++endif() ++ ++if (WITH_INPUT_GEOBUF) ++ # TODO insert protozero here ++ add_subdirectory(plugins/input/geobuf) ++endif() ++ ++if (WITH_INPUT_GEOJSON) ++ add_subdirectory(plugins/input/geojson) ++endif() ++ ++if (WITH_INPUT_OGR) ++ add_subdirectory(plugins/input/ogr) ++endif() ++ ++if (WITH_INPUT_PGRASTER) ++ find_package(PostgreSQL REQUIRED) ++ add_subdirectory(plugins/input/pgraster) ++endif() ++ ++if (WITH_INPUT_POSTGIS) ++ find_package(PostgreSQL REQUIRED) ++ add_subdirectory(plugins/input/postgis) ++endif() ++ ++if (WITH_INPUT_RASTER) ++ add_subdirectory(plugins/input/raster) ++endif() ++ ++if (WITH_INPUT_SHAPE) ++ add_subdirectory(plugins/input/shape) ++endif() ++ ++if (WITH_INPUT_SQLITE) ++ find_package(sqlite3 REQUIRED) ++ add_subdirectory(plugins/input/sqlite) ++endif() ++ ++if (WITH_INPUT_TOPOJSON) ++ add_subdirectory(plugins/input/topojson) ++endif() ++ ++if (WITH_INPUTS) ++ message(STATUS "Input plugins:") ++ if(WITH_INPUT_CSV ) ++ message(STATUS " - csv ") ++ endif() ++ if(WITH_INPUT_GDAL ) ++ message(STATUS " - gdal ") ++ endif() ++ if(WITH_INPUT_GEOBUF ) ++ message(STATUS " - geobuf ") ++ endif() ++ if(WITH_INPUT_GEOJSON ) ++ message(STATUS " - geojson ") ++ endif() ++ if(WITH_INPUT_OGR ) ++ message(STATUS " - ogr ") ++ endif() ++ if(WITH_INPUT_PGRASTER ) ++ message(STATUS " - pgraster") ++ endif() ++ if(WITH_INPUT_POSTGIS ) ++ message(STATUS " - postgis ") ++ endif() ++ if(WITH_INPUT_RASTER ) ++ message(STATUS " - raster ") ++ endif() ++ if(WITH_INPUT_SHAPE ) ++ message(STATUS " - shape ") ++ endif() ++ if(WITH_INPUT_SQLITE ) ++ message(STATUS " - sqlite ") ++ endif() ++ if(WITH_INPUT_TOPOJSON ) ++ message(STATUS " - topojson") ++ endif() ++else() ++ message(STATUS "Input plugins OFF") ++endif() ++ ++if(WITH_DEMO) ++ add_subdirectory(demo/c++) ++endif() ++ ++if(WITH_VIEWER) ++ find_package(Qt5 COMPONENTS Widgets REQUIRED) ++ add_subdirectory(demo/viewer) ++endif() ++ ++if(WITH_UTILS) ++ add_subdirectory(utils/mapnik-render) ++ add_subdirectory(utils/shapeindex) ++endif() +diff --git a/demo/c++/CMakeLists.txt b/demo/c++/CMakeLists.txt +new file mode 100644 +index 0000000..a0a48b8 +--- /dev/null ++++ b/demo/c++/CMakeLists.txt +@@ -0,0 +1,4 @@ ++add_executable(mapnik-demo rundemo.cpp) ++add_dependencies(mapnik-demo mapnik) ++target_link_libraries(mapnik-demo PRIVATE mapnik) ++install(TARGETS mapnik-demo DESTINATION bin) +diff --git a/demo/viewer/CMakeLists.txt b/demo/viewer/CMakeLists.txt +new file mode 100644 +index 0000000..86034a0 +--- /dev/null ++++ b/demo/viewer/CMakeLists.txt +@@ -0,0 +1,27 @@ ++add_executable(mapnik-viewer ++ about_dialog.cpp ++ info_dialog.cpp ++ layerdelegate.cpp ++ layerlistmodel.cpp ++ layerwidget.cpp ++ layer_info_dialog.cpp ++ main.cpp ++ mainwindow.cpp ++ mapwidget.cpp ++ styles_model.cpp ++ ++ forms/about.ui ++ forms/info.ui ++ forms/layer_info.ui ++ ++ mapnik_viewer.qrc) ++ ++set_target_properties(mapnik-viewer PROPERTIES ++ AUTOUIC_SEARCH_PATHS forms ++ AUTORCC ON ++ AUTOUIC ON ++ AUTOMOC ON) ++ ++add_dependencies(mapnik-viewer mapnik) ++target_link_libraries(mapnik-viewer PRIVATE mapnik Qt5::Widgets) ++install(TARGETS mapnik-viewer DESTINATION bin) +diff --git a/files.cmake b/files.cmake +new file mode 100644 +index 0000000..b9d767f +--- /dev/null ++++ b/files.cmake +@@ -0,0 +1,557 @@ ++set (MAPNIK_SOURCES ++ src/cairo_io.cpp ++ src/color.cpp ++ src/color_factory.cpp ++ src/config_error.cpp ++ src/conversions.cpp ++ src/css_color_grammar.cpp ++ src/dasharray_parser.cpp ++ src/datasource_cache.cpp ++ src/datasource_cache_static.cpp ++ src/debug.cpp ++ src/box2d.cpp ++ src/expression.cpp ++ src/expression_grammar.cpp ++ src/expression_node.cpp ++ src/expression_string.cpp ++ src/feature_kv_iterator.cpp ++ src/feature_style_processor.cpp ++ src/feature_type_style.cpp ++ src/font_engine_freetype.cpp ++ src/font_set.cpp ++ src/fs.cpp ++ src/function_call.cpp ++ src/geometry/interior.cpp ++ src/geometry_envelope.cpp ++ src/geometry_reprojection.cpp ++ src/gradient.cpp ++ src/group/group_layout_manager.cpp ++ src/group/group_rule.cpp ++ src/group/group_symbolizer_helper.cpp ++ src/image.cpp ++ src/image_any.cpp ++ src/image_compositing.cpp ++ src/image_copy.cpp ++ src/image_filter_grammar.cpp ++ src/image_filter_types.cpp ++ src/image_options.cpp ++ src/image_reader.cpp ++ src/image_scaling.cpp ++ src/image_util.cpp ++ src/image_util_jpeg.cpp ++ src/image_util_png.cpp ++ src/image_util_tiff.cpp ++ src/image_util_webp.cpp ++ src/image_view.cpp ++ src/image_view_any.cpp ++ src/layer.cpp ++ src/load_map.cpp ++ src/map.cpp ++ src/math.cpp ++ src/mapped_memory_cache.cpp ++ src/marker_cache.cpp ++ src/marker_helpers.cpp ++ src/memory_datasource.cpp ++ src/palette.cpp ++ src/params.cpp ++ src/parse_path.cpp ++ src/parse_transform.cpp ++ src/plugin.cpp ++ src/proj_transform.cpp ++ src/projection.cpp ++ src/raster_colorizer.cpp ++ src/renderer_common.cpp ++ src/renderer_common/pattern_alignment.cpp ++ src/renderer_common/render_group_symbolizer.cpp ++ src/renderer_common/render_markers_symbolizer.cpp ++ src/renderer_common/render_pattern.cpp ++ src/renderer_common/render_thunk_extractor.cpp ++ src/request.cpp ++ src/rule.cpp ++ src/save_map.cpp ++ src/scale_denominator.cpp ++ src/simplify.cpp ++ src/svg/svg_parser.cpp ++ src/svg/svg_path_parser.cpp ++ src/svg/svg_points_parser.cpp ++ src/svg/svg_transform_parser.cpp ++ src/symbolizer.cpp ++ src/symbolizer_enumerations.cpp ++ src/symbolizer_keys.cpp ++ src/text/face.cpp ++ src/text/font_feature_settings.cpp ++ src/text/font_library.cpp ++ src/text/formatting/base.cpp ++ src/text/formatting/format.cpp ++ src/text/formatting/layout.cpp ++ src/text/formatting/list.cpp ++ src/text/formatting/registry.cpp ++ src/text/formatting/text.cpp ++ src/text/glyph_positions.cpp ++ src/text/itemizer.cpp ++ src/text/placement_finder.cpp ++ src/text/placements/base.cpp ++ src/text/placements/dummy.cpp ++ src/text/placements/list.cpp ++ src/text/placements/registry.cpp ++ src/text/placements/simple.cpp ++ src/text/properties_util.cpp ++ src/text/renderer.cpp ++ src/text/scrptrun.cpp ++ src/text/symbolizer_helpers.cpp ++ src/text/text_layout.cpp ++ src/text/text_line.cpp ++ src/text/text_properties.cpp ++ src/transform_expression.cpp ++ src/transform_expression_grammar.cpp ++ src/twkb.cpp ++ src/unicode.cpp ++ src/util/utf_conv_win.cpp ++ src/value.cpp ++ src/vertex_adapters.cpp ++ src/vertex_cache.cpp ++ src/warp.cpp ++ src/well_known_srs.cpp ++ src/wkb.cpp ++ src/xml_tree.cpp ++ ) ++ ++ ++set(MAPNIK_AGG_SOURCES ++ src/agg/agg_renderer.cpp ++ src/agg/process_building_symbolizer.cpp ++ src/agg/process_debug_symbolizer.cpp ++ src/agg/process_dot_symbolizer.cpp ++ src/agg/process_group_symbolizer.cpp ++ src/agg/process_line_pattern_symbolizer.cpp ++ src/agg/process_line_symbolizer.cpp ++ src/agg/process_markers_symbolizer.cpp ++ src/agg/process_point_symbolizer.cpp ++ src/agg/process_polygon_pattern_symbolizer.cpp ++ src/agg/process_polygon_symbolizer.cpp ++ src/agg/process_raster_symbolizer.cpp ++ src/agg/process_shield_symbolizer.cpp ++ src/agg/process_text_symbolizer.cpp) ++ ++ ++set(AGG_SOURCES ++ deps/agg/src/agg_arc.cpp ++ deps/agg/src/agg_arrowhead.cpp ++ deps/agg/src/agg_bezier_arc.cpp ++ deps/agg/src/agg_bspline.cpp ++ deps/agg/src/agg_curves.cpp ++ deps/agg/src/agg_embedded_raster_fonts.cpp ++ deps/agg/src/agg_gsv_text.cpp ++ deps/agg/src/agg_image_filters.cpp ++ deps/agg/src/agg_line_aa_basics.cpp ++ deps/agg/src/agg_line_profile_aa.cpp ++ deps/agg/src/agg_pixfmt_rgba.cpp ++ deps/agg/src/agg_rounded_rect.cpp ++ deps/agg/src/agg_sqrt_tables.cpp ++ deps/agg/src/agg_trans_affine.cpp ++ deps/agg/src/agg_trans_double_path.cpp ++ deps/agg/src/agg_trans_single_path.cpp ++ deps/agg/src/agg_trans_warp_magnifier.cpp ++ deps/agg/src/agg_vcgen_bspline.cpp ++ deps/agg/src/agg_vcgen_contour.cpp ++ deps/agg/src/agg_vcgen_dash.cpp ++ deps/agg/src/agg_vcgen_markers_term.cpp ++ deps/agg/src/agg_vcgen_stroke.cpp ++ deps/agg/src/agg_vcgen_smooth_poly1.cpp ++ deps/agg/src/agg_vpgen_clip_polygon.cpp ++ deps/agg/src/agg_vpgen_clip_polyline.cpp ++ deps/agg/src/agg_vpgen_segmentator.cpp ) ++ ++set(MAPNIK_INC ++ mapnik/adaptive_smooth.hpp ++ mapnik/agg_helpers.hpp ++ mapnik/agg_pattern_source.hpp ++ mapnik/agg_rasterizer.hpp ++ mapnik/agg_renderer.hpp ++ mapnik/agg_render_marker.hpp ++ mapnik/attribute.hpp ++ mapnik/attribute_collector.hpp ++ mapnik/attribute_descriptor.hpp ++ mapnik/boolean.hpp ++ mapnik/boost_spirit_instantiate.hpp ++ mapnik/cairo_io.hpp ++ mapnik/color.hpp ++ mapnik/color_factory.hpp ++ mapnik/config.hpp ++ mapnik/config_error.hpp ++ mapnik/coord.hpp ++ mapnik/css_color_grammar.hpp ++ mapnik/css_color_grammar_impl.hpp ++ mapnik/cxx11_support.hpp ++ mapnik/datasource.hpp ++ mapnik/datasource_cache.hpp ++ mapnik/datasource_geometry_type.hpp ++ mapnik/debug.hpp ++ mapnik/enumeration.hpp ++ mapnik/evaluate_global_attributes.hpp ++ mapnik/expression.hpp ++ mapnik/expression_evaluator.hpp ++ mapnik/expression_grammar.hpp ++ mapnik/expression_grammar_config.hpp ++ mapnik/expression_grammar_def.hpp ++ mapnik/expression_node.hpp ++ mapnik/expression_node_types.hpp ++ mapnik/expression_string.hpp ++ mapnik/extend_converter.hpp ++ mapnik/factory.hpp ++ mapnik/feature.hpp ++ mapnik/featureset.hpp ++ mapnik/feature_factory.hpp ++ mapnik/feature_kv_iterator.hpp ++ mapnik/feature_layer_desc.hpp ++ mapnik/feature_style_processor.hpp ++ mapnik/feature_style_processor_context.hpp ++ mapnik/feature_style_processor_impl.hpp ++ mapnik/feature_type_style.hpp ++ mapnik/filter_featureset.hpp ++ mapnik/font_engine_freetype.hpp ++ mapnik/font_set.hpp ++ mapnik/function_call.hpp ++ mapnik/geometry.hpp ++ mapnik/geom_util.hpp ++ mapnik/global.hpp ++ mapnik/gradient.hpp ++ mapnik/grid_vertex_converter.hpp ++ mapnik/hextree.hpp ++ mapnik/hit_test_filter.hpp ++ mapnik/image.hpp ++ mapnik/image_any.hpp ++ mapnik/image_compositing.hpp ++ mapnik/image_copy.hpp ++ mapnik/image_filter.hpp ++ mapnik/image_filter_grammar.hpp ++ mapnik/image_filter_grammar_def.hpp ++ mapnik/image_filter_types.hpp ++ mapnik/image_impl.hpp ++ mapnik/image_null.hpp ++ mapnik/image_options.hpp ++ mapnik/image_reader.hpp ++ mapnik/image_scaling.hpp ++ mapnik/image_scaling_traits.hpp ++ mapnik/image_util.hpp ++ mapnik/image_util_jpeg.hpp ++ mapnik/image_util_png.hpp ++ mapnik/image_util_tiff.hpp ++ mapnik/image_util_webp.hpp ++ mapnik/image_view.hpp ++ mapnik/image_view_any.hpp ++ mapnik/image_view_impl.hpp ++ mapnik/image_view_null.hpp ++ mapnik/init_priority.hpp ++ mapnik/jpeg_io.hpp ++ mapnik/label_collision_detector.hpp ++ mapnik/layer.hpp ++ mapnik/load_map.hpp ++ mapnik/make_unique.hpp ++ mapnik/map.hpp ++ mapnik/mapped_memory_cache.hpp ++ mapnik/marker.hpp ++ mapnik/markers_placement.hpp ++ mapnik/marker_cache.hpp ++ mapnik/marker_helpers.hpp ++ mapnik/memory_datasource.hpp ++ mapnik/memory_featureset.hpp ++ mapnik/octree.hpp ++ mapnik/offset_converter.hpp ++ mapnik/palette.hpp ++ mapnik/params.hpp ++ mapnik/params_impl.hpp ++ mapnik/parse_path.hpp ++ mapnik/path.hpp ++ mapnik/path_expression.hpp ++ mapnik/path_expression_grammar.hpp ++ mapnik/path_expression_grammar_def.hpp ++ mapnik/pixel_position.hpp ++ mapnik/pixel_types.hpp ++ mapnik/plugin.hpp ++ mapnik/png_io.hpp ++ mapnik/pool.hpp ++ mapnik/projection.hpp ++ mapnik/proj_strategy.hpp ++ mapnik/proj_transform.hpp ++ mapnik/ptree_helpers.hpp ++ mapnik/quad_tree.hpp ++ mapnik/query.hpp ++ mapnik/raster.hpp ++ mapnik/raster_colorizer.hpp ++ mapnik/renderer_common.hpp ++ mapnik/request.hpp ++ mapnik/rule.hpp ++ mapnik/rule_cache.hpp ++ mapnik/safe_cast.hpp ++ mapnik/save_map.hpp ++ mapnik/scale_denominator.hpp ++ mapnik/simplify.hpp ++ mapnik/simplify_converter.hpp ++ mapnik/span_image_filter.hpp ++ mapnik/sql_utils.hpp ++ mapnik/sse.hpp ++ mapnik/stringify_macro.hpp ++ mapnik/symbolizer.hpp ++ mapnik/symbolizer_base.hpp ++ mapnik/symbolizer_default_values.hpp ++ mapnik/symbolizer_dispatch.hpp ++ mapnik/symbolizer_enumerations.hpp ++ mapnik/symbolizer_hash.hpp ++ mapnik/symbolizer_keys.hpp ++ mapnik/symbolizer_utils.hpp ++ mapnik/tiff_io.hpp ++ mapnik/timer.hpp ++ mapnik/tolerance_iterator.hpp ++ mapnik/transform_path_adapter.hpp ++ mapnik/unicode.hpp ++ mapnik/value.hpp ++ mapnik/version.hpp ++ mapnik/vertex.hpp ++ mapnik/vertex_adapters.hpp ++ mapnik/vertex_cache.hpp ++ mapnik/vertex_converters.hpp ++ mapnik/vertex_processor.hpp ++ mapnik/vertex_vector.hpp ++ mapnik/view_strategy.hpp ++ mapnik/view_transform.hpp ++ mapnik/warning_ignore.hpp ++ mapnik/warning_ignore_agg.hpp ++ mapnik/warp.hpp ++ mapnik/webp_io.hpp ++ mapnik/well_known_srs.hpp ++ mapnik/wkb.hpp ++ mapnik/xml_attribute_cast.hpp ++ mapnik/xml_loader.hpp ++ mapnik/xml_node.hpp ++ mapnik/xml_tree.hpp ++ mapnik/geometry/boost_adapters.hpp ++ mapnik/geometry/boost_spirit_karma_adapter.hpp ++ mapnik/geometry/box2d.hpp ++ mapnik/geometry/box2d_impl.hpp ++ mapnik/geometry/centroid.hpp ++ mapnik/geometry/closest_point.hpp ++ mapnik/geometry/correct.hpp ++ mapnik/geometry/envelope.hpp ++ mapnik/geometry/envelope_impl.hpp ++ mapnik/geometry/fusion_adapted.hpp ++ mapnik/geometry/geometry_type.hpp ++ mapnik/geometry/geometry_types.hpp ++ mapnik/geometry/interior.hpp ++ mapnik/geometry/is_empty.hpp ++ mapnik/geometry/is_simple.hpp ++ mapnik/geometry/is_valid.hpp ++ mapnik/geometry/line_string.hpp ++ mapnik/geometry/multi_line_string.hpp ++ mapnik/geometry/multi_point.hpp ++ mapnik/geometry/multi_polygon.hpp ++ mapnik/geometry/point.hpp ++ mapnik/geometry/polygon.hpp ++ mapnik/geometry/polygon_vertex_processor.hpp ++ mapnik/geometry/polylabel.hpp ++ mapnik/geometry/remove_empty.hpp ++ mapnik/geometry/reprojection.hpp ++ mapnik/geometry/reprojection_impl.hpp ++ mapnik/geometry/strategy.hpp ++ mapnik/geometry/to_path.hpp ++ mapnik/geometry/transform.hpp ++ mapnik/csv/csv_grammar_x3.hpp ++ mapnik/csv/csv_grammar_x3_def.hpp ++ mapnik/csv/csv_types.hpp ++ mapnik/svg/geometry_svg_generator.hpp ++ mapnik/svg/geometry_svg_generator_impl.hpp ++ mapnik/svg/svg_converter.hpp ++ mapnik/svg/svg_grammar_config_x3.hpp ++ mapnik/svg/svg_parser.hpp ++ mapnik/svg/svg_parser_exception.hpp ++ mapnik/svg/svg_path_adapter.hpp ++ mapnik/svg/svg_path_attributes.hpp ++ mapnik/svg/svg_path_commands.hpp ++ mapnik/svg/svg_path_grammar_x3.hpp ++ mapnik/svg/svg_path_grammar_x3_def.hpp ++ mapnik/svg/svg_path_parser.hpp ++ mapnik/svg/svg_renderer_agg.hpp ++ mapnik/svg/svg_storage.hpp ++ mapnik/svg/svg_transform_grammar_x3.hpp ++ mapnik/svg/svg_transform_grammar_x3_def.hpp ++ mapnik/wkt/wkt_factory.hpp ++ mapnik/wkt/wkt_generator_grammar.hpp ++ mapnik/wkt/wkt_generator_grammar_impl.hpp ++ mapnik/wkt/wkt_grammar_x3.hpp ++ mapnik/wkt/wkt_grammar_x3_def.hpp ++ mapnik/cairo/cairo_context.hpp ++ mapnik/cairo/cairo_image_util.hpp ++ mapnik/cairo/cairo_renderer.hpp ++ mapnik/cairo/cairo_render_vector.hpp ++ mapnik/cairo/render_polygon_pattern.hpp ++ mapnik/grid/grid.hpp ++ mapnik/grid/grid_pixel.hpp ++ mapnik/grid/grid_pixfmt.hpp ++ mapnik/grid/grid_rasterizer.hpp ++ mapnik/grid/grid_renderer.hpp ++ mapnik/grid/grid_renderer_base.hpp ++ mapnik/grid/grid_rendering_buffer.hpp ++ mapnik/grid/grid_render_marker.hpp ++ mapnik/grid/grid_view.hpp ++ mapnik/json/attribute_value_visitor.hpp ++ mapnik/json/create_feature.hpp ++ mapnik/json/create_geometry.hpp ++ mapnik/json/extract_bounding_boxes.hpp ++ mapnik/json/extract_bounding_boxes_config.hpp ++ mapnik/json/feature_generator_grammar.hpp ++ mapnik/json/feature_generator_grammar_impl.hpp ++ mapnik/json/feature_grammar_x3.hpp ++ mapnik/json/feature_grammar_x3_def.hpp ++ mapnik/json/feature_parser.hpp ++ mapnik/json/generic_json_grammar_x3.hpp ++ mapnik/json/generic_json_grammar_x3_def.hpp ++ mapnik/json/geojson_grammar_x3.hpp ++ mapnik/json/geojson_grammar_x3_def.hpp ++ mapnik/json/geometry_generator_grammar.hpp ++ mapnik/json/geometry_generator_grammar_impl.hpp ++ mapnik/json/geometry_parser.hpp ++ mapnik/json/json_grammar_config.hpp ++ mapnik/json/json_value.hpp ++ mapnik/json/parse_feature.hpp ++ mapnik/json/positions_grammar_x3.hpp ++ mapnik/json/positions_grammar_x3_def.hpp ++ mapnik/json/positions_x3.hpp ++ mapnik/json/properties_generator_grammar.hpp ++ mapnik/json/properties_generator_grammar_impl.hpp ++ mapnik/json/stringifier.hpp ++ mapnik/json/topojson_grammar_x3.hpp ++ mapnik/json/topojson_grammar_x3_def.hpp ++ mapnik/json/topojson_utils.hpp ++ mapnik/json/topology.hpp ++ mapnik/json/unicode_string_grammar_x3.hpp ++ mapnik/json/unicode_string_grammar_x3_def.hpp ++ mapnik/json/value_converters.hpp ++ mapnik/util/char_array_buffer.hpp ++ mapnik/util/const_rendering_buffer.hpp ++ mapnik/util/container_adapter.hpp ++ mapnik/util/conversions.hpp ++ mapnik/util/dasharray_parser.hpp ++ mapnik/util/featureset_buffer.hpp ++ mapnik/util/feature_to_geojson.hpp ++ mapnik/util/file_io.hpp ++ mapnik/util/fs.hpp ++ mapnik/util/geometry_to_ds_type.hpp ++ mapnik/util/geometry_to_geojson.hpp ++ mapnik/util/geometry_to_svg.hpp ++ mapnik/util/geometry_to_wkb.hpp ++ mapnik/util/geometry_to_wkt.hpp ++ mapnik/util/hsl.hpp ++ mapnik/util/is_clockwise.hpp ++ mapnik/util/math.hpp ++ mapnik/util/name_to_int.hpp ++ mapnik/util/noncopyable.hpp ++ mapnik/util/path_iterator.hpp ++ mapnik/util/rounding_cast.hpp ++ mapnik/util/singleton.hpp ++ mapnik/util/spatial_index.hpp ++ mapnik/util/spirit_transform_attribute.hpp ++ mapnik/util/timer.hpp ++ mapnik/util/trim.hpp ++ mapnik/util/utf_conv_win.hpp ++ mapnik/util/variant.hpp ++ mapnik/util/variant_io.hpp ++ mapnik/group/group_layout.hpp ++ mapnik/group/group_layout_manager.hpp ++ mapnik/group/group_rule.hpp ++ mapnik/group/group_symbolizer_helper.hpp ++ mapnik/group/group_symbolizer_properties.hpp ++ mapnik/text/color_font_renderer.hpp ++ mapnik/text/evaluated_format_properties_ptr.hpp ++ mapnik/text/face.hpp ++ mapnik/text/font_feature_settings.hpp ++ mapnik/text/font_library.hpp ++ mapnik/text/glyph_info.hpp ++ mapnik/text/glyph_positions.hpp ++ mapnik/text/harfbuzz_shaper.hpp ++ mapnik/text/icu_shaper.hpp ++ mapnik/text/itemizer.hpp ++ mapnik/text/placement_finder.hpp ++ mapnik/text/placement_finder_impl.hpp ++ mapnik/text/properties_util.hpp ++ mapnik/text/renderer.hpp ++ mapnik/text/rotation.hpp ++ mapnik/text/scrptrun.hpp ++ mapnik/text/symbolizer_helpers.hpp ++ mapnik/text/text_layout.hpp ++ mapnik/text/text_line.hpp ++ mapnik/text/text_properties.hpp ++ mapnik/text/placements/base.hpp ++ mapnik/text/placements/dummy.hpp ++ mapnik/text/placements/list.hpp ++ mapnik/text/placements/registry.hpp ++ mapnik/text/placements/simple.hpp ++ mapnik/text/formatting/base.hpp ++ mapnik/text/formatting/format.hpp ++ mapnik/text/formatting/layout.hpp ++ mapnik/text/formatting/list.hpp ++ mapnik/text/formatting/registry.hpp ++ mapnik/text/formatting/text.hpp ++ mapnik/transform/parse_transform.hpp ++ mapnik/transform/transform_expression.hpp ++ mapnik/transform/transform_expression_grammar_x3.hpp ++ mapnik/transform/transform_expression_grammar_x3_def.hpp ++ mapnik/transform/transform_processor.hpp ++ mapnik/markers_placements/basic.hpp ++ mapnik/markers_placements/interior.hpp ++ mapnik/markers_placements/line.hpp ++ mapnik/markers_placements/point.hpp ++ mapnik/markers_placements/polylabel.hpp ++ mapnik/markers_placements/vertex_first.hpp ++ mapnik/markers_placements/vertex_last.hpp ++ mapnik/geometry/boost_adapters.hpp ++ mapnik/geometry/boost_spirit_karma_adapter.hpp ++ mapnik/geometry/box2d.hpp ++ mapnik/geometry/box2d_impl.hpp ++ mapnik/geometry/centroid.hpp ++ mapnik/geometry/closest_point.hpp ++ mapnik/geometry/correct.hpp ++ mapnik/geometry/envelope.hpp ++ mapnik/geometry/envelope_impl.hpp ++ mapnik/geometry/fusion_adapted.hpp ++ mapnik/geometry/geometry_type.hpp ++ mapnik/geometry/geometry_types.hpp ++ mapnik/geometry/interior.hpp ++ mapnik/geometry/is_empty.hpp ++ mapnik/geometry/is_simple.hpp ++ mapnik/geometry/is_valid.hpp ++ mapnik/geometry/line_string.hpp ++ mapnik/geometry/multi_line_string.hpp ++ mapnik/geometry/multi_point.hpp ++ mapnik/geometry/multi_polygon.hpp ++ mapnik/geometry/point.hpp ++ mapnik/geometry/polygon.hpp ++ mapnik/geometry/polygon_vertex_processor.hpp ++ mapnik/geometry/polylabel.hpp ++ mapnik/geometry/remove_empty.hpp ++ mapnik/geometry/reprojection.hpp ++ mapnik/geometry/reprojection_impl.hpp ++ mapnik/geometry/strategy.hpp ++ mapnik/geometry/to_path.hpp ++ mapnik/geometry/transform.hpp ++ mapnik/value/error.hpp ++ mapnik/value/hash.hpp ++ mapnik/value/types.hpp) ++ ++set(MAPNIK_INC ${MAPNIK_INC} ++ mapnik/svg/output/svg_generator.hpp ++ mapnik/svg/output/svg_output_attributes.hpp ++ mapnik/svg/output/svg_output_grammars.hpp ++ mapnik/svg/output/svg_output_grammars_impl.hpp ++ mapnik/svg/output/svg_path_iterator.hpp ++ mapnik/svg/output/svg_renderer.hpp) ++ ++set(MAPNIK_INC ${MAPNIK_INC} ++ mapnik/grid/grid.hpp ++ mapnik/grid/grid_pixel.hpp ++ mapnik/grid/grid_pixfmt.hpp ++ mapnik/grid/grid_rasterizer.hpp ++ mapnik/grid/grid_renderer.hpp ++ mapnik/grid/grid_renderer_base.hpp ++ mapnik/grid/grid_rendering_buffer.hpp ++ mapnik/grid/grid_render_marker.hpp ++ mapnik/grid/grid_view.hpp) +\ No newline at end of file +diff --git a/include/mapnik/config.hpp b/include/mapnik/config.hpp +index a9168e5..9bdcad4 100644 +--- a/include/mapnik/config.hpp ++++ b/include/mapnik/config.hpp +@@ -30,8 +30,10 @@ + # define MAPNIK_IMP __declspec (dllimport) + # ifdef MAPNIK_EXPORTS + # define MAPNIK_DECL __declspec (dllexport) +-# else ++# elif !defined(MAPNIK_STATICLIB) + # define MAPNIK_DECL __declspec (dllimport) ++# else ++# define MAPNIK_DECL + # endif + # pragma warning( disable: 4251 ) + # pragma warning( disable: 4275 ) +diff --git a/include/mapnik/geometry.hpp b/include/mapnik/geometry.hpp +index aae2bf3..6484dd3 100644 +--- a/include/mapnik/geometry.hpp ++++ b/include/mapnik/geometry.hpp +@@ -146,7 +146,7 @@ struct geometry : geometry_base + { + using coord_type = T; + +-#if __cpp_inheriting_constructors >= 200802 ++#if __cpp_inheriting_constructors >= 200802 && !defined (_MSC_VER) + + using geometry_base::geometry_base; + +diff --git a/include/mapnik/json/generic_json.hpp b/include/mapnik/json/generic_json.hpp +index 65c04c4..6c04609 100644 +--- a/include/mapnik/json/generic_json.hpp ++++ b/include/mapnik/json/generic_json.hpp +@@ -57,7 +57,7 @@ using json_value_base = mapnik::util::variant >; + struct json_value : json_value_base + { +-#if __cpp_inheriting_constructors >= 200802 ++#if __cpp_inheriting_constructors >= 200802 && !defined (_MSC_VER) + + using json_value_base::json_value_base; + +diff --git a/plugins/input/csv/CMakeLists.txt b/plugins/input/csv/CMakeLists.txt +new file mode 100644 +index 0000000..34a2e75 +--- /dev/null ++++ b/plugins/input/csv/CMakeLists.txt +@@ -0,0 +1,12 @@ ++add_library(mapnik-input-csv SHARED ++ csv_datasource.cpp ++ csv_featureset.cpp ++ csv_index_featureset.cpp ++ csv_inline_featureset.cpp ++ csv_utils.cpp) ++ ++target_link_libraries(mapnik-input-csv PUBLIC mapnik mapnik-wkt mapnik-json) ++set_target_properties(mapnik-input-csv PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-csv PROPERTIES OUTPUT_NAME "csv") ++set_target_properties(mapnik-input-csv PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-csv DESTINATION bin/plugins/input) +\ No newline at end of file +diff --git a/plugins/input/gdal/CMakeLists.txt b/plugins/input/gdal/CMakeLists.txt +new file mode 100644 +index 0000000..274ee44 +--- /dev/null ++++ b/plugins/input/gdal/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-gdal SHARED ++ gdal_datasource.cpp ++ gdal_featureset.cpp) ++ ++target_link_libraries(mapnik-input-gdal PUBLIC mapnik ${GDAL_LIBRARIES}) ++set_target_properties(mapnik-input-gdal PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-gdal PROPERTIES OUTPUT_NAME "gdal") ++set_target_properties(mapnik-input-gdal PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-gdal DESTINATION bin/plugins/input) +diff --git a/plugins/input/geobuf/CMakeLists.txt b/plugins/input/geobuf/CMakeLists.txt +new file mode 100644 +index 0000000..1b798e5 +--- /dev/null ++++ b/plugins/input/geobuf/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-geobuf SHARED ++ geobuf_datasource.cpp ++ geobuf_featureset.cpp) ++ ++target_link_libraries(mapnik-input-geobuf PUBLIC mapnik) ++set_target_properties(mapnik-input-geobuf PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-geobuf PROPERTIES OUTPUT_NAME "geobuf") ++set_target_properties(mapnik-input-geobuf PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-geobuf DESTINATION bin/plugins/input) +diff --git a/plugins/input/geojson/CMakeLists.txt b/plugins/input/geojson/CMakeLists.txt +new file mode 100644 +index 0000000..fb53a3c +--- /dev/null ++++ b/plugins/input/geojson/CMakeLists.txt +@@ -0,0 +1,11 @@ ++add_library(mapnik-input-geojson SHARED ++ geojson_datasource.cpp ++ geojson_featureset.cpp ++ geojson_index_featureset.cpp ++ geojson_memory_index_featureset.cpp) ++ ++target_link_libraries(mapnik-input-geojson PUBLIC mapnik mapnik-json) ++set_target_properties(mapnik-input-geojson PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-geojson PROPERTIES OUTPUT_NAME "geojson") ++set_target_properties(mapnik-input-geojson PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-geojson DESTINATION bin/plugins/input) +diff --git a/plugins/input/ogr/CMakeLists.txt b/plugins/input/ogr/CMakeLists.txt +new file mode 100644 +index 0000000..6d7fd9a +--- /dev/null ++++ b/plugins/input/ogr/CMakeLists.txt +@@ -0,0 +1,11 @@ ++add_library(mapnik-input-ogr SHARED ++ ogr_converter.cpp ++ ogr_datasource.cpp ++ ogr_featureset.cpp ++ ogr_index_featureset.cpp) ++ ++target_link_libraries(mapnik-input-ogr PUBLIC mapnik ${OGR_LIBRARIES} ${GDAL_LIBRARIES}) ++set_target_properties(mapnik-input-ogr PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-ogr PROPERTIES OUTPUT_NAME "ogr") ++set_target_properties(mapnik-input-ogr PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-ogr DESTINATION bin/plugins/input) +diff --git a/plugins/input/pgraster/CMakeLists.txt b/plugins/input/pgraster/CMakeLists.txt +new file mode 100644 +index 0000000..ada5d08 +--- /dev/null ++++ b/plugins/input/pgraster/CMakeLists.txt +@@ -0,0 +1,10 @@ ++add_library(mapnik-input-pgraster SHARED ++ pgraster_datasource.cpp ++ pgraster_featureset.cpp ++ pgraster_wkb_reader.cpp) ++ ++target_link_libraries(mapnik-input-pgraster PUBLIC mapnik ${PostgreSQL_LIBRARIES}) ++set_target_properties(mapnik-input-pgraster PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-pgraster PROPERTIES OUTPUT_NAME "pgraster") ++set_target_properties(mapnik-input-pgraster PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-pgraster DESTINATION bin/plugins/input) +diff --git a/plugins/input/postgis/CMakeLists.txt b/plugins/input/postgis/CMakeLists.txt +new file mode 100644 +index 0000000..385faa3 +--- /dev/null ++++ b/plugins/input/postgis/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-postgis SHARED ++ postgis_datasource.cpp ++ postgis_featureset.cpp ) ++ ++target_link_libraries(mapnik-input-postgis PUBLIC mapnik ${PostgreSQL_LIBRARIES}) ++set_target_properties(mapnik-input-postgis PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-postgis PROPERTIES OUTPUT_NAME "postgis") ++set_target_properties(mapnik-input-postgis PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-postgis DESTINATION bin/plugins/input) +diff --git a/plugins/input/raster/CMakeLists.txt b/plugins/input/raster/CMakeLists.txt +new file mode 100644 +index 0000000..b08be98 +--- /dev/null ++++ b/plugins/input/raster/CMakeLists.txt +@@ -0,0 +1,10 @@ ++add_library(mapnik-input-raster SHARED ++ raster_datasource.cpp ++ raster_featureset.cpp ++ raster_info.cpp) ++ ++target_link_libraries(mapnik-input-raster PUBLIC mapnik) ++set_target_properties(mapnik-input-raster PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-raster PROPERTIES OUTPUT_NAME "raster") ++set_target_properties(mapnik-input-raster PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-raster DESTINATION bin/plugins/input) +diff --git a/plugins/input/shape/CMakeLists.txt b/plugins/input/shape/CMakeLists.txt +new file mode 100644 +index 0000000..cac54dd +--- /dev/null ++++ b/plugins/input/shape/CMakeLists.txt +@@ -0,0 +1,9 @@ ++SET(INPUT_SHAPE_SOURCES ++ dbfile.cpp dbf_test.cpp shape_datasource.cpp shape_featureset.cpp shape_index_featureset.cpp shape_io.cpp shape_utils.cpp) ++ ++add_library(mapnik-input-shape SHARED ${INPUT_SHAPE_SOURCES}) ++target_link_libraries(mapnik-input-shape PUBLIC mapnik) ++set_target_properties(mapnik-input-shape PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-shape PROPERTIES OUTPUT_NAME "shape") ++set_target_properties(mapnik-input-shape PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-shape DESTINATION bin/plugins/input) +diff --git a/plugins/input/sqlite/CMakeLists.txt b/plugins/input/sqlite/CMakeLists.txt +new file mode 100644 +index 0000000..b84528e +--- /dev/null ++++ b/plugins/input/sqlite/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-sqlite SHARED ++ sqlite_datasource.cpp ++ sqlite_featureset.cpp) ++ ++target_link_libraries(mapnik-input-sqlite PUBLIC mapnik SQLite::SQLite3) ++set_target_properties(mapnik-input-sqlite PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-sqlite PROPERTIES OUTPUT_NAME "sqlite") ++set_target_properties(mapnik-input-sqlite PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-sqlite DESTINATION bin/plugins/input) +diff --git a/plugins/input/topojson/CMakeLists.txt b/plugins/input/topojson/CMakeLists.txt +new file mode 100644 +index 0000000..aeb559b +--- /dev/null ++++ b/plugins/input/topojson/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-topojson SHARED ++ topojson_datasource.cpp ++ topojson_featureset.cpp) ++ ++target_link_libraries(mapnik-input-topojson PUBLIC mapnik mapnik-json) ++set_target_properties(mapnik-input-topojson PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-topojson PROPERTIES OUTPUT_NAME "topojson") ++set_target_properties(mapnik-input-topojson PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-topojson DESTINATION bin/plugins/input) +diff --git a/src/agg/CMakeLists.txt b/src/agg/CMakeLists.txt +new file mode 100644 +index 0000000..e69de29 +diff --git a/src/geometry/CMakeLists.txt b/src/geometry/CMakeLists.txt +new file mode 100644 +index 0000000..e69de29 +diff --git a/src/json/CMakeLists.txt b/src/json/CMakeLists.txt +new file mode 100644 +index 0000000..76a23b9 +--- /dev/null ++++ b/src/json/CMakeLists.txt +@@ -0,0 +1,17 @@ ++add_library(mapnik-json STATIC ++ generic_json.cpp ++ mapnik_geometry_to_geojson.cpp ++ mapnik_json_feature_collection_grammar.cpp ++ mapnik_json_feature_grammar.cpp ++ mapnik_json_generator_grammar.cpp ++ mapnik_json_geometry_grammar.cpp ++ mapnik_json_geometry_parser.cpp ++ mapnik_json_positions_grammar.cpp ++ mapnik_topojson_grammar.cpp ++) ++ ++ ++target_link_libraries(mapnik-json INTERFACE ${ICUU_LIB}) ++ ++install(TARGETS mapnik-json LIBRARY DESTINATION lib) ++target_compile_definitions(mapnik-json PRIVATE ${MAPNIK_LIB_DEFINITION}) +diff --git a/src/wkt/CMakeLists.txt b/src/wkt/CMakeLists.txt +new file mode 100644 +index 0000000..dbaf010 +--- /dev/null ++++ b/src/wkt/CMakeLists.txt +@@ -0,0 +1,7 @@ ++add_library(mapnik-wkt STATIC ++ mapnik_wkt_grammar.cpp ++ mapnik_wkt_generator_grammar.cpp ++) ++ ++install(TARGETS mapnik-wkt LIBRARY DESTINATION lib) ++target_compile_definitions(mapnik-json PRIVATE ${MAPNIK_LIB_DEFINITION}) +diff --git a/utils/mapnik-render/CMakeLists.txt b/utils/mapnik-render/CMakeLists.txt +new file mode 100644 +index 0000000..7cfff00 +--- /dev/null ++++ b/utils/mapnik-render/CMakeLists.txt +@@ -0,0 +1,3 @@ ++add_executable(mapnik-render mapnik-render.cpp) ++target_link_libraries(mapnik-render PRIVATE mapnik) ++install(TARGETS mapnik-render DESTINATION tools) +diff --git a/utils/shapeindex/CMakeLists.txt b/utils/shapeindex/CMakeLists.txt +new file mode 100644 +index 0000000..484200a +--- /dev/null ++++ b/utils/shapeindex/CMakeLists.txt +@@ -0,0 +1,4 @@ ++add_executable(shapeindex shapeindex.cpp) ++target_link_libraries(shapeindex PRIVATE mapnik) ++target_include_directories(shapeindex PRIVATE ../../plugins/input/shape) ++install(TARGETS shapeindex DESTINATION tools) diff --git a/ports/mapnik/0001-CMakeFiles.patch.txt b/ports/mapnik/0001-CMakeFiles.patch.txt new file mode 100644 index 00000000000000..4a68e6917070f7 --- /dev/null +++ b/ports/mapnik/0001-CMakeFiles.patch.txt @@ -0,0 +1,1197 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..f07a5ce +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,306 @@ ++cmake_minimum_required(VERSION 3.13.4) ++project(mapnik) ++set(CMAKE_CXX_STANDARD 14) ++include(CMakeDependentOption) ++ ++ ++option(MAPNIK_STATIC_LIB "Build a static library" OFF) ++ ++option(WITH_DEMO "Build demo" OFF) ++option(WITH_VIEWER "Build viewer" OFF) ++ ++ ++option(WITH_INPUTS "Build input plugins" ON) ++ ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_CSV "Build the csv input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_GDAL "Build the gdal input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_GEOBUF "Build the geobuf input plugin" OFF "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_GEOJSON "Build the geojson input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_OGR "Build the ogr input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_PGRASTER "Build the pgraster input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_POSTGIS "Build the postgis input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_RASTER "Build the raster input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_SHAPE "Build the shape input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_SQLITE "Build the sqlite input plugin" ON "WITH_INPUTS" ON) ++CMAKE_DEPENDENT_OPTION(WITH_INPUT_TOPOJSON "Build the topojson input plugin" ON "WITH_INPUTS" ON) ++ ++MESSAGE(WITH_INPUT_POSTGIS ${WITH_INPUT_POSTGIS}}) ++ ++option(WITH_UTILS "Build the utilities" ON ) ++ ++option(WITH_GRID "Use the grid renderer" OFF) ++option(WITH_CAIRO "Use cairo" ON) ++option(WITH_PROJ4 "Use proj4" ON) ++ ++if(MSVC) ++ # Force to always compile with W4 ++ if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") ++ string(REGEX REPLACE "/W[0-4]" "/W1" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ else() ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1") ++ endif() ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd\"4068\" /wd\"4661\" /wd\"4503\" ") ++ add_compile_options(/MP) ++ add_compile_options(-bigobj) #added by @am2222 ++ add_compile_definitions(ACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1) #added by @am2222 for proj4 compile ++ add_definitions(-DMAPNIK_THREADSAFE) ++ ++endif() ++ ++find_package(Boost REQUIRED ++ COMPONENTS filesystem system regex program_options) ++ ++find_package(FreeType REQUIRED) ++ ++find_library(HARFBUZZ_LIB harfbuzz.lib) ++find_package(ICU REQUIRED COMPONENTS uc) ++ ++find_package(PNG REQUIRED) ++find_package(jpeg REQUIRED) ++find_package(tiff REQUIRED) ++find_package(WebP REQUIRED) ++find_package(LibXml2 REQUIRED) ++find_package(ZLIB REQUIRED) ++ ++set (MAPNIK_DEFS ++ -DHAVE_PNG ++ -DHAVE_JPEG ++ -DHAVE_TIFF ++ -DHAVE_WEBP) ++ ++set(thirdparty_include_paths ${thirdparty_include_paths} ++ ${JPEG_INCLUDE_DIR} ${WEBP_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR}) ++ ++set(thirdparty_libraries ${thirdparty_libraries} ++ ${JPEG_LIBRARIES} ${WEBP_LIBRARIES} ${LIBXML2_LIBRARIES} ${HARFBUZZ_LIB}) ++ ++# AGG ++ ++include(files.cmake) ++ ++if (WITH_CAIRO) ++ find_library(CAIRO_LIB_DEBUG cairod) ++ find_library(CAIRO_LIB_RELEASE cairo) ++ find_library(CAIRO_GOBJECT_LIB_DEBUG cairo-gobjectd) ++ find_library(CAIRO_GOBJECT_LIB_RELEASE cairo-gobject) ++ find_path(CAIRO_INCLUDE_DIR cairo/cairo.h) ++ ++ set(thirdparty_include_paths ${thirdparty_include_paths} ${CAIRO_INCLUDE_DIR}) ++ set(thirdparty_libraries ${thirdparty_libraries} $<$:${CAIRO_LIB_DEBUG}> $<$:${CAIRO_LIB_RELEASE}>) ++ ++ set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/cairo/process_markers_symbolizer.cpp ++ src/cairo/process_group_symbolizer.cpp ++ ++ src/cairo/cairo_context.cpp ++ src/cairo/cairo_render_vector.cpp ++ src/cairo/cairo_renderer.cpp ++ src/cairo/process_building_symbolizer.cpp ++ src/cairo/process_debug_symbolizer.cpp ++ src/cairo/process_line_pattern_symbolizer.cpp ++ src/cairo/process_line_symbolizer.cpp ++ src/cairo/process_point_symbolizer.cpp ++ src/cairo/process_polygon_pattern_symbolizer.cpp ++ src/cairo/process_polygon_symbolizer.cpp ++ src/cairo/process_raster_symbolizer.cpp ++ src/cairo/process_text_symbolizer.cpp) ++ ++ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DHAVE_CAIRO) ++endif() ++message(STATUS "Cairo renderer " ${WITH_CAIRO}) ++ ++if (WITH_PROJ4) ++ find_package(PROJ4 REQUIRED) ++ set(thirdparty_include_paths ${thirdparty_include_paths} ${PROJ4_INCLUDE_DIRS}) ++ set(thirdparty_libraries ${thirdparty_libraries} ${PROJ4_LIBRARIES}) ++ ++ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DMAPNIK_USE_PROJ4) ++endif() ++ ++if (WITH_GRID) ++ set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/grid/grid.cpp ++ src/grid/grid_renderer.cpp ++ src/grid/process_building_symbolizer.cpp ++ src/grid/process_line_pattern_symbolizer.cpp ++ src/grid/process_line_symbolizer.cpp ++ src/grid/process_point_symbolizer.cpp ++ src/grid/process_polygon_pattern_symbolizer.cpp ++ src/grid/process_polygon_symbolizer.cpp ++ src/grid/process_raster_symbolizer.cpp ++ src/grid/process_shield_symbolizer.cpp ++ src/grid/process_text_symbolizer.cpp) ++ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DGRID_RENDERER) ++ENDIF() ++message(STATUS "Grid renderer: " ${WITH_GRID}) ++ ++set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/svg/output/svg_output_grammars.cpp ++ src/svg/output/svg_renderer.cpp ++ src/svg/output/svg_generator.cpp ++ src/svg/output/svg_output_attributes.cpp ++ src/svg/output/process_symbolizers.cpp ++ src/svg/output/process_line_symbolizer.cpp ++ src/svg/output/process_polygon_symbolizer.cpp) ++set(MAPNIK_DEFS ${MAPNIK_DEFS} -DSVG_RENDERER) ++ ++ ++set(MAPNIK_SOURCES ${MAPNIK_SOURCES} ++ src/jpeg_reader.cpp ++ src/libxml2_loader.cpp ++ src/png_reader.cpp ++ src/tiff_reader.cpp ++ src/webp_reader.cpp ++ ) ++ ++#set(MAPNIK_SOURCES ${MAPNIK_SOURCES} src/rapidxml_loader.cpp) ++ ++set(MAPNIK_DEFS ${MAPNIK_DEFS} -DHAVE_LIBXML2 -DBOOST_REGEX_HAS_ICU) ++ ++set(mapnik_include_paths ++ include ++ deps ++ deps/agg/include ++ deps/mapbox/geometry/include ++ deps/mapbox/polylabel/include ++ deps/mapbox/variant/include) ++ ++ ++ ++include_directories(${mapnik_include_paths} ${thirdparty_include_paths}) ++ ++if (MAPNIK_STATIC_LIB) ++ message(STATUS "Building static library") ++ add_library(mapnik STATIC ${MAPNIK_SOURCES} ${MAPNIK_AGG_SOURCES} ${AGG_SOURCES}) ++ target_compile_definitions(mapnik PUBLIC -DMAPNIK_STATICLIB) ++ set(MAPNIK_LIB_DEFINITION -DMAPNIK_STATICLIB) ++else () ++ message(STATUS "Building shared library") ++ add_library(mapnik SHARED ${MAPNIK_SOURCES} ${MAPNIK_AGG_SOURCES} ${AGG_SOURCES}) ++ target_compile_definitions(mapnik PRIVATE -DMAPNIK_EXPORTS) ++ set(MAPNIK_LIB_DEFINITION ) ++endif () ++ ++target_compile_definitions(mapnik PUBLIC ${MAPNIK_DEFS}) ++ ++target_include_directories(mapnik INTERFACE ${mapnik_include_paths} ${thirdparty_include_paths} ) ++target_link_libraries(mapnik PUBLIC ++ ${thirdparty_libraries} ++ Boost::boost Boost::filesystem Boost::system Boost::regex Boost::program_options Boost::system ++ Freetype::Freetype ++ ICU::uc ++ PNG::PNG ++ TIFF::TIFF ++ ZLIB::ZLIB) ++ ++install(TARGETS mapnik ++ LIBRARY DESTINATION lib) ++ ++install(DIRECTORY include/ DESTINATION include/ CONFIGURATIONS Release) ++ ++add_subdirectory(src/json) ++add_subdirectory(src/wkt) ++ ++# ideally we should also generate mapnik-config ++ ++if (WITH_INPUT_CSV) ++ add_subdirectory(plugins/input/csv) ++endif() ++ ++if (WITH_INPUT_GDAL) ++ find_package(GDAL REQUIRED) ++ add_subdirectory(plugins/input/gdal) ++endif() ++ ++if (WITH_INPUT_GEOBUF) ++ # TODO insert protozero here ++ add_subdirectory(plugins/input/geobuf) ++endif() ++ ++if (WITH_INPUT_GEOJSON) ++ add_subdirectory(plugins/input/geojson) ++endif() ++ ++if (WITH_INPUT_OGR) ++ add_subdirectory(plugins/input/ogr) ++endif() ++ ++if (WITH_INPUT_PGRASTER) ++ find_package(PostgreSQL REQUIRED) ++ add_subdirectory(plugins/input/pgraster) ++endif() ++ ++if (WITH_INPUT_POSTGIS) ++ find_package(PostgreSQL REQUIRED) ++ add_subdirectory(plugins/input/postgis) ++endif() ++ ++if (WITH_INPUT_RASTER) ++ add_subdirectory(plugins/input/raster) ++endif() ++ ++if (WITH_INPUT_SHAPE) ++ add_subdirectory(plugins/input/shape) ++endif() ++ ++if (WITH_INPUT_SQLITE) ++ find_package(sqlite3 REQUIRED) ++ add_subdirectory(plugins/input/sqlite) ++endif() ++ ++if (WITH_INPUT_TOPOJSON) ++ add_subdirectory(plugins/input/topojson) ++endif() ++ ++if (WITH_INPUTS) ++ message(STATUS "Input plugins:") ++ if(WITH_INPUT_CSV ) ++ message(STATUS " - csv ") ++ endif() ++ if(WITH_INPUT_GDAL ) ++ message(STATUS " - gdal ") ++ endif() ++ if(WITH_INPUT_GEOBUF ) ++ message(STATUS " - geobuf ") ++ endif() ++ if(WITH_INPUT_GEOJSON ) ++ message(STATUS " - geojson ") ++ endif() ++ if(WITH_INPUT_OGR ) ++ message(STATUS " - ogr ") ++ endif() ++ if(WITH_INPUT_PGRASTER ) ++ message(STATUS " - pgraster") ++ endif() ++ if(WITH_INPUT_POSTGIS ) ++ message(STATUS " - postgis ") ++ endif() ++ if(WITH_INPUT_RASTER ) ++ message(STATUS " - raster ") ++ endif() ++ if(WITH_INPUT_SHAPE ) ++ message(STATUS " - shape ") ++ endif() ++ if(WITH_INPUT_SQLITE ) ++ message(STATUS " - sqlite ") ++ endif() ++ if(WITH_INPUT_TOPOJSON ) ++ message(STATUS " - topojson") ++ endif() ++else() ++ message(STATUS "Input plugins OFF") ++endif() ++ ++if(WITH_DEMO) ++ add_subdirectory(demo/c++) ++endif() ++ ++if(WITH_VIEWER) ++ find_package(Qt5 COMPONENTS Widgets REQUIRED) ++ add_subdirectory(demo/viewer) ++endif() ++ ++if(WITH_UTILS) ++ add_subdirectory(utils/mapnik-render) ++ add_subdirectory(utils/shapeindex) ++endif() +diff --git a/demo/c++/CMakeLists.txt b/demo/c++/CMakeLists.txt +new file mode 100644 +index 0000000..a0a48b8 +--- /dev/null ++++ b/demo/c++/CMakeLists.txt +@@ -0,0 +1,4 @@ ++add_executable(mapnik-demo rundemo.cpp) ++add_dependencies(mapnik-demo mapnik) ++target_link_libraries(mapnik-demo PRIVATE mapnik) ++install(TARGETS mapnik-demo DESTINATION bin) +diff --git a/demo/viewer/CMakeLists.txt b/demo/viewer/CMakeLists.txt +new file mode 100644 +index 0000000..86034a0 +--- /dev/null ++++ b/demo/viewer/CMakeLists.txt +@@ -0,0 +1,27 @@ ++add_executable(mapnik-viewer ++ about_dialog.cpp ++ info_dialog.cpp ++ layerdelegate.cpp ++ layerlistmodel.cpp ++ layerwidget.cpp ++ layer_info_dialog.cpp ++ main.cpp ++ mainwindow.cpp ++ mapwidget.cpp ++ styles_model.cpp ++ ++ forms/about.ui ++ forms/info.ui ++ forms/layer_info.ui ++ ++ mapnik_viewer.qrc) ++ ++set_target_properties(mapnik-viewer PROPERTIES ++ AUTOUIC_SEARCH_PATHS forms ++ AUTORCC ON ++ AUTOUIC ON ++ AUTOMOC ON) ++ ++add_dependencies(mapnik-viewer mapnik) ++target_link_libraries(mapnik-viewer PRIVATE mapnik Qt5::Widgets) ++install(TARGETS mapnik-viewer DESTINATION bin) +diff --git a/files.cmake b/files.cmake +new file mode 100644 +index 0000000..b9d767f +--- /dev/null ++++ b/files.cmake +@@ -0,0 +1,557 @@ ++set (MAPNIK_SOURCES ++ src/cairo_io.cpp ++ src/color.cpp ++ src/color_factory.cpp ++ src/config_error.cpp ++ src/conversions.cpp ++ src/css_color_grammar.cpp ++ src/dasharray_parser.cpp ++ src/datasource_cache.cpp ++ src/datasource_cache_static.cpp ++ src/debug.cpp ++ src/box2d.cpp ++ src/expression.cpp ++ src/expression_grammar.cpp ++ src/expression_node.cpp ++ src/expression_string.cpp ++ src/feature_kv_iterator.cpp ++ src/feature_style_processor.cpp ++ src/feature_type_style.cpp ++ src/font_engine_freetype.cpp ++ src/font_set.cpp ++ src/fs.cpp ++ src/function_call.cpp ++ src/geometry/interior.cpp ++ src/geometry_envelope.cpp ++ src/geometry_reprojection.cpp ++ src/gradient.cpp ++ src/group/group_layout_manager.cpp ++ src/group/group_rule.cpp ++ src/group/group_symbolizer_helper.cpp ++ src/image.cpp ++ src/image_any.cpp ++ src/image_compositing.cpp ++ src/image_copy.cpp ++ src/image_filter_grammar.cpp ++ src/image_filter_types.cpp ++ src/image_options.cpp ++ src/image_reader.cpp ++ src/image_scaling.cpp ++ src/image_util.cpp ++ src/image_util_jpeg.cpp ++ src/image_util_png.cpp ++ src/image_util_tiff.cpp ++ src/image_util_webp.cpp ++ src/image_view.cpp ++ src/image_view_any.cpp ++ src/layer.cpp ++ src/load_map.cpp ++ src/map.cpp ++ src/math.cpp ++ src/mapped_memory_cache.cpp ++ src/marker_cache.cpp ++ src/marker_helpers.cpp ++ src/memory_datasource.cpp ++ src/palette.cpp ++ src/params.cpp ++ src/parse_path.cpp ++ src/parse_transform.cpp ++ src/plugin.cpp ++ src/proj_transform.cpp ++ src/projection.cpp ++ src/raster_colorizer.cpp ++ src/renderer_common.cpp ++ src/renderer_common/pattern_alignment.cpp ++ src/renderer_common/render_group_symbolizer.cpp ++ src/renderer_common/render_markers_symbolizer.cpp ++ src/renderer_common/render_pattern.cpp ++ src/renderer_common/render_thunk_extractor.cpp ++ src/request.cpp ++ src/rule.cpp ++ src/save_map.cpp ++ src/scale_denominator.cpp ++ src/simplify.cpp ++ src/svg/svg_parser.cpp ++ src/svg/svg_path_parser.cpp ++ src/svg/svg_points_parser.cpp ++ src/svg/svg_transform_parser.cpp ++ src/symbolizer.cpp ++ src/symbolizer_enumerations.cpp ++ src/symbolizer_keys.cpp ++ src/text/face.cpp ++ src/text/font_feature_settings.cpp ++ src/text/font_library.cpp ++ src/text/formatting/base.cpp ++ src/text/formatting/format.cpp ++ src/text/formatting/layout.cpp ++ src/text/formatting/list.cpp ++ src/text/formatting/registry.cpp ++ src/text/formatting/text.cpp ++ src/text/glyph_positions.cpp ++ src/text/itemizer.cpp ++ src/text/placement_finder.cpp ++ src/text/placements/base.cpp ++ src/text/placements/dummy.cpp ++ src/text/placements/list.cpp ++ src/text/placements/registry.cpp ++ src/text/placements/simple.cpp ++ src/text/properties_util.cpp ++ src/text/renderer.cpp ++ src/text/scrptrun.cpp ++ src/text/symbolizer_helpers.cpp ++ src/text/text_layout.cpp ++ src/text/text_line.cpp ++ src/text/text_properties.cpp ++ src/transform_expression.cpp ++ src/transform_expression_grammar.cpp ++ src/twkb.cpp ++ src/unicode.cpp ++ src/util/utf_conv_win.cpp ++ src/value.cpp ++ src/vertex_adapters.cpp ++ src/vertex_cache.cpp ++ src/warp.cpp ++ src/well_known_srs.cpp ++ src/wkb.cpp ++ src/xml_tree.cpp ++ ) ++ ++ ++set(MAPNIK_AGG_SOURCES ++ src/agg/agg_renderer.cpp ++ src/agg/process_building_symbolizer.cpp ++ src/agg/process_debug_symbolizer.cpp ++ src/agg/process_dot_symbolizer.cpp ++ src/agg/process_group_symbolizer.cpp ++ src/agg/process_line_pattern_symbolizer.cpp ++ src/agg/process_line_symbolizer.cpp ++ src/agg/process_markers_symbolizer.cpp ++ src/agg/process_point_symbolizer.cpp ++ src/agg/process_polygon_pattern_symbolizer.cpp ++ src/agg/process_polygon_symbolizer.cpp ++ src/agg/process_raster_symbolizer.cpp ++ src/agg/process_shield_symbolizer.cpp ++ src/agg/process_text_symbolizer.cpp) ++ ++ ++set(AGG_SOURCES ++ deps/agg/src/agg_arc.cpp ++ deps/agg/src/agg_arrowhead.cpp ++ deps/agg/src/agg_bezier_arc.cpp ++ deps/agg/src/agg_bspline.cpp ++ deps/agg/src/agg_curves.cpp ++ deps/agg/src/agg_embedded_raster_fonts.cpp ++ deps/agg/src/agg_gsv_text.cpp ++ deps/agg/src/agg_image_filters.cpp ++ deps/agg/src/agg_line_aa_basics.cpp ++ deps/agg/src/agg_line_profile_aa.cpp ++ deps/agg/src/agg_pixfmt_rgba.cpp ++ deps/agg/src/agg_rounded_rect.cpp ++ deps/agg/src/agg_sqrt_tables.cpp ++ deps/agg/src/agg_trans_affine.cpp ++ deps/agg/src/agg_trans_double_path.cpp ++ deps/agg/src/agg_trans_single_path.cpp ++ deps/agg/src/agg_trans_warp_magnifier.cpp ++ deps/agg/src/agg_vcgen_bspline.cpp ++ deps/agg/src/agg_vcgen_contour.cpp ++ deps/agg/src/agg_vcgen_dash.cpp ++ deps/agg/src/agg_vcgen_markers_term.cpp ++ deps/agg/src/agg_vcgen_stroke.cpp ++ deps/agg/src/agg_vcgen_smooth_poly1.cpp ++ deps/agg/src/agg_vpgen_clip_polygon.cpp ++ deps/agg/src/agg_vpgen_clip_polyline.cpp ++ deps/agg/src/agg_vpgen_segmentator.cpp ) ++ ++set(MAPNIK_INC ++ mapnik/adaptive_smooth.hpp ++ mapnik/agg_helpers.hpp ++ mapnik/agg_pattern_source.hpp ++ mapnik/agg_rasterizer.hpp ++ mapnik/agg_renderer.hpp ++ mapnik/agg_render_marker.hpp ++ mapnik/attribute.hpp ++ mapnik/attribute_collector.hpp ++ mapnik/attribute_descriptor.hpp ++ mapnik/boolean.hpp ++ mapnik/boost_spirit_instantiate.hpp ++ mapnik/cairo_io.hpp ++ mapnik/color.hpp ++ mapnik/color_factory.hpp ++ mapnik/config.hpp ++ mapnik/config_error.hpp ++ mapnik/coord.hpp ++ mapnik/css_color_grammar.hpp ++ mapnik/css_color_grammar_impl.hpp ++ mapnik/cxx11_support.hpp ++ mapnik/datasource.hpp ++ mapnik/datasource_cache.hpp ++ mapnik/datasource_geometry_type.hpp ++ mapnik/debug.hpp ++ mapnik/enumeration.hpp ++ mapnik/evaluate_global_attributes.hpp ++ mapnik/expression.hpp ++ mapnik/expression_evaluator.hpp ++ mapnik/expression_grammar.hpp ++ mapnik/expression_grammar_config.hpp ++ mapnik/expression_grammar_def.hpp ++ mapnik/expression_node.hpp ++ mapnik/expression_node_types.hpp ++ mapnik/expression_string.hpp ++ mapnik/extend_converter.hpp ++ mapnik/factory.hpp ++ mapnik/feature.hpp ++ mapnik/featureset.hpp ++ mapnik/feature_factory.hpp ++ mapnik/feature_kv_iterator.hpp ++ mapnik/feature_layer_desc.hpp ++ mapnik/feature_style_processor.hpp ++ mapnik/feature_style_processor_context.hpp ++ mapnik/feature_style_processor_impl.hpp ++ mapnik/feature_type_style.hpp ++ mapnik/filter_featureset.hpp ++ mapnik/font_engine_freetype.hpp ++ mapnik/font_set.hpp ++ mapnik/function_call.hpp ++ mapnik/geometry.hpp ++ mapnik/geom_util.hpp ++ mapnik/global.hpp ++ mapnik/gradient.hpp ++ mapnik/grid_vertex_converter.hpp ++ mapnik/hextree.hpp ++ mapnik/hit_test_filter.hpp ++ mapnik/image.hpp ++ mapnik/image_any.hpp ++ mapnik/image_compositing.hpp ++ mapnik/image_copy.hpp ++ mapnik/image_filter.hpp ++ mapnik/image_filter_grammar.hpp ++ mapnik/image_filter_grammar_def.hpp ++ mapnik/image_filter_types.hpp ++ mapnik/image_impl.hpp ++ mapnik/image_null.hpp ++ mapnik/image_options.hpp ++ mapnik/image_reader.hpp ++ mapnik/image_scaling.hpp ++ mapnik/image_scaling_traits.hpp ++ mapnik/image_util.hpp ++ mapnik/image_util_jpeg.hpp ++ mapnik/image_util_png.hpp ++ mapnik/image_util_tiff.hpp ++ mapnik/image_util_webp.hpp ++ mapnik/image_view.hpp ++ mapnik/image_view_any.hpp ++ mapnik/image_view_impl.hpp ++ mapnik/image_view_null.hpp ++ mapnik/init_priority.hpp ++ mapnik/jpeg_io.hpp ++ mapnik/label_collision_detector.hpp ++ mapnik/layer.hpp ++ mapnik/load_map.hpp ++ mapnik/make_unique.hpp ++ mapnik/map.hpp ++ mapnik/mapped_memory_cache.hpp ++ mapnik/marker.hpp ++ mapnik/markers_placement.hpp ++ mapnik/marker_cache.hpp ++ mapnik/marker_helpers.hpp ++ mapnik/memory_datasource.hpp ++ mapnik/memory_featureset.hpp ++ mapnik/octree.hpp ++ mapnik/offset_converter.hpp ++ mapnik/palette.hpp ++ mapnik/params.hpp ++ mapnik/params_impl.hpp ++ mapnik/parse_path.hpp ++ mapnik/path.hpp ++ mapnik/path_expression.hpp ++ mapnik/path_expression_grammar.hpp ++ mapnik/path_expression_grammar_def.hpp ++ mapnik/pixel_position.hpp ++ mapnik/pixel_types.hpp ++ mapnik/plugin.hpp ++ mapnik/png_io.hpp ++ mapnik/pool.hpp ++ mapnik/projection.hpp ++ mapnik/proj_strategy.hpp ++ mapnik/proj_transform.hpp ++ mapnik/ptree_helpers.hpp ++ mapnik/quad_tree.hpp ++ mapnik/query.hpp ++ mapnik/raster.hpp ++ mapnik/raster_colorizer.hpp ++ mapnik/renderer_common.hpp ++ mapnik/request.hpp ++ mapnik/rule.hpp ++ mapnik/rule_cache.hpp ++ mapnik/safe_cast.hpp ++ mapnik/save_map.hpp ++ mapnik/scale_denominator.hpp ++ mapnik/simplify.hpp ++ mapnik/simplify_converter.hpp ++ mapnik/span_image_filter.hpp ++ mapnik/sql_utils.hpp ++ mapnik/sse.hpp ++ mapnik/stringify_macro.hpp ++ mapnik/symbolizer.hpp ++ mapnik/symbolizer_base.hpp ++ mapnik/symbolizer_default_values.hpp ++ mapnik/symbolizer_dispatch.hpp ++ mapnik/symbolizer_enumerations.hpp ++ mapnik/symbolizer_hash.hpp ++ mapnik/symbolizer_keys.hpp ++ mapnik/symbolizer_utils.hpp ++ mapnik/tiff_io.hpp ++ mapnik/timer.hpp ++ mapnik/tolerance_iterator.hpp ++ mapnik/transform_path_adapter.hpp ++ mapnik/unicode.hpp ++ mapnik/value.hpp ++ mapnik/version.hpp ++ mapnik/vertex.hpp ++ mapnik/vertex_adapters.hpp ++ mapnik/vertex_cache.hpp ++ mapnik/vertex_converters.hpp ++ mapnik/vertex_processor.hpp ++ mapnik/vertex_vector.hpp ++ mapnik/view_strategy.hpp ++ mapnik/view_transform.hpp ++ mapnik/warning_ignore.hpp ++ mapnik/warning_ignore_agg.hpp ++ mapnik/warp.hpp ++ mapnik/webp_io.hpp ++ mapnik/well_known_srs.hpp ++ mapnik/wkb.hpp ++ mapnik/xml_attribute_cast.hpp ++ mapnik/xml_loader.hpp ++ mapnik/xml_node.hpp ++ mapnik/xml_tree.hpp ++ mapnik/geometry/boost_adapters.hpp ++ mapnik/geometry/boost_spirit_karma_adapter.hpp ++ mapnik/geometry/box2d.hpp ++ mapnik/geometry/box2d_impl.hpp ++ mapnik/geometry/centroid.hpp ++ mapnik/geometry/closest_point.hpp ++ mapnik/geometry/correct.hpp ++ mapnik/geometry/envelope.hpp ++ mapnik/geometry/envelope_impl.hpp ++ mapnik/geometry/fusion_adapted.hpp ++ mapnik/geometry/geometry_type.hpp ++ mapnik/geometry/geometry_types.hpp ++ mapnik/geometry/interior.hpp ++ mapnik/geometry/is_empty.hpp ++ mapnik/geometry/is_simple.hpp ++ mapnik/geometry/is_valid.hpp ++ mapnik/geometry/line_string.hpp ++ mapnik/geometry/multi_line_string.hpp ++ mapnik/geometry/multi_point.hpp ++ mapnik/geometry/multi_polygon.hpp ++ mapnik/geometry/point.hpp ++ mapnik/geometry/polygon.hpp ++ mapnik/geometry/polygon_vertex_processor.hpp ++ mapnik/geometry/polylabel.hpp ++ mapnik/geometry/remove_empty.hpp ++ mapnik/geometry/reprojection.hpp ++ mapnik/geometry/reprojection_impl.hpp ++ mapnik/geometry/strategy.hpp ++ mapnik/geometry/to_path.hpp ++ mapnik/geometry/transform.hpp ++ mapnik/csv/csv_grammar_x3.hpp ++ mapnik/csv/csv_grammar_x3_def.hpp ++ mapnik/csv/csv_types.hpp ++ mapnik/svg/geometry_svg_generator.hpp ++ mapnik/svg/geometry_svg_generator_impl.hpp ++ mapnik/svg/svg_converter.hpp ++ mapnik/svg/svg_grammar_config_x3.hpp ++ mapnik/svg/svg_parser.hpp ++ mapnik/svg/svg_parser_exception.hpp ++ mapnik/svg/svg_path_adapter.hpp ++ mapnik/svg/svg_path_attributes.hpp ++ mapnik/svg/svg_path_commands.hpp ++ mapnik/svg/svg_path_grammar_x3.hpp ++ mapnik/svg/svg_path_grammar_x3_def.hpp ++ mapnik/svg/svg_path_parser.hpp ++ mapnik/svg/svg_renderer_agg.hpp ++ mapnik/svg/svg_storage.hpp ++ mapnik/svg/svg_transform_grammar_x3.hpp ++ mapnik/svg/svg_transform_grammar_x3_def.hpp ++ mapnik/wkt/wkt_factory.hpp ++ mapnik/wkt/wkt_generator_grammar.hpp ++ mapnik/wkt/wkt_generator_grammar_impl.hpp ++ mapnik/wkt/wkt_grammar_x3.hpp ++ mapnik/wkt/wkt_grammar_x3_def.hpp ++ mapnik/cairo/cairo_context.hpp ++ mapnik/cairo/cairo_image_util.hpp ++ mapnik/cairo/cairo_renderer.hpp ++ mapnik/cairo/cairo_render_vector.hpp ++ mapnik/cairo/render_polygon_pattern.hpp ++ mapnik/grid/grid.hpp ++ mapnik/grid/grid_pixel.hpp ++ mapnik/grid/grid_pixfmt.hpp ++ mapnik/grid/grid_rasterizer.hpp ++ mapnik/grid/grid_renderer.hpp ++ mapnik/grid/grid_renderer_base.hpp ++ mapnik/grid/grid_rendering_buffer.hpp ++ mapnik/grid/grid_render_marker.hpp ++ mapnik/grid/grid_view.hpp ++ mapnik/json/attribute_value_visitor.hpp ++ mapnik/json/create_feature.hpp ++ mapnik/json/create_geometry.hpp ++ mapnik/json/extract_bounding_boxes.hpp ++ mapnik/json/extract_bounding_boxes_config.hpp ++ mapnik/json/feature_generator_grammar.hpp ++ mapnik/json/feature_generator_grammar_impl.hpp ++ mapnik/json/feature_grammar_x3.hpp ++ mapnik/json/feature_grammar_x3_def.hpp ++ mapnik/json/feature_parser.hpp ++ mapnik/json/generic_json_grammar_x3.hpp ++ mapnik/json/generic_json_grammar_x3_def.hpp ++ mapnik/json/geojson_grammar_x3.hpp ++ mapnik/json/geojson_grammar_x3_def.hpp ++ mapnik/json/geometry_generator_grammar.hpp ++ mapnik/json/geometry_generator_grammar_impl.hpp ++ mapnik/json/geometry_parser.hpp ++ mapnik/json/json_grammar_config.hpp ++ mapnik/json/json_value.hpp ++ mapnik/json/parse_feature.hpp ++ mapnik/json/positions_grammar_x3.hpp ++ mapnik/json/positions_grammar_x3_def.hpp ++ mapnik/json/positions_x3.hpp ++ mapnik/json/properties_generator_grammar.hpp ++ mapnik/json/properties_generator_grammar_impl.hpp ++ mapnik/json/stringifier.hpp ++ mapnik/json/topojson_grammar_x3.hpp ++ mapnik/json/topojson_grammar_x3_def.hpp ++ mapnik/json/topojson_utils.hpp ++ mapnik/json/topology.hpp ++ mapnik/json/unicode_string_grammar_x3.hpp ++ mapnik/json/unicode_string_grammar_x3_def.hpp ++ mapnik/json/value_converters.hpp ++ mapnik/util/char_array_buffer.hpp ++ mapnik/util/const_rendering_buffer.hpp ++ mapnik/util/container_adapter.hpp ++ mapnik/util/conversions.hpp ++ mapnik/util/dasharray_parser.hpp ++ mapnik/util/featureset_buffer.hpp ++ mapnik/util/feature_to_geojson.hpp ++ mapnik/util/file_io.hpp ++ mapnik/util/fs.hpp ++ mapnik/util/geometry_to_ds_type.hpp ++ mapnik/util/geometry_to_geojson.hpp ++ mapnik/util/geometry_to_svg.hpp ++ mapnik/util/geometry_to_wkb.hpp ++ mapnik/util/geometry_to_wkt.hpp ++ mapnik/util/hsl.hpp ++ mapnik/util/is_clockwise.hpp ++ mapnik/util/math.hpp ++ mapnik/util/name_to_int.hpp ++ mapnik/util/noncopyable.hpp ++ mapnik/util/path_iterator.hpp ++ mapnik/util/rounding_cast.hpp ++ mapnik/util/singleton.hpp ++ mapnik/util/spatial_index.hpp ++ mapnik/util/spirit_transform_attribute.hpp ++ mapnik/util/timer.hpp ++ mapnik/util/trim.hpp ++ mapnik/util/utf_conv_win.hpp ++ mapnik/util/variant.hpp ++ mapnik/util/variant_io.hpp ++ mapnik/group/group_layout.hpp ++ mapnik/group/group_layout_manager.hpp ++ mapnik/group/group_rule.hpp ++ mapnik/group/group_symbolizer_helper.hpp ++ mapnik/group/group_symbolizer_properties.hpp ++ mapnik/text/color_font_renderer.hpp ++ mapnik/text/evaluated_format_properties_ptr.hpp ++ mapnik/text/face.hpp ++ mapnik/text/font_feature_settings.hpp ++ mapnik/text/font_library.hpp ++ mapnik/text/glyph_info.hpp ++ mapnik/text/glyph_positions.hpp ++ mapnik/text/harfbuzz_shaper.hpp ++ mapnik/text/icu_shaper.hpp ++ mapnik/text/itemizer.hpp ++ mapnik/text/placement_finder.hpp ++ mapnik/text/placement_finder_impl.hpp ++ mapnik/text/properties_util.hpp ++ mapnik/text/renderer.hpp ++ mapnik/text/rotation.hpp ++ mapnik/text/scrptrun.hpp ++ mapnik/text/symbolizer_helpers.hpp ++ mapnik/text/text_layout.hpp ++ mapnik/text/text_line.hpp ++ mapnik/text/text_properties.hpp ++ mapnik/text/placements/base.hpp ++ mapnik/text/placements/dummy.hpp ++ mapnik/text/placements/list.hpp ++ mapnik/text/placements/registry.hpp ++ mapnik/text/placements/simple.hpp ++ mapnik/text/formatting/base.hpp ++ mapnik/text/formatting/format.hpp ++ mapnik/text/formatting/layout.hpp ++ mapnik/text/formatting/list.hpp ++ mapnik/text/formatting/registry.hpp ++ mapnik/text/formatting/text.hpp ++ mapnik/transform/parse_transform.hpp ++ mapnik/transform/transform_expression.hpp ++ mapnik/transform/transform_expression_grammar_x3.hpp ++ mapnik/transform/transform_expression_grammar_x3_def.hpp ++ mapnik/transform/transform_processor.hpp ++ mapnik/markers_placements/basic.hpp ++ mapnik/markers_placements/interior.hpp ++ mapnik/markers_placements/line.hpp ++ mapnik/markers_placements/point.hpp ++ mapnik/markers_placements/polylabel.hpp ++ mapnik/markers_placements/vertex_first.hpp ++ mapnik/markers_placements/vertex_last.hpp ++ mapnik/geometry/boost_adapters.hpp ++ mapnik/geometry/boost_spirit_karma_adapter.hpp ++ mapnik/geometry/box2d.hpp ++ mapnik/geometry/box2d_impl.hpp ++ mapnik/geometry/centroid.hpp ++ mapnik/geometry/closest_point.hpp ++ mapnik/geometry/correct.hpp ++ mapnik/geometry/envelope.hpp ++ mapnik/geometry/envelope_impl.hpp ++ mapnik/geometry/fusion_adapted.hpp ++ mapnik/geometry/geometry_type.hpp ++ mapnik/geometry/geometry_types.hpp ++ mapnik/geometry/interior.hpp ++ mapnik/geometry/is_empty.hpp ++ mapnik/geometry/is_simple.hpp ++ mapnik/geometry/is_valid.hpp ++ mapnik/geometry/line_string.hpp ++ mapnik/geometry/multi_line_string.hpp ++ mapnik/geometry/multi_point.hpp ++ mapnik/geometry/multi_polygon.hpp ++ mapnik/geometry/point.hpp ++ mapnik/geometry/polygon.hpp ++ mapnik/geometry/polygon_vertex_processor.hpp ++ mapnik/geometry/polylabel.hpp ++ mapnik/geometry/remove_empty.hpp ++ mapnik/geometry/reprojection.hpp ++ mapnik/geometry/reprojection_impl.hpp ++ mapnik/geometry/strategy.hpp ++ mapnik/geometry/to_path.hpp ++ mapnik/geometry/transform.hpp ++ mapnik/value/error.hpp ++ mapnik/value/hash.hpp ++ mapnik/value/types.hpp) ++ ++set(MAPNIK_INC ${MAPNIK_INC} ++ mapnik/svg/output/svg_generator.hpp ++ mapnik/svg/output/svg_output_attributes.hpp ++ mapnik/svg/output/svg_output_grammars.hpp ++ mapnik/svg/output/svg_output_grammars_impl.hpp ++ mapnik/svg/output/svg_path_iterator.hpp ++ mapnik/svg/output/svg_renderer.hpp) ++ ++set(MAPNIK_INC ${MAPNIK_INC} ++ mapnik/grid/grid.hpp ++ mapnik/grid/grid_pixel.hpp ++ mapnik/grid/grid_pixfmt.hpp ++ mapnik/grid/grid_rasterizer.hpp ++ mapnik/grid/grid_renderer.hpp ++ mapnik/grid/grid_renderer_base.hpp ++ mapnik/grid/grid_rendering_buffer.hpp ++ mapnik/grid/grid_render_marker.hpp ++ mapnik/grid/grid_view.hpp) +\ No newline at end of file +diff --git a/include/mapnik/config.hpp b/include/mapnik/config.hpp +index a9168e5..9bdcad4 100644 +--- a/include/mapnik/config.hpp ++++ b/include/mapnik/config.hpp +@@ -30,8 +30,10 @@ + # define MAPNIK_IMP __declspec (dllimport) + # ifdef MAPNIK_EXPORTS + # define MAPNIK_DECL __declspec (dllexport) +-# else ++# elif !defined(MAPNIK_STATICLIB) + # define MAPNIK_DECL __declspec (dllimport) ++# else ++# define MAPNIK_DECL + # endif + # pragma warning( disable: 4251 ) + # pragma warning( disable: 4275 ) +diff --git a/include/mapnik/geometry.hpp b/include/mapnik/geometry.hpp +index aae2bf3..6484dd3 100644 +--- a/include/mapnik/geometry.hpp ++++ b/include/mapnik/geometry.hpp +@@ -146,7 +146,7 @@ struct geometry : geometry_base + { + using coord_type = T; + +-#if __cpp_inheriting_constructors >= 200802 ++#if __cpp_inheriting_constructors >= 200802 && !defined (_MSC_VER) + + using geometry_base::geometry_base; + +diff --git a/include/mapnik/json/generic_json.hpp b/include/mapnik/json/generic_json.hpp +index 65c04c4..6c04609 100644 +--- a/include/mapnik/json/generic_json.hpp ++++ b/include/mapnik/json/generic_json.hpp +@@ -57,7 +57,7 @@ using json_value_base = mapnik::util::variant >; + struct json_value : json_value_base + { +-#if __cpp_inheriting_constructors >= 200802 ++#if __cpp_inheriting_constructors >= 200802 && !defined (_MSC_VER) + + using json_value_base::json_value_base; + +diff --git a/plugins/input/csv/CMakeLists.txt b/plugins/input/csv/CMakeLists.txt +new file mode 100644 +index 0000000..34a2e75 +--- /dev/null ++++ b/plugins/input/csv/CMakeLists.txt +@@ -0,0 +1,12 @@ ++add_library(mapnik-input-csv SHARED ++ csv_datasource.cpp ++ csv_featureset.cpp ++ csv_index_featureset.cpp ++ csv_inline_featureset.cpp ++ csv_utils.cpp) ++ ++target_link_libraries(mapnik-input-csv PUBLIC mapnik mapnik-wkt mapnik-json) ++set_target_properties(mapnik-input-csv PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-csv PROPERTIES OUTPUT_NAME "csv") ++set_target_properties(mapnik-input-csv PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-csv DESTINATION bin/plugins/input) +\ No newline at end of file +diff --git a/plugins/input/gdal/CMakeLists.txt b/plugins/input/gdal/CMakeLists.txt +new file mode 100644 +index 0000000..274ee44 +--- /dev/null ++++ b/plugins/input/gdal/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-gdal SHARED ++ gdal_datasource.cpp ++ gdal_featureset.cpp) ++ ++target_link_libraries(mapnik-input-gdal PUBLIC mapnik ${GDAL_LIBRARIES}) ++set_target_properties(mapnik-input-gdal PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-gdal PROPERTIES OUTPUT_NAME "gdal") ++set_target_properties(mapnik-input-gdal PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-gdal DESTINATION bin/plugins/input) +diff --git a/plugins/input/geobuf/CMakeLists.txt b/plugins/input/geobuf/CMakeLists.txt +new file mode 100644 +index 0000000..1b798e5 +--- /dev/null ++++ b/plugins/input/geobuf/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-geobuf SHARED ++ geobuf_datasource.cpp ++ geobuf_featureset.cpp) ++ ++target_link_libraries(mapnik-input-geobuf PUBLIC mapnik) ++set_target_properties(mapnik-input-geobuf PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-geobuf PROPERTIES OUTPUT_NAME "geobuf") ++set_target_properties(mapnik-input-geobuf PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-geobuf DESTINATION bin/plugins/input) +diff --git a/plugins/input/geojson/CMakeLists.txt b/plugins/input/geojson/CMakeLists.txt +new file mode 100644 +index 0000000..fb53a3c +--- /dev/null ++++ b/plugins/input/geojson/CMakeLists.txt +@@ -0,0 +1,11 @@ ++add_library(mapnik-input-geojson SHARED ++ geojson_datasource.cpp ++ geojson_featureset.cpp ++ geojson_index_featureset.cpp ++ geojson_memory_index_featureset.cpp) ++ ++target_link_libraries(mapnik-input-geojson PUBLIC mapnik mapnik-json) ++set_target_properties(mapnik-input-geojson PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-geojson PROPERTIES OUTPUT_NAME "geojson") ++set_target_properties(mapnik-input-geojson PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-geojson DESTINATION bin/plugins/input) +diff --git a/plugins/input/ogr/CMakeLists.txt b/plugins/input/ogr/CMakeLists.txt +new file mode 100644 +index 0000000..6d7fd9a +--- /dev/null ++++ b/plugins/input/ogr/CMakeLists.txt +@@ -0,0 +1,11 @@ ++add_library(mapnik-input-ogr SHARED ++ ogr_converter.cpp ++ ogr_datasource.cpp ++ ogr_featureset.cpp ++ ogr_index_featureset.cpp) ++ ++target_link_libraries(mapnik-input-ogr PUBLIC mapnik ${OGR_LIBRARIES} ${GDAL_LIBRARIES}) ++set_target_properties(mapnik-input-ogr PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-ogr PROPERTIES OUTPUT_NAME "ogr") ++set_target_properties(mapnik-input-ogr PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-ogr DESTINATION bin/plugins/input) +diff --git a/plugins/input/pgraster/CMakeLists.txt b/plugins/input/pgraster/CMakeLists.txt +new file mode 100644 +index 0000000..ada5d08 +--- /dev/null ++++ b/plugins/input/pgraster/CMakeLists.txt +@@ -0,0 +1,10 @@ ++add_library(mapnik-input-pgraster SHARED ++ pgraster_datasource.cpp ++ pgraster_featureset.cpp ++ pgraster_wkb_reader.cpp) ++ ++target_link_libraries(mapnik-input-pgraster PUBLIC mapnik ${PostgreSQL_LIBRARIES}) ++set_target_properties(mapnik-input-pgraster PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-pgraster PROPERTIES OUTPUT_NAME "pgraster") ++set_target_properties(mapnik-input-pgraster PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-pgraster DESTINATION bin/plugins/input) +diff --git a/plugins/input/postgis/CMakeLists.txt b/plugins/input/postgis/CMakeLists.txt +new file mode 100644 +index 0000000..385faa3 +--- /dev/null ++++ b/plugins/input/postgis/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-postgis SHARED ++ postgis_datasource.cpp ++ postgis_featureset.cpp ) ++ ++target_link_libraries(mapnik-input-postgis PUBLIC mapnik ${PostgreSQL_LIBRARIES}) ++set_target_properties(mapnik-input-postgis PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-postgis PROPERTIES OUTPUT_NAME "postgis") ++set_target_properties(mapnik-input-postgis PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-postgis DESTINATION bin/plugins/input) +diff --git a/plugins/input/raster/CMakeLists.txt b/plugins/input/raster/CMakeLists.txt +new file mode 100644 +index 0000000..b08be98 +--- /dev/null ++++ b/plugins/input/raster/CMakeLists.txt +@@ -0,0 +1,10 @@ ++add_library(mapnik-input-raster SHARED ++ raster_datasource.cpp ++ raster_featureset.cpp ++ raster_info.cpp) ++ ++target_link_libraries(mapnik-input-raster PUBLIC mapnik) ++set_target_properties(mapnik-input-raster PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-raster PROPERTIES OUTPUT_NAME "raster") ++set_target_properties(mapnik-input-raster PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-raster DESTINATION bin/plugins/input) +diff --git a/plugins/input/shape/CMakeLists.txt b/plugins/input/shape/CMakeLists.txt +new file mode 100644 +index 0000000..cac54dd +--- /dev/null ++++ b/plugins/input/shape/CMakeLists.txt +@@ -0,0 +1,9 @@ ++SET(INPUT_SHAPE_SOURCES ++ dbfile.cpp dbf_test.cpp shape_datasource.cpp shape_featureset.cpp shape_index_featureset.cpp shape_io.cpp shape_utils.cpp) ++ ++add_library(mapnik-input-shape SHARED ${INPUT_SHAPE_SOURCES}) ++target_link_libraries(mapnik-input-shape PUBLIC mapnik) ++set_target_properties(mapnik-input-shape PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-shape PROPERTIES OUTPUT_NAME "shape") ++set_target_properties(mapnik-input-shape PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-shape DESTINATION bin/plugins/input) +diff --git a/plugins/input/sqlite/CMakeLists.txt b/plugins/input/sqlite/CMakeLists.txt +new file mode 100644 +index 0000000..b84528e +--- /dev/null ++++ b/plugins/input/sqlite/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-sqlite SHARED ++ sqlite_datasource.cpp ++ sqlite_featureset.cpp) ++ ++target_link_libraries(mapnik-input-sqlite PUBLIC mapnik SQLite::SQLite3) ++set_target_properties(mapnik-input-sqlite PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-sqlite PROPERTIES OUTPUT_NAME "sqlite") ++set_target_properties(mapnik-input-sqlite PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-sqlite DESTINATION bin/plugins/input) +diff --git a/plugins/input/topojson/CMakeLists.txt b/plugins/input/topojson/CMakeLists.txt +new file mode 100644 +index 0000000..aeb559b +--- /dev/null ++++ b/plugins/input/topojson/CMakeLists.txt +@@ -0,0 +1,9 @@ ++add_library(mapnik-input-topojson SHARED ++ topojson_datasource.cpp ++ topojson_featureset.cpp) ++ ++target_link_libraries(mapnik-input-topojson PUBLIC mapnik mapnik-json) ++set_target_properties(mapnik-input-topojson PROPERTIES PREFIX "") ++set_target_properties(mapnik-input-topojson PROPERTIES OUTPUT_NAME "topojson") ++set_target_properties(mapnik-input-topojson PROPERTIES SUFFIX ".input") ++install(TARGETS mapnik-input-topojson DESTINATION bin/plugins/input) +diff --git a/src/agg/CMakeLists.txt b/src/agg/CMakeLists.txt +new file mode 100644 +index 0000000..e69de29 +diff --git a/src/geometry/CMakeLists.txt b/src/geometry/CMakeLists.txt +new file mode 100644 +index 0000000..e69de29 +diff --git a/src/json/CMakeLists.txt b/src/json/CMakeLists.txt +new file mode 100644 +index 0000000..76a23b9 +--- /dev/null ++++ b/src/json/CMakeLists.txt +@@ -0,0 +1,17 @@ ++add_library(mapnik-json STATIC ++ generic_json.cpp ++ mapnik_geometry_to_geojson.cpp ++ mapnik_json_feature_collection_grammar.cpp ++ mapnik_json_feature_grammar.cpp ++ mapnik_json_generator_grammar.cpp ++ mapnik_json_geometry_grammar.cpp ++ mapnik_json_geometry_parser.cpp ++ mapnik_json_positions_grammar.cpp ++ mapnik_topojson_grammar.cpp ++) ++ ++ ++target_link_libraries(mapnik-json INTERFACE ${ICUU_LIB}) ++ ++install(TARGETS mapnik-json LIBRARY DESTINATION lib) ++target_compile_definitions(mapnik-json PRIVATE ${MAPNIK_LIB_DEFINITION}) +diff --git a/src/wkt/CMakeLists.txt b/src/wkt/CMakeLists.txt +new file mode 100644 +index 0000000..dbaf010 +--- /dev/null ++++ b/src/wkt/CMakeLists.txt +@@ -0,0 +1,7 @@ ++add_library(mapnik-wkt STATIC ++ mapnik_wkt_grammar.cpp ++ mapnik_wkt_generator_grammar.cpp ++) ++ ++install(TARGETS mapnik-wkt LIBRARY DESTINATION lib) ++target_compile_definitions(mapnik-json PRIVATE ${MAPNIK_LIB_DEFINITION}) +diff --git a/utils/mapnik-render/CMakeLists.txt b/utils/mapnik-render/CMakeLists.txt +new file mode 100644 +index 0000000..7cfff00 +--- /dev/null ++++ b/utils/mapnik-render/CMakeLists.txt +@@ -0,0 +1,3 @@ ++add_executable(mapnik-render mapnik-render.cpp) ++target_link_libraries(mapnik-render PRIVATE mapnik) ++install(TARGETS mapnik-render DESTINATION tools) +diff --git a/utils/shapeindex/CMakeLists.txt b/utils/shapeindex/CMakeLists.txt +new file mode 100644 +index 0000000..484200a +--- /dev/null ++++ b/utils/shapeindex/CMakeLists.txt +@@ -0,0 +1,4 @@ ++add_executable(shapeindex shapeindex.cpp) ++target_link_libraries(shapeindex PRIVATE mapnik) ++target_include_directories(shapeindex PRIVATE ../../plugins/input/shape) ++install(TARGETS shapeindex DESTINATION tools) diff --git a/ports/mapnik/0002-sqlitepixelwidth.patch b/ports/mapnik/0002-sqlitepixelwidth.patch new file mode 100644 index 00000000000000..df0e27ac13ee03 --- /dev/null +++ b/ports/mapnik/0002-sqlitepixelwidth.patch @@ -0,0 +1,120 @@ +diff --git a/plugins/input/sqlite/sqlite_datasource.cpp b/plugins/input/sqlite/sqlite_datasource.cpp +index 28add64..286edce 100644 +--- a/plugins/input/sqlite/sqlite_datasource.cpp ++++ b/plugins/input/sqlite/sqlite_datasource.cpp +@@ -67,6 +67,8 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + row_offset_(*params.get("row_offset", 0)), + row_limit_(*params.get("row_limit", 0)), + intersects_token_("!intersects!"), ++ pixel_width_token_("!pixel_width!"), ++ pixel_height_token_("!pixel_height!"), + desc_(sqlite_datasource::name(), *params.get("encoding", "utf-8")), + format_(mapnik::wkbAuto) + { +@@ -211,7 +213,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + if (using_subquery_) + { + std::ostringstream s; +- std::string query = populate_tokens(table_); ++ std::string query = populate_tokens(table_,0,0); + s << "SELECT " << fields_ << " FROM (" << query << ") LIMIT 1"; + found_types_via_subquery = sqlite_utils::detect_types_from_subquery( + s.str(), +@@ -333,7 +335,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + mapnik::progress_timer __stats2__(std::clog, "sqlite_datasource::init(detect_extent)"); + #endif + // TODO - clean this up - reducing arguments +- std::string query = populate_tokens(table_); ++ std::string query = populate_tokens(table_,0,0); + if (!sqlite_utils::detect_extent(dataset_, + has_spatial_index_, + extent_, +@@ -356,7 +358,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + + } + +-std::string sqlite_datasource::populate_tokens(std::string const& sql) const ++std::string sqlite_datasource::populate_tokens(std::string const& sql, double pixel_width, double pixel_height) const + { + std::string populated_sql = sql; + if (boost::algorithm::ifind_first(populated_sql, intersects_token_)) +@@ -364,6 +366,19 @@ std::string sqlite_datasource::populate_tokens(std::string const& sql) const + // replace with dummy comparison that is true + boost::algorithm::ireplace_first(populated_sql, intersects_token_, "1=1"); + } ++ if (boost::algorithm::icontains(sql, pixel_width_token_)) ++ { ++ std::ostringstream ss; ++ ss << pixel_width; ++ boost::algorithm::replace_all(populated_sql, pixel_width_token_, ss.str()); ++ } ++ if (boost::algorithm::icontains(sql, pixel_height_token_)) ++ { ++ std::ostringstream ss; ++ ss << pixel_height; ++ boost::algorithm::replace_all(populated_sql, pixel_height_token_, ss.str()); ++ } ++ + return populated_sql; + } + +@@ -487,6 +502,8 @@ featureset_ptr sqlite_datasource::features(query const& q) const + mapnik::box2d const& e = q.get_bbox(); + + std::ostringstream s; ++ const double px_gw = 1.0 / std::get<0>(q.resolution()); ++ const double px_gh = 1.0 / std::get<1>(q.resolution()); + mapnik::context_ptr ctx = std::make_shared(); + + s << "SELECT " << geometry_field_; +@@ -521,10 +538,8 @@ featureset_ptr sqlite_datasource::features(query const& q) const + geometry_table_, + intersects_token_); + } +- else +- { +- query = populate_tokens(table_); +- } ++ ++ query = populate_tokens(table_,px_gw,px_gh); + + s << query ; + +@@ -601,10 +616,7 @@ featureset_ptr sqlite_datasource::features_at_point(coord2d const& pt, double to + geometry_table_, + intersects_token_); + } +- else +- { +- query = populate_tokens(table_); +- } ++ query = populate_tokens(table_,0,0); + + s << query ; + +diff --git a/plugins/input/sqlite/sqlite_datasource.hpp b/plugins/input/sqlite/sqlite_datasource.hpp +index eab71e9..be35f37 100644 +--- a/plugins/input/sqlite/sqlite_datasource.hpp ++++ b/plugins/input/sqlite/sqlite_datasource.hpp +@@ -62,10 +62,10 @@ private: + // Fill init_statements with any statements + // needed to attach auxillary databases + void parse_attachdb(std::string const& attachdb) const; +- std::string populate_tokens(std::string const& sql) const; ++ std::string populate_tokens(std::string const& sql, double pixel_width, double pixel_height) const; + + mapnik::box2d extent_; +- bool extent_initialized_; ++ bool extent_initialized_; + mapnik::datasource::datasource_t type_; + std::string dataset_name_; + std::shared_ptr dataset_; +@@ -80,6 +80,8 @@ private: + mapnik::value_integer row_limit_; + // TODO - also add to postgis.input + const std::string intersects_token_; ++ const std::string pixel_width_token_; ++ const std::string pixel_height_token_; + mapnik::layer_descriptor desc_; + mapnik::wkbFormat format_; + bool use_spatial_index_; diff --git a/ports/mapnik/0002-sqlitepixelwidth.patch.txt b/ports/mapnik/0002-sqlitepixelwidth.patch.txt new file mode 100644 index 00000000000000..df0e27ac13ee03 --- /dev/null +++ b/ports/mapnik/0002-sqlitepixelwidth.patch.txt @@ -0,0 +1,120 @@ +diff --git a/plugins/input/sqlite/sqlite_datasource.cpp b/plugins/input/sqlite/sqlite_datasource.cpp +index 28add64..286edce 100644 +--- a/plugins/input/sqlite/sqlite_datasource.cpp ++++ b/plugins/input/sqlite/sqlite_datasource.cpp +@@ -67,6 +67,8 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + row_offset_(*params.get("row_offset", 0)), + row_limit_(*params.get("row_limit", 0)), + intersects_token_("!intersects!"), ++ pixel_width_token_("!pixel_width!"), ++ pixel_height_token_("!pixel_height!"), + desc_(sqlite_datasource::name(), *params.get("encoding", "utf-8")), + format_(mapnik::wkbAuto) + { +@@ -211,7 +213,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + if (using_subquery_) + { + std::ostringstream s; +- std::string query = populate_tokens(table_); ++ std::string query = populate_tokens(table_,0,0); + s << "SELECT " << fields_ << " FROM (" << query << ") LIMIT 1"; + found_types_via_subquery = sqlite_utils::detect_types_from_subquery( + s.str(), +@@ -333,7 +335,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + mapnik::progress_timer __stats2__(std::clog, "sqlite_datasource::init(detect_extent)"); + #endif + // TODO - clean this up - reducing arguments +- std::string query = populate_tokens(table_); ++ std::string query = populate_tokens(table_,0,0); + if (!sqlite_utils::detect_extent(dataset_, + has_spatial_index_, + extent_, +@@ -356,7 +358,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) + + } + +-std::string sqlite_datasource::populate_tokens(std::string const& sql) const ++std::string sqlite_datasource::populate_tokens(std::string const& sql, double pixel_width, double pixel_height) const + { + std::string populated_sql = sql; + if (boost::algorithm::ifind_first(populated_sql, intersects_token_)) +@@ -364,6 +366,19 @@ std::string sqlite_datasource::populate_tokens(std::string const& sql) const + // replace with dummy comparison that is true + boost::algorithm::ireplace_first(populated_sql, intersects_token_, "1=1"); + } ++ if (boost::algorithm::icontains(sql, pixel_width_token_)) ++ { ++ std::ostringstream ss; ++ ss << pixel_width; ++ boost::algorithm::replace_all(populated_sql, pixel_width_token_, ss.str()); ++ } ++ if (boost::algorithm::icontains(sql, pixel_height_token_)) ++ { ++ std::ostringstream ss; ++ ss << pixel_height; ++ boost::algorithm::replace_all(populated_sql, pixel_height_token_, ss.str()); ++ } ++ + return populated_sql; + } + +@@ -487,6 +502,8 @@ featureset_ptr sqlite_datasource::features(query const& q) const + mapnik::box2d const& e = q.get_bbox(); + + std::ostringstream s; ++ const double px_gw = 1.0 / std::get<0>(q.resolution()); ++ const double px_gh = 1.0 / std::get<1>(q.resolution()); + mapnik::context_ptr ctx = std::make_shared(); + + s << "SELECT " << geometry_field_; +@@ -521,10 +538,8 @@ featureset_ptr sqlite_datasource::features(query const& q) const + geometry_table_, + intersects_token_); + } +- else +- { +- query = populate_tokens(table_); +- } ++ ++ query = populate_tokens(table_,px_gw,px_gh); + + s << query ; + +@@ -601,10 +616,7 @@ featureset_ptr sqlite_datasource::features_at_point(coord2d const& pt, double to + geometry_table_, + intersects_token_); + } +- else +- { +- query = populate_tokens(table_); +- } ++ query = populate_tokens(table_,0,0); + + s << query ; + +diff --git a/plugins/input/sqlite/sqlite_datasource.hpp b/plugins/input/sqlite/sqlite_datasource.hpp +index eab71e9..be35f37 100644 +--- a/plugins/input/sqlite/sqlite_datasource.hpp ++++ b/plugins/input/sqlite/sqlite_datasource.hpp +@@ -62,10 +62,10 @@ private: + // Fill init_statements with any statements + // needed to attach auxillary databases + void parse_attachdb(std::string const& attachdb) const; +- std::string populate_tokens(std::string const& sql) const; ++ std::string populate_tokens(std::string const& sql, double pixel_width, double pixel_height) const; + + mapnik::box2d extent_; +- bool extent_initialized_; ++ bool extent_initialized_; + mapnik::datasource::datasource_t type_; + std::string dataset_name_; + std::shared_ptr dataset_; +@@ -80,6 +80,8 @@ private: + mapnik::value_integer row_limit_; + // TODO - also add to postgis.input + const std::string intersects_token_; ++ const std::string pixel_width_token_; ++ const std::string pixel_height_token_; + mapnik::layer_descriptor desc_; + mapnik::wkbFormat format_; + bool use_spatial_index_; diff --git a/ports/mapnik/CONTROL b/ports/mapnik/CONTROL index 34bd744d543046..abfacb42e1f4a6 100644 --- a/ports/mapnik/CONTROL +++ b/ports/mapnik/CONTROL @@ -2,15 +2,15 @@ Source: mapnik Version: 3.0.22 Homepage: https://github.com/am2222/mapnik-windows/ Description: Mapnik is an open source toolkit for developing mapping applications. Compiling on windows. (unofficial port) -Build-Depends: icu, boost-locale[icu], boost-regex[icu], boost, freetype, tiff, libwebp, libxml2, harfbuzz, libpng, zlib +Build-Depends: libjpeg-turbo, tiff, libpng, libwebp, freetype[bzip2,png], icu, libxml2, harfbuzz[icu], boost-locale[icu], boost-regex[icu], boost-gil, boost-geometry, boost-property-tree, boost-filesystem, boost-system, boost-spirit, boost-program-options, boost-assign, boost-bimap, mapbox-variant, zlib Feature: CAIRO Description: Cairo renderer -Build-Depends: cairo +Build-Depends: cairo,cairomm Feature: PROJ4 Description: PROJ4 Functionalities -Build-Depends: proj4 +Build-Depends: proj4[database] Feature: INPUT_CSV Description: CSV input plugin @@ -32,11 +32,11 @@ Build-Depends: gdal Feature: INPUT_PGRASTER Description: PGRASTER input plugin -Build-Depends: libodb-pgsql +Build-Depends: libpq, libodb-pgsql Feature: INPUT_POSTGIS Description: POSTGIS input plugin -Build-Depends: libodb-pgsql +Build-Depends: libpq, libodb-pgsql Feature: INPUT_RASTER Description: RASTER input plugin diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index bbe49f4412004b..1c30981ebd0f4e 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -1,24 +1,34 @@ -find_program(GIT git) -set(GIT_URL "https://github.com/am2222/mapnik-windows.git") -set(GIT_REV "fdba45cd95b66576e47de2e56d30196bfc9de99d") - -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT}) - -if(NOT EXISTS "${SOURCE_PATH}/.git") - message(STATUS "Cloning and fetching submodules") - vcpkg_execute_required_process( - COMMAND ${GIT} clone --recurse-submodules ${GIT_URL} ${SOURCE_PATH} - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME clone - ) - - message(STATUS "Checkout revision ${GIT_REV}") - vcpkg_execute_required_process( - COMMAND ${GIT} checkout ${GIT_REV} - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME checkout - ) -endif() +# find_program(GIT git) +# set(GIT_URL "https://github.com/am2222/mapnik-windows.git") +# set(GIT_REV "fdba45cd95b66576e47de2e56d30196bfc9de99d") + +# set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT}) + +# if(NOT EXISTS "${SOURCE_PATH}/.git") +# message(STATUS "Cloning and fetching submodules") +# vcpkg_execute_required_process( +# COMMAND ${GIT} clone --recurse-submodules ${GIT_URL} ${SOURCE_PATH} +# WORKING_DIRECTORY ${SOURCE_PATH} +# LOGNAME clone +# ) + +# message(STATUS "Checkout revision ${GIT_REV}") +# vcpkg_execute_required_process( +# COMMAND ${GIT} checkout ${GIT_REV} +# WORKING_DIRECTORY ${SOURCE_PATH} +# LOGNAME checkout +# ) +# endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mapnik/mapnik + REF v3.0.23 + SHA512 004429defd3047601b63c28bedd57d701ff88cdfb910a9958f4a10a1ac032d4d13316372122aef06eda60f2e4f67600b8842577db455f8c970009a0e86c5c1cf + HEAD_REF master + PATCHES 0001-CMakeFiles.patch 0002-sqlitepixelwidth.patch +) + message(STATUS "Adding worktree done") From 7cb32e24657679c1683d5b019a1e9d2c91c40aba Mon Sep 17 00:00:00 2001 From: am2222 Date: Tue, 9 Jun 2020 18:40:49 -0400 Subject: [PATCH 06/16] added mapnik cmake patch --- ports/mapnik/0001-CMakeFiles.patch.txt | 1197 ------------------ ports/mapnik/0002-sqlitepixelwidth.patch.txt | 120 -- 2 files changed, 1317 deletions(-) delete mode 100644 ports/mapnik/0001-CMakeFiles.patch.txt delete mode 100644 ports/mapnik/0002-sqlitepixelwidth.patch.txt diff --git a/ports/mapnik/0001-CMakeFiles.patch.txt b/ports/mapnik/0001-CMakeFiles.patch.txt deleted file mode 100644 index 4a68e6917070f7..00000000000000 --- a/ports/mapnik/0001-CMakeFiles.patch.txt +++ /dev/null @@ -1,1197 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -new file mode 100644 -index 0000000..f07a5ce ---- /dev/null -+++ b/CMakeLists.txt -@@ -0,0 +1,306 @@ -+cmake_minimum_required(VERSION 3.13.4) -+project(mapnik) -+set(CMAKE_CXX_STANDARD 14) -+include(CMakeDependentOption) -+ -+ -+option(MAPNIK_STATIC_LIB "Build a static library" OFF) -+ -+option(WITH_DEMO "Build demo" OFF) -+option(WITH_VIEWER "Build viewer" OFF) -+ -+ -+option(WITH_INPUTS "Build input plugins" ON) -+ -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_CSV "Build the csv input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_GDAL "Build the gdal input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_GEOBUF "Build the geobuf input plugin" OFF "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_GEOJSON "Build the geojson input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_OGR "Build the ogr input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_PGRASTER "Build the pgraster input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_POSTGIS "Build the postgis input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_RASTER "Build the raster input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_SHAPE "Build the shape input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_SQLITE "Build the sqlite input plugin" ON "WITH_INPUTS" ON) -+CMAKE_DEPENDENT_OPTION(WITH_INPUT_TOPOJSON "Build the topojson input plugin" ON "WITH_INPUTS" ON) -+ -+MESSAGE(WITH_INPUT_POSTGIS ${WITH_INPUT_POSTGIS}}) -+ -+option(WITH_UTILS "Build the utilities" ON ) -+ -+option(WITH_GRID "Use the grid renderer" OFF) -+option(WITH_CAIRO "Use cairo" ON) -+option(WITH_PROJ4 "Use proj4" ON) -+ -+if(MSVC) -+ # Force to always compile with W4 -+ if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") -+ string(REGEX REPLACE "/W[0-4]" "/W1" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") -+ else() -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W1") -+ endif() -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd\"4068\" /wd\"4661\" /wd\"4503\" ") -+ add_compile_options(/MP) -+ add_compile_options(-bigobj) #added by @am2222 -+ add_compile_definitions(ACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1) #added by @am2222 for proj4 compile -+ add_definitions(-DMAPNIK_THREADSAFE) -+ -+endif() -+ -+find_package(Boost REQUIRED -+ COMPONENTS filesystem system regex program_options) -+ -+find_package(FreeType REQUIRED) -+ -+find_library(HARFBUZZ_LIB harfbuzz.lib) -+find_package(ICU REQUIRED COMPONENTS uc) -+ -+find_package(PNG REQUIRED) -+find_package(jpeg REQUIRED) -+find_package(tiff REQUIRED) -+find_package(WebP REQUIRED) -+find_package(LibXml2 REQUIRED) -+find_package(ZLIB REQUIRED) -+ -+set (MAPNIK_DEFS -+ -DHAVE_PNG -+ -DHAVE_JPEG -+ -DHAVE_TIFF -+ -DHAVE_WEBP) -+ -+set(thirdparty_include_paths ${thirdparty_include_paths} -+ ${JPEG_INCLUDE_DIR} ${WEBP_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR}) -+ -+set(thirdparty_libraries ${thirdparty_libraries} -+ ${JPEG_LIBRARIES} ${WEBP_LIBRARIES} ${LIBXML2_LIBRARIES} ${HARFBUZZ_LIB}) -+ -+# AGG -+ -+include(files.cmake) -+ -+if (WITH_CAIRO) -+ find_library(CAIRO_LIB_DEBUG cairod) -+ find_library(CAIRO_LIB_RELEASE cairo) -+ find_library(CAIRO_GOBJECT_LIB_DEBUG cairo-gobjectd) -+ find_library(CAIRO_GOBJECT_LIB_RELEASE cairo-gobject) -+ find_path(CAIRO_INCLUDE_DIR cairo/cairo.h) -+ -+ set(thirdparty_include_paths ${thirdparty_include_paths} ${CAIRO_INCLUDE_DIR}) -+ set(thirdparty_libraries ${thirdparty_libraries} $<$:${CAIRO_LIB_DEBUG}> $<$:${CAIRO_LIB_RELEASE}>) -+ -+ set(MAPNIK_SOURCES ${MAPNIK_SOURCES} -+ src/cairo/process_markers_symbolizer.cpp -+ src/cairo/process_group_symbolizer.cpp -+ -+ src/cairo/cairo_context.cpp -+ src/cairo/cairo_render_vector.cpp -+ src/cairo/cairo_renderer.cpp -+ src/cairo/process_building_symbolizer.cpp -+ src/cairo/process_debug_symbolizer.cpp -+ src/cairo/process_line_pattern_symbolizer.cpp -+ src/cairo/process_line_symbolizer.cpp -+ src/cairo/process_point_symbolizer.cpp -+ src/cairo/process_polygon_pattern_symbolizer.cpp -+ src/cairo/process_polygon_symbolizer.cpp -+ src/cairo/process_raster_symbolizer.cpp -+ src/cairo/process_text_symbolizer.cpp) -+ -+ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DHAVE_CAIRO) -+endif() -+message(STATUS "Cairo renderer " ${WITH_CAIRO}) -+ -+if (WITH_PROJ4) -+ find_package(PROJ4 REQUIRED) -+ set(thirdparty_include_paths ${thirdparty_include_paths} ${PROJ4_INCLUDE_DIRS}) -+ set(thirdparty_libraries ${thirdparty_libraries} ${PROJ4_LIBRARIES}) -+ -+ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DMAPNIK_USE_PROJ4) -+endif() -+ -+if (WITH_GRID) -+ set(MAPNIK_SOURCES ${MAPNIK_SOURCES} -+ src/grid/grid.cpp -+ src/grid/grid_renderer.cpp -+ src/grid/process_building_symbolizer.cpp -+ src/grid/process_line_pattern_symbolizer.cpp -+ src/grid/process_line_symbolizer.cpp -+ src/grid/process_point_symbolizer.cpp -+ src/grid/process_polygon_pattern_symbolizer.cpp -+ src/grid/process_polygon_symbolizer.cpp -+ src/grid/process_raster_symbolizer.cpp -+ src/grid/process_shield_symbolizer.cpp -+ src/grid/process_text_symbolizer.cpp) -+ set(MAPNIK_DEFS ${MAPNIK_DEFS} -DGRID_RENDERER) -+ENDIF() -+message(STATUS "Grid renderer: " ${WITH_GRID}) -+ -+set(MAPNIK_SOURCES ${MAPNIK_SOURCES} -+ src/svg/output/svg_output_grammars.cpp -+ src/svg/output/svg_renderer.cpp -+ src/svg/output/svg_generator.cpp -+ src/svg/output/svg_output_attributes.cpp -+ src/svg/output/process_symbolizers.cpp -+ src/svg/output/process_line_symbolizer.cpp -+ src/svg/output/process_polygon_symbolizer.cpp) -+set(MAPNIK_DEFS ${MAPNIK_DEFS} -DSVG_RENDERER) -+ -+ -+set(MAPNIK_SOURCES ${MAPNIK_SOURCES} -+ src/jpeg_reader.cpp -+ src/libxml2_loader.cpp -+ src/png_reader.cpp -+ src/tiff_reader.cpp -+ src/webp_reader.cpp -+ ) -+ -+#set(MAPNIK_SOURCES ${MAPNIK_SOURCES} src/rapidxml_loader.cpp) -+ -+set(MAPNIK_DEFS ${MAPNIK_DEFS} -DHAVE_LIBXML2 -DBOOST_REGEX_HAS_ICU) -+ -+set(mapnik_include_paths -+ include -+ deps -+ deps/agg/include -+ deps/mapbox/geometry/include -+ deps/mapbox/polylabel/include -+ deps/mapbox/variant/include) -+ -+ -+ -+include_directories(${mapnik_include_paths} ${thirdparty_include_paths}) -+ -+if (MAPNIK_STATIC_LIB) -+ message(STATUS "Building static library") -+ add_library(mapnik STATIC ${MAPNIK_SOURCES} ${MAPNIK_AGG_SOURCES} ${AGG_SOURCES}) -+ target_compile_definitions(mapnik PUBLIC -DMAPNIK_STATICLIB) -+ set(MAPNIK_LIB_DEFINITION -DMAPNIK_STATICLIB) -+else () -+ message(STATUS "Building shared library") -+ add_library(mapnik SHARED ${MAPNIK_SOURCES} ${MAPNIK_AGG_SOURCES} ${AGG_SOURCES}) -+ target_compile_definitions(mapnik PRIVATE -DMAPNIK_EXPORTS) -+ set(MAPNIK_LIB_DEFINITION ) -+endif () -+ -+target_compile_definitions(mapnik PUBLIC ${MAPNIK_DEFS}) -+ -+target_include_directories(mapnik INTERFACE ${mapnik_include_paths} ${thirdparty_include_paths} ) -+target_link_libraries(mapnik PUBLIC -+ ${thirdparty_libraries} -+ Boost::boost Boost::filesystem Boost::system Boost::regex Boost::program_options Boost::system -+ Freetype::Freetype -+ ICU::uc -+ PNG::PNG -+ TIFF::TIFF -+ ZLIB::ZLIB) -+ -+install(TARGETS mapnik -+ LIBRARY DESTINATION lib) -+ -+install(DIRECTORY include/ DESTINATION include/ CONFIGURATIONS Release) -+ -+add_subdirectory(src/json) -+add_subdirectory(src/wkt) -+ -+# ideally we should also generate mapnik-config -+ -+if (WITH_INPUT_CSV) -+ add_subdirectory(plugins/input/csv) -+endif() -+ -+if (WITH_INPUT_GDAL) -+ find_package(GDAL REQUIRED) -+ add_subdirectory(plugins/input/gdal) -+endif() -+ -+if (WITH_INPUT_GEOBUF) -+ # TODO insert protozero here -+ add_subdirectory(plugins/input/geobuf) -+endif() -+ -+if (WITH_INPUT_GEOJSON) -+ add_subdirectory(plugins/input/geojson) -+endif() -+ -+if (WITH_INPUT_OGR) -+ add_subdirectory(plugins/input/ogr) -+endif() -+ -+if (WITH_INPUT_PGRASTER) -+ find_package(PostgreSQL REQUIRED) -+ add_subdirectory(plugins/input/pgraster) -+endif() -+ -+if (WITH_INPUT_POSTGIS) -+ find_package(PostgreSQL REQUIRED) -+ add_subdirectory(plugins/input/postgis) -+endif() -+ -+if (WITH_INPUT_RASTER) -+ add_subdirectory(plugins/input/raster) -+endif() -+ -+if (WITH_INPUT_SHAPE) -+ add_subdirectory(plugins/input/shape) -+endif() -+ -+if (WITH_INPUT_SQLITE) -+ find_package(sqlite3 REQUIRED) -+ add_subdirectory(plugins/input/sqlite) -+endif() -+ -+if (WITH_INPUT_TOPOJSON) -+ add_subdirectory(plugins/input/topojson) -+endif() -+ -+if (WITH_INPUTS) -+ message(STATUS "Input plugins:") -+ if(WITH_INPUT_CSV ) -+ message(STATUS " - csv ") -+ endif() -+ if(WITH_INPUT_GDAL ) -+ message(STATUS " - gdal ") -+ endif() -+ if(WITH_INPUT_GEOBUF ) -+ message(STATUS " - geobuf ") -+ endif() -+ if(WITH_INPUT_GEOJSON ) -+ message(STATUS " - geojson ") -+ endif() -+ if(WITH_INPUT_OGR ) -+ message(STATUS " - ogr ") -+ endif() -+ if(WITH_INPUT_PGRASTER ) -+ message(STATUS " - pgraster") -+ endif() -+ if(WITH_INPUT_POSTGIS ) -+ message(STATUS " - postgis ") -+ endif() -+ if(WITH_INPUT_RASTER ) -+ message(STATUS " - raster ") -+ endif() -+ if(WITH_INPUT_SHAPE ) -+ message(STATUS " - shape ") -+ endif() -+ if(WITH_INPUT_SQLITE ) -+ message(STATUS " - sqlite ") -+ endif() -+ if(WITH_INPUT_TOPOJSON ) -+ message(STATUS " - topojson") -+ endif() -+else() -+ message(STATUS "Input plugins OFF") -+endif() -+ -+if(WITH_DEMO) -+ add_subdirectory(demo/c++) -+endif() -+ -+if(WITH_VIEWER) -+ find_package(Qt5 COMPONENTS Widgets REQUIRED) -+ add_subdirectory(demo/viewer) -+endif() -+ -+if(WITH_UTILS) -+ add_subdirectory(utils/mapnik-render) -+ add_subdirectory(utils/shapeindex) -+endif() -diff --git a/demo/c++/CMakeLists.txt b/demo/c++/CMakeLists.txt -new file mode 100644 -index 0000000..a0a48b8 ---- /dev/null -+++ b/demo/c++/CMakeLists.txt -@@ -0,0 +1,4 @@ -+add_executable(mapnik-demo rundemo.cpp) -+add_dependencies(mapnik-demo mapnik) -+target_link_libraries(mapnik-demo PRIVATE mapnik) -+install(TARGETS mapnik-demo DESTINATION bin) -diff --git a/demo/viewer/CMakeLists.txt b/demo/viewer/CMakeLists.txt -new file mode 100644 -index 0000000..86034a0 ---- /dev/null -+++ b/demo/viewer/CMakeLists.txt -@@ -0,0 +1,27 @@ -+add_executable(mapnik-viewer -+ about_dialog.cpp -+ info_dialog.cpp -+ layerdelegate.cpp -+ layerlistmodel.cpp -+ layerwidget.cpp -+ layer_info_dialog.cpp -+ main.cpp -+ mainwindow.cpp -+ mapwidget.cpp -+ styles_model.cpp -+ -+ forms/about.ui -+ forms/info.ui -+ forms/layer_info.ui -+ -+ mapnik_viewer.qrc) -+ -+set_target_properties(mapnik-viewer PROPERTIES -+ AUTOUIC_SEARCH_PATHS forms -+ AUTORCC ON -+ AUTOUIC ON -+ AUTOMOC ON) -+ -+add_dependencies(mapnik-viewer mapnik) -+target_link_libraries(mapnik-viewer PRIVATE mapnik Qt5::Widgets) -+install(TARGETS mapnik-viewer DESTINATION bin) -diff --git a/files.cmake b/files.cmake -new file mode 100644 -index 0000000..b9d767f ---- /dev/null -+++ b/files.cmake -@@ -0,0 +1,557 @@ -+set (MAPNIK_SOURCES -+ src/cairo_io.cpp -+ src/color.cpp -+ src/color_factory.cpp -+ src/config_error.cpp -+ src/conversions.cpp -+ src/css_color_grammar.cpp -+ src/dasharray_parser.cpp -+ src/datasource_cache.cpp -+ src/datasource_cache_static.cpp -+ src/debug.cpp -+ src/box2d.cpp -+ src/expression.cpp -+ src/expression_grammar.cpp -+ src/expression_node.cpp -+ src/expression_string.cpp -+ src/feature_kv_iterator.cpp -+ src/feature_style_processor.cpp -+ src/feature_type_style.cpp -+ src/font_engine_freetype.cpp -+ src/font_set.cpp -+ src/fs.cpp -+ src/function_call.cpp -+ src/geometry/interior.cpp -+ src/geometry_envelope.cpp -+ src/geometry_reprojection.cpp -+ src/gradient.cpp -+ src/group/group_layout_manager.cpp -+ src/group/group_rule.cpp -+ src/group/group_symbolizer_helper.cpp -+ src/image.cpp -+ src/image_any.cpp -+ src/image_compositing.cpp -+ src/image_copy.cpp -+ src/image_filter_grammar.cpp -+ src/image_filter_types.cpp -+ src/image_options.cpp -+ src/image_reader.cpp -+ src/image_scaling.cpp -+ src/image_util.cpp -+ src/image_util_jpeg.cpp -+ src/image_util_png.cpp -+ src/image_util_tiff.cpp -+ src/image_util_webp.cpp -+ src/image_view.cpp -+ src/image_view_any.cpp -+ src/layer.cpp -+ src/load_map.cpp -+ src/map.cpp -+ src/math.cpp -+ src/mapped_memory_cache.cpp -+ src/marker_cache.cpp -+ src/marker_helpers.cpp -+ src/memory_datasource.cpp -+ src/palette.cpp -+ src/params.cpp -+ src/parse_path.cpp -+ src/parse_transform.cpp -+ src/plugin.cpp -+ src/proj_transform.cpp -+ src/projection.cpp -+ src/raster_colorizer.cpp -+ src/renderer_common.cpp -+ src/renderer_common/pattern_alignment.cpp -+ src/renderer_common/render_group_symbolizer.cpp -+ src/renderer_common/render_markers_symbolizer.cpp -+ src/renderer_common/render_pattern.cpp -+ src/renderer_common/render_thunk_extractor.cpp -+ src/request.cpp -+ src/rule.cpp -+ src/save_map.cpp -+ src/scale_denominator.cpp -+ src/simplify.cpp -+ src/svg/svg_parser.cpp -+ src/svg/svg_path_parser.cpp -+ src/svg/svg_points_parser.cpp -+ src/svg/svg_transform_parser.cpp -+ src/symbolizer.cpp -+ src/symbolizer_enumerations.cpp -+ src/symbolizer_keys.cpp -+ src/text/face.cpp -+ src/text/font_feature_settings.cpp -+ src/text/font_library.cpp -+ src/text/formatting/base.cpp -+ src/text/formatting/format.cpp -+ src/text/formatting/layout.cpp -+ src/text/formatting/list.cpp -+ src/text/formatting/registry.cpp -+ src/text/formatting/text.cpp -+ src/text/glyph_positions.cpp -+ src/text/itemizer.cpp -+ src/text/placement_finder.cpp -+ src/text/placements/base.cpp -+ src/text/placements/dummy.cpp -+ src/text/placements/list.cpp -+ src/text/placements/registry.cpp -+ src/text/placements/simple.cpp -+ src/text/properties_util.cpp -+ src/text/renderer.cpp -+ src/text/scrptrun.cpp -+ src/text/symbolizer_helpers.cpp -+ src/text/text_layout.cpp -+ src/text/text_line.cpp -+ src/text/text_properties.cpp -+ src/transform_expression.cpp -+ src/transform_expression_grammar.cpp -+ src/twkb.cpp -+ src/unicode.cpp -+ src/util/utf_conv_win.cpp -+ src/value.cpp -+ src/vertex_adapters.cpp -+ src/vertex_cache.cpp -+ src/warp.cpp -+ src/well_known_srs.cpp -+ src/wkb.cpp -+ src/xml_tree.cpp -+ ) -+ -+ -+set(MAPNIK_AGG_SOURCES -+ src/agg/agg_renderer.cpp -+ src/agg/process_building_symbolizer.cpp -+ src/agg/process_debug_symbolizer.cpp -+ src/agg/process_dot_symbolizer.cpp -+ src/agg/process_group_symbolizer.cpp -+ src/agg/process_line_pattern_symbolizer.cpp -+ src/agg/process_line_symbolizer.cpp -+ src/agg/process_markers_symbolizer.cpp -+ src/agg/process_point_symbolizer.cpp -+ src/agg/process_polygon_pattern_symbolizer.cpp -+ src/agg/process_polygon_symbolizer.cpp -+ src/agg/process_raster_symbolizer.cpp -+ src/agg/process_shield_symbolizer.cpp -+ src/agg/process_text_symbolizer.cpp) -+ -+ -+set(AGG_SOURCES -+ deps/agg/src/agg_arc.cpp -+ deps/agg/src/agg_arrowhead.cpp -+ deps/agg/src/agg_bezier_arc.cpp -+ deps/agg/src/agg_bspline.cpp -+ deps/agg/src/agg_curves.cpp -+ deps/agg/src/agg_embedded_raster_fonts.cpp -+ deps/agg/src/agg_gsv_text.cpp -+ deps/agg/src/agg_image_filters.cpp -+ deps/agg/src/agg_line_aa_basics.cpp -+ deps/agg/src/agg_line_profile_aa.cpp -+ deps/agg/src/agg_pixfmt_rgba.cpp -+ deps/agg/src/agg_rounded_rect.cpp -+ deps/agg/src/agg_sqrt_tables.cpp -+ deps/agg/src/agg_trans_affine.cpp -+ deps/agg/src/agg_trans_double_path.cpp -+ deps/agg/src/agg_trans_single_path.cpp -+ deps/agg/src/agg_trans_warp_magnifier.cpp -+ deps/agg/src/agg_vcgen_bspline.cpp -+ deps/agg/src/agg_vcgen_contour.cpp -+ deps/agg/src/agg_vcgen_dash.cpp -+ deps/agg/src/agg_vcgen_markers_term.cpp -+ deps/agg/src/agg_vcgen_stroke.cpp -+ deps/agg/src/agg_vcgen_smooth_poly1.cpp -+ deps/agg/src/agg_vpgen_clip_polygon.cpp -+ deps/agg/src/agg_vpgen_clip_polyline.cpp -+ deps/agg/src/agg_vpgen_segmentator.cpp ) -+ -+set(MAPNIK_INC -+ mapnik/adaptive_smooth.hpp -+ mapnik/agg_helpers.hpp -+ mapnik/agg_pattern_source.hpp -+ mapnik/agg_rasterizer.hpp -+ mapnik/agg_renderer.hpp -+ mapnik/agg_render_marker.hpp -+ mapnik/attribute.hpp -+ mapnik/attribute_collector.hpp -+ mapnik/attribute_descriptor.hpp -+ mapnik/boolean.hpp -+ mapnik/boost_spirit_instantiate.hpp -+ mapnik/cairo_io.hpp -+ mapnik/color.hpp -+ mapnik/color_factory.hpp -+ mapnik/config.hpp -+ mapnik/config_error.hpp -+ mapnik/coord.hpp -+ mapnik/css_color_grammar.hpp -+ mapnik/css_color_grammar_impl.hpp -+ mapnik/cxx11_support.hpp -+ mapnik/datasource.hpp -+ mapnik/datasource_cache.hpp -+ mapnik/datasource_geometry_type.hpp -+ mapnik/debug.hpp -+ mapnik/enumeration.hpp -+ mapnik/evaluate_global_attributes.hpp -+ mapnik/expression.hpp -+ mapnik/expression_evaluator.hpp -+ mapnik/expression_grammar.hpp -+ mapnik/expression_grammar_config.hpp -+ mapnik/expression_grammar_def.hpp -+ mapnik/expression_node.hpp -+ mapnik/expression_node_types.hpp -+ mapnik/expression_string.hpp -+ mapnik/extend_converter.hpp -+ mapnik/factory.hpp -+ mapnik/feature.hpp -+ mapnik/featureset.hpp -+ mapnik/feature_factory.hpp -+ mapnik/feature_kv_iterator.hpp -+ mapnik/feature_layer_desc.hpp -+ mapnik/feature_style_processor.hpp -+ mapnik/feature_style_processor_context.hpp -+ mapnik/feature_style_processor_impl.hpp -+ mapnik/feature_type_style.hpp -+ mapnik/filter_featureset.hpp -+ mapnik/font_engine_freetype.hpp -+ mapnik/font_set.hpp -+ mapnik/function_call.hpp -+ mapnik/geometry.hpp -+ mapnik/geom_util.hpp -+ mapnik/global.hpp -+ mapnik/gradient.hpp -+ mapnik/grid_vertex_converter.hpp -+ mapnik/hextree.hpp -+ mapnik/hit_test_filter.hpp -+ mapnik/image.hpp -+ mapnik/image_any.hpp -+ mapnik/image_compositing.hpp -+ mapnik/image_copy.hpp -+ mapnik/image_filter.hpp -+ mapnik/image_filter_grammar.hpp -+ mapnik/image_filter_grammar_def.hpp -+ mapnik/image_filter_types.hpp -+ mapnik/image_impl.hpp -+ mapnik/image_null.hpp -+ mapnik/image_options.hpp -+ mapnik/image_reader.hpp -+ mapnik/image_scaling.hpp -+ mapnik/image_scaling_traits.hpp -+ mapnik/image_util.hpp -+ mapnik/image_util_jpeg.hpp -+ mapnik/image_util_png.hpp -+ mapnik/image_util_tiff.hpp -+ mapnik/image_util_webp.hpp -+ mapnik/image_view.hpp -+ mapnik/image_view_any.hpp -+ mapnik/image_view_impl.hpp -+ mapnik/image_view_null.hpp -+ mapnik/init_priority.hpp -+ mapnik/jpeg_io.hpp -+ mapnik/label_collision_detector.hpp -+ mapnik/layer.hpp -+ mapnik/load_map.hpp -+ mapnik/make_unique.hpp -+ mapnik/map.hpp -+ mapnik/mapped_memory_cache.hpp -+ mapnik/marker.hpp -+ mapnik/markers_placement.hpp -+ mapnik/marker_cache.hpp -+ mapnik/marker_helpers.hpp -+ mapnik/memory_datasource.hpp -+ mapnik/memory_featureset.hpp -+ mapnik/octree.hpp -+ mapnik/offset_converter.hpp -+ mapnik/palette.hpp -+ mapnik/params.hpp -+ mapnik/params_impl.hpp -+ mapnik/parse_path.hpp -+ mapnik/path.hpp -+ mapnik/path_expression.hpp -+ mapnik/path_expression_grammar.hpp -+ mapnik/path_expression_grammar_def.hpp -+ mapnik/pixel_position.hpp -+ mapnik/pixel_types.hpp -+ mapnik/plugin.hpp -+ mapnik/png_io.hpp -+ mapnik/pool.hpp -+ mapnik/projection.hpp -+ mapnik/proj_strategy.hpp -+ mapnik/proj_transform.hpp -+ mapnik/ptree_helpers.hpp -+ mapnik/quad_tree.hpp -+ mapnik/query.hpp -+ mapnik/raster.hpp -+ mapnik/raster_colorizer.hpp -+ mapnik/renderer_common.hpp -+ mapnik/request.hpp -+ mapnik/rule.hpp -+ mapnik/rule_cache.hpp -+ mapnik/safe_cast.hpp -+ mapnik/save_map.hpp -+ mapnik/scale_denominator.hpp -+ mapnik/simplify.hpp -+ mapnik/simplify_converter.hpp -+ mapnik/span_image_filter.hpp -+ mapnik/sql_utils.hpp -+ mapnik/sse.hpp -+ mapnik/stringify_macro.hpp -+ mapnik/symbolizer.hpp -+ mapnik/symbolizer_base.hpp -+ mapnik/symbolizer_default_values.hpp -+ mapnik/symbolizer_dispatch.hpp -+ mapnik/symbolizer_enumerations.hpp -+ mapnik/symbolizer_hash.hpp -+ mapnik/symbolizer_keys.hpp -+ mapnik/symbolizer_utils.hpp -+ mapnik/tiff_io.hpp -+ mapnik/timer.hpp -+ mapnik/tolerance_iterator.hpp -+ mapnik/transform_path_adapter.hpp -+ mapnik/unicode.hpp -+ mapnik/value.hpp -+ mapnik/version.hpp -+ mapnik/vertex.hpp -+ mapnik/vertex_adapters.hpp -+ mapnik/vertex_cache.hpp -+ mapnik/vertex_converters.hpp -+ mapnik/vertex_processor.hpp -+ mapnik/vertex_vector.hpp -+ mapnik/view_strategy.hpp -+ mapnik/view_transform.hpp -+ mapnik/warning_ignore.hpp -+ mapnik/warning_ignore_agg.hpp -+ mapnik/warp.hpp -+ mapnik/webp_io.hpp -+ mapnik/well_known_srs.hpp -+ mapnik/wkb.hpp -+ mapnik/xml_attribute_cast.hpp -+ mapnik/xml_loader.hpp -+ mapnik/xml_node.hpp -+ mapnik/xml_tree.hpp -+ mapnik/geometry/boost_adapters.hpp -+ mapnik/geometry/boost_spirit_karma_adapter.hpp -+ mapnik/geometry/box2d.hpp -+ mapnik/geometry/box2d_impl.hpp -+ mapnik/geometry/centroid.hpp -+ mapnik/geometry/closest_point.hpp -+ mapnik/geometry/correct.hpp -+ mapnik/geometry/envelope.hpp -+ mapnik/geometry/envelope_impl.hpp -+ mapnik/geometry/fusion_adapted.hpp -+ mapnik/geometry/geometry_type.hpp -+ mapnik/geometry/geometry_types.hpp -+ mapnik/geometry/interior.hpp -+ mapnik/geometry/is_empty.hpp -+ mapnik/geometry/is_simple.hpp -+ mapnik/geometry/is_valid.hpp -+ mapnik/geometry/line_string.hpp -+ mapnik/geometry/multi_line_string.hpp -+ mapnik/geometry/multi_point.hpp -+ mapnik/geometry/multi_polygon.hpp -+ mapnik/geometry/point.hpp -+ mapnik/geometry/polygon.hpp -+ mapnik/geometry/polygon_vertex_processor.hpp -+ mapnik/geometry/polylabel.hpp -+ mapnik/geometry/remove_empty.hpp -+ mapnik/geometry/reprojection.hpp -+ mapnik/geometry/reprojection_impl.hpp -+ mapnik/geometry/strategy.hpp -+ mapnik/geometry/to_path.hpp -+ mapnik/geometry/transform.hpp -+ mapnik/csv/csv_grammar_x3.hpp -+ mapnik/csv/csv_grammar_x3_def.hpp -+ mapnik/csv/csv_types.hpp -+ mapnik/svg/geometry_svg_generator.hpp -+ mapnik/svg/geometry_svg_generator_impl.hpp -+ mapnik/svg/svg_converter.hpp -+ mapnik/svg/svg_grammar_config_x3.hpp -+ mapnik/svg/svg_parser.hpp -+ mapnik/svg/svg_parser_exception.hpp -+ mapnik/svg/svg_path_adapter.hpp -+ mapnik/svg/svg_path_attributes.hpp -+ mapnik/svg/svg_path_commands.hpp -+ mapnik/svg/svg_path_grammar_x3.hpp -+ mapnik/svg/svg_path_grammar_x3_def.hpp -+ mapnik/svg/svg_path_parser.hpp -+ mapnik/svg/svg_renderer_agg.hpp -+ mapnik/svg/svg_storage.hpp -+ mapnik/svg/svg_transform_grammar_x3.hpp -+ mapnik/svg/svg_transform_grammar_x3_def.hpp -+ mapnik/wkt/wkt_factory.hpp -+ mapnik/wkt/wkt_generator_grammar.hpp -+ mapnik/wkt/wkt_generator_grammar_impl.hpp -+ mapnik/wkt/wkt_grammar_x3.hpp -+ mapnik/wkt/wkt_grammar_x3_def.hpp -+ mapnik/cairo/cairo_context.hpp -+ mapnik/cairo/cairo_image_util.hpp -+ mapnik/cairo/cairo_renderer.hpp -+ mapnik/cairo/cairo_render_vector.hpp -+ mapnik/cairo/render_polygon_pattern.hpp -+ mapnik/grid/grid.hpp -+ mapnik/grid/grid_pixel.hpp -+ mapnik/grid/grid_pixfmt.hpp -+ mapnik/grid/grid_rasterizer.hpp -+ mapnik/grid/grid_renderer.hpp -+ mapnik/grid/grid_renderer_base.hpp -+ mapnik/grid/grid_rendering_buffer.hpp -+ mapnik/grid/grid_render_marker.hpp -+ mapnik/grid/grid_view.hpp -+ mapnik/json/attribute_value_visitor.hpp -+ mapnik/json/create_feature.hpp -+ mapnik/json/create_geometry.hpp -+ mapnik/json/extract_bounding_boxes.hpp -+ mapnik/json/extract_bounding_boxes_config.hpp -+ mapnik/json/feature_generator_grammar.hpp -+ mapnik/json/feature_generator_grammar_impl.hpp -+ mapnik/json/feature_grammar_x3.hpp -+ mapnik/json/feature_grammar_x3_def.hpp -+ mapnik/json/feature_parser.hpp -+ mapnik/json/generic_json_grammar_x3.hpp -+ mapnik/json/generic_json_grammar_x3_def.hpp -+ mapnik/json/geojson_grammar_x3.hpp -+ mapnik/json/geojson_grammar_x3_def.hpp -+ mapnik/json/geometry_generator_grammar.hpp -+ mapnik/json/geometry_generator_grammar_impl.hpp -+ mapnik/json/geometry_parser.hpp -+ mapnik/json/json_grammar_config.hpp -+ mapnik/json/json_value.hpp -+ mapnik/json/parse_feature.hpp -+ mapnik/json/positions_grammar_x3.hpp -+ mapnik/json/positions_grammar_x3_def.hpp -+ mapnik/json/positions_x3.hpp -+ mapnik/json/properties_generator_grammar.hpp -+ mapnik/json/properties_generator_grammar_impl.hpp -+ mapnik/json/stringifier.hpp -+ mapnik/json/topojson_grammar_x3.hpp -+ mapnik/json/topojson_grammar_x3_def.hpp -+ mapnik/json/topojson_utils.hpp -+ mapnik/json/topology.hpp -+ mapnik/json/unicode_string_grammar_x3.hpp -+ mapnik/json/unicode_string_grammar_x3_def.hpp -+ mapnik/json/value_converters.hpp -+ mapnik/util/char_array_buffer.hpp -+ mapnik/util/const_rendering_buffer.hpp -+ mapnik/util/container_adapter.hpp -+ mapnik/util/conversions.hpp -+ mapnik/util/dasharray_parser.hpp -+ mapnik/util/featureset_buffer.hpp -+ mapnik/util/feature_to_geojson.hpp -+ mapnik/util/file_io.hpp -+ mapnik/util/fs.hpp -+ mapnik/util/geometry_to_ds_type.hpp -+ mapnik/util/geometry_to_geojson.hpp -+ mapnik/util/geometry_to_svg.hpp -+ mapnik/util/geometry_to_wkb.hpp -+ mapnik/util/geometry_to_wkt.hpp -+ mapnik/util/hsl.hpp -+ mapnik/util/is_clockwise.hpp -+ mapnik/util/math.hpp -+ mapnik/util/name_to_int.hpp -+ mapnik/util/noncopyable.hpp -+ mapnik/util/path_iterator.hpp -+ mapnik/util/rounding_cast.hpp -+ mapnik/util/singleton.hpp -+ mapnik/util/spatial_index.hpp -+ mapnik/util/spirit_transform_attribute.hpp -+ mapnik/util/timer.hpp -+ mapnik/util/trim.hpp -+ mapnik/util/utf_conv_win.hpp -+ mapnik/util/variant.hpp -+ mapnik/util/variant_io.hpp -+ mapnik/group/group_layout.hpp -+ mapnik/group/group_layout_manager.hpp -+ mapnik/group/group_rule.hpp -+ mapnik/group/group_symbolizer_helper.hpp -+ mapnik/group/group_symbolizer_properties.hpp -+ mapnik/text/color_font_renderer.hpp -+ mapnik/text/evaluated_format_properties_ptr.hpp -+ mapnik/text/face.hpp -+ mapnik/text/font_feature_settings.hpp -+ mapnik/text/font_library.hpp -+ mapnik/text/glyph_info.hpp -+ mapnik/text/glyph_positions.hpp -+ mapnik/text/harfbuzz_shaper.hpp -+ mapnik/text/icu_shaper.hpp -+ mapnik/text/itemizer.hpp -+ mapnik/text/placement_finder.hpp -+ mapnik/text/placement_finder_impl.hpp -+ mapnik/text/properties_util.hpp -+ mapnik/text/renderer.hpp -+ mapnik/text/rotation.hpp -+ mapnik/text/scrptrun.hpp -+ mapnik/text/symbolizer_helpers.hpp -+ mapnik/text/text_layout.hpp -+ mapnik/text/text_line.hpp -+ mapnik/text/text_properties.hpp -+ mapnik/text/placements/base.hpp -+ mapnik/text/placements/dummy.hpp -+ mapnik/text/placements/list.hpp -+ mapnik/text/placements/registry.hpp -+ mapnik/text/placements/simple.hpp -+ mapnik/text/formatting/base.hpp -+ mapnik/text/formatting/format.hpp -+ mapnik/text/formatting/layout.hpp -+ mapnik/text/formatting/list.hpp -+ mapnik/text/formatting/registry.hpp -+ mapnik/text/formatting/text.hpp -+ mapnik/transform/parse_transform.hpp -+ mapnik/transform/transform_expression.hpp -+ mapnik/transform/transform_expression_grammar_x3.hpp -+ mapnik/transform/transform_expression_grammar_x3_def.hpp -+ mapnik/transform/transform_processor.hpp -+ mapnik/markers_placements/basic.hpp -+ mapnik/markers_placements/interior.hpp -+ mapnik/markers_placements/line.hpp -+ mapnik/markers_placements/point.hpp -+ mapnik/markers_placements/polylabel.hpp -+ mapnik/markers_placements/vertex_first.hpp -+ mapnik/markers_placements/vertex_last.hpp -+ mapnik/geometry/boost_adapters.hpp -+ mapnik/geometry/boost_spirit_karma_adapter.hpp -+ mapnik/geometry/box2d.hpp -+ mapnik/geometry/box2d_impl.hpp -+ mapnik/geometry/centroid.hpp -+ mapnik/geometry/closest_point.hpp -+ mapnik/geometry/correct.hpp -+ mapnik/geometry/envelope.hpp -+ mapnik/geometry/envelope_impl.hpp -+ mapnik/geometry/fusion_adapted.hpp -+ mapnik/geometry/geometry_type.hpp -+ mapnik/geometry/geometry_types.hpp -+ mapnik/geometry/interior.hpp -+ mapnik/geometry/is_empty.hpp -+ mapnik/geometry/is_simple.hpp -+ mapnik/geometry/is_valid.hpp -+ mapnik/geometry/line_string.hpp -+ mapnik/geometry/multi_line_string.hpp -+ mapnik/geometry/multi_point.hpp -+ mapnik/geometry/multi_polygon.hpp -+ mapnik/geometry/point.hpp -+ mapnik/geometry/polygon.hpp -+ mapnik/geometry/polygon_vertex_processor.hpp -+ mapnik/geometry/polylabel.hpp -+ mapnik/geometry/remove_empty.hpp -+ mapnik/geometry/reprojection.hpp -+ mapnik/geometry/reprojection_impl.hpp -+ mapnik/geometry/strategy.hpp -+ mapnik/geometry/to_path.hpp -+ mapnik/geometry/transform.hpp -+ mapnik/value/error.hpp -+ mapnik/value/hash.hpp -+ mapnik/value/types.hpp) -+ -+set(MAPNIK_INC ${MAPNIK_INC} -+ mapnik/svg/output/svg_generator.hpp -+ mapnik/svg/output/svg_output_attributes.hpp -+ mapnik/svg/output/svg_output_grammars.hpp -+ mapnik/svg/output/svg_output_grammars_impl.hpp -+ mapnik/svg/output/svg_path_iterator.hpp -+ mapnik/svg/output/svg_renderer.hpp) -+ -+set(MAPNIK_INC ${MAPNIK_INC} -+ mapnik/grid/grid.hpp -+ mapnik/grid/grid_pixel.hpp -+ mapnik/grid/grid_pixfmt.hpp -+ mapnik/grid/grid_rasterizer.hpp -+ mapnik/grid/grid_renderer.hpp -+ mapnik/grid/grid_renderer_base.hpp -+ mapnik/grid/grid_rendering_buffer.hpp -+ mapnik/grid/grid_render_marker.hpp -+ mapnik/grid/grid_view.hpp) -\ No newline at end of file -diff --git a/include/mapnik/config.hpp b/include/mapnik/config.hpp -index a9168e5..9bdcad4 100644 ---- a/include/mapnik/config.hpp -+++ b/include/mapnik/config.hpp -@@ -30,8 +30,10 @@ - # define MAPNIK_IMP __declspec (dllimport) - # ifdef MAPNIK_EXPORTS - # define MAPNIK_DECL __declspec (dllexport) --# else -+# elif !defined(MAPNIK_STATICLIB) - # define MAPNIK_DECL __declspec (dllimport) -+# else -+# define MAPNIK_DECL - # endif - # pragma warning( disable: 4251 ) - # pragma warning( disable: 4275 ) -diff --git a/include/mapnik/geometry.hpp b/include/mapnik/geometry.hpp -index aae2bf3..6484dd3 100644 ---- a/include/mapnik/geometry.hpp -+++ b/include/mapnik/geometry.hpp -@@ -146,7 +146,7 @@ struct geometry : geometry_base - { - using coord_type = T; - --#if __cpp_inheriting_constructors >= 200802 -+#if __cpp_inheriting_constructors >= 200802 && !defined (_MSC_VER) - - using geometry_base::geometry_base; - -diff --git a/include/mapnik/json/generic_json.hpp b/include/mapnik/json/generic_json.hpp -index 65c04c4..6c04609 100644 ---- a/include/mapnik/json/generic_json.hpp -+++ b/include/mapnik/json/generic_json.hpp -@@ -57,7 +57,7 @@ using json_value_base = mapnik::util::variant >; - struct json_value : json_value_base - { --#if __cpp_inheriting_constructors >= 200802 -+#if __cpp_inheriting_constructors >= 200802 && !defined (_MSC_VER) - - using json_value_base::json_value_base; - -diff --git a/plugins/input/csv/CMakeLists.txt b/plugins/input/csv/CMakeLists.txt -new file mode 100644 -index 0000000..34a2e75 ---- /dev/null -+++ b/plugins/input/csv/CMakeLists.txt -@@ -0,0 +1,12 @@ -+add_library(mapnik-input-csv SHARED -+ csv_datasource.cpp -+ csv_featureset.cpp -+ csv_index_featureset.cpp -+ csv_inline_featureset.cpp -+ csv_utils.cpp) -+ -+target_link_libraries(mapnik-input-csv PUBLIC mapnik mapnik-wkt mapnik-json) -+set_target_properties(mapnik-input-csv PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-csv PROPERTIES OUTPUT_NAME "csv") -+set_target_properties(mapnik-input-csv PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-csv DESTINATION bin/plugins/input) -\ No newline at end of file -diff --git a/plugins/input/gdal/CMakeLists.txt b/plugins/input/gdal/CMakeLists.txt -new file mode 100644 -index 0000000..274ee44 ---- /dev/null -+++ b/plugins/input/gdal/CMakeLists.txt -@@ -0,0 +1,9 @@ -+add_library(mapnik-input-gdal SHARED -+ gdal_datasource.cpp -+ gdal_featureset.cpp) -+ -+target_link_libraries(mapnik-input-gdal PUBLIC mapnik ${GDAL_LIBRARIES}) -+set_target_properties(mapnik-input-gdal PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-gdal PROPERTIES OUTPUT_NAME "gdal") -+set_target_properties(mapnik-input-gdal PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-gdal DESTINATION bin/plugins/input) -diff --git a/plugins/input/geobuf/CMakeLists.txt b/plugins/input/geobuf/CMakeLists.txt -new file mode 100644 -index 0000000..1b798e5 ---- /dev/null -+++ b/plugins/input/geobuf/CMakeLists.txt -@@ -0,0 +1,9 @@ -+add_library(mapnik-input-geobuf SHARED -+ geobuf_datasource.cpp -+ geobuf_featureset.cpp) -+ -+target_link_libraries(mapnik-input-geobuf PUBLIC mapnik) -+set_target_properties(mapnik-input-geobuf PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-geobuf PROPERTIES OUTPUT_NAME "geobuf") -+set_target_properties(mapnik-input-geobuf PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-geobuf DESTINATION bin/plugins/input) -diff --git a/plugins/input/geojson/CMakeLists.txt b/plugins/input/geojson/CMakeLists.txt -new file mode 100644 -index 0000000..fb53a3c ---- /dev/null -+++ b/plugins/input/geojson/CMakeLists.txt -@@ -0,0 +1,11 @@ -+add_library(mapnik-input-geojson SHARED -+ geojson_datasource.cpp -+ geojson_featureset.cpp -+ geojson_index_featureset.cpp -+ geojson_memory_index_featureset.cpp) -+ -+target_link_libraries(mapnik-input-geojson PUBLIC mapnik mapnik-json) -+set_target_properties(mapnik-input-geojson PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-geojson PROPERTIES OUTPUT_NAME "geojson") -+set_target_properties(mapnik-input-geojson PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-geojson DESTINATION bin/plugins/input) -diff --git a/plugins/input/ogr/CMakeLists.txt b/plugins/input/ogr/CMakeLists.txt -new file mode 100644 -index 0000000..6d7fd9a ---- /dev/null -+++ b/plugins/input/ogr/CMakeLists.txt -@@ -0,0 +1,11 @@ -+add_library(mapnik-input-ogr SHARED -+ ogr_converter.cpp -+ ogr_datasource.cpp -+ ogr_featureset.cpp -+ ogr_index_featureset.cpp) -+ -+target_link_libraries(mapnik-input-ogr PUBLIC mapnik ${OGR_LIBRARIES} ${GDAL_LIBRARIES}) -+set_target_properties(mapnik-input-ogr PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-ogr PROPERTIES OUTPUT_NAME "ogr") -+set_target_properties(mapnik-input-ogr PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-ogr DESTINATION bin/plugins/input) -diff --git a/plugins/input/pgraster/CMakeLists.txt b/plugins/input/pgraster/CMakeLists.txt -new file mode 100644 -index 0000000..ada5d08 ---- /dev/null -+++ b/plugins/input/pgraster/CMakeLists.txt -@@ -0,0 +1,10 @@ -+add_library(mapnik-input-pgraster SHARED -+ pgraster_datasource.cpp -+ pgraster_featureset.cpp -+ pgraster_wkb_reader.cpp) -+ -+target_link_libraries(mapnik-input-pgraster PUBLIC mapnik ${PostgreSQL_LIBRARIES}) -+set_target_properties(mapnik-input-pgraster PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-pgraster PROPERTIES OUTPUT_NAME "pgraster") -+set_target_properties(mapnik-input-pgraster PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-pgraster DESTINATION bin/plugins/input) -diff --git a/plugins/input/postgis/CMakeLists.txt b/plugins/input/postgis/CMakeLists.txt -new file mode 100644 -index 0000000..385faa3 ---- /dev/null -+++ b/plugins/input/postgis/CMakeLists.txt -@@ -0,0 +1,9 @@ -+add_library(mapnik-input-postgis SHARED -+ postgis_datasource.cpp -+ postgis_featureset.cpp ) -+ -+target_link_libraries(mapnik-input-postgis PUBLIC mapnik ${PostgreSQL_LIBRARIES}) -+set_target_properties(mapnik-input-postgis PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-postgis PROPERTIES OUTPUT_NAME "postgis") -+set_target_properties(mapnik-input-postgis PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-postgis DESTINATION bin/plugins/input) -diff --git a/plugins/input/raster/CMakeLists.txt b/plugins/input/raster/CMakeLists.txt -new file mode 100644 -index 0000000..b08be98 ---- /dev/null -+++ b/plugins/input/raster/CMakeLists.txt -@@ -0,0 +1,10 @@ -+add_library(mapnik-input-raster SHARED -+ raster_datasource.cpp -+ raster_featureset.cpp -+ raster_info.cpp) -+ -+target_link_libraries(mapnik-input-raster PUBLIC mapnik) -+set_target_properties(mapnik-input-raster PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-raster PROPERTIES OUTPUT_NAME "raster") -+set_target_properties(mapnik-input-raster PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-raster DESTINATION bin/plugins/input) -diff --git a/plugins/input/shape/CMakeLists.txt b/plugins/input/shape/CMakeLists.txt -new file mode 100644 -index 0000000..cac54dd ---- /dev/null -+++ b/plugins/input/shape/CMakeLists.txt -@@ -0,0 +1,9 @@ -+SET(INPUT_SHAPE_SOURCES -+ dbfile.cpp dbf_test.cpp shape_datasource.cpp shape_featureset.cpp shape_index_featureset.cpp shape_io.cpp shape_utils.cpp) -+ -+add_library(mapnik-input-shape SHARED ${INPUT_SHAPE_SOURCES}) -+target_link_libraries(mapnik-input-shape PUBLIC mapnik) -+set_target_properties(mapnik-input-shape PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-shape PROPERTIES OUTPUT_NAME "shape") -+set_target_properties(mapnik-input-shape PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-shape DESTINATION bin/plugins/input) -diff --git a/plugins/input/sqlite/CMakeLists.txt b/plugins/input/sqlite/CMakeLists.txt -new file mode 100644 -index 0000000..b84528e ---- /dev/null -+++ b/plugins/input/sqlite/CMakeLists.txt -@@ -0,0 +1,9 @@ -+add_library(mapnik-input-sqlite SHARED -+ sqlite_datasource.cpp -+ sqlite_featureset.cpp) -+ -+target_link_libraries(mapnik-input-sqlite PUBLIC mapnik SQLite::SQLite3) -+set_target_properties(mapnik-input-sqlite PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-sqlite PROPERTIES OUTPUT_NAME "sqlite") -+set_target_properties(mapnik-input-sqlite PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-sqlite DESTINATION bin/plugins/input) -diff --git a/plugins/input/topojson/CMakeLists.txt b/plugins/input/topojson/CMakeLists.txt -new file mode 100644 -index 0000000..aeb559b ---- /dev/null -+++ b/plugins/input/topojson/CMakeLists.txt -@@ -0,0 +1,9 @@ -+add_library(mapnik-input-topojson SHARED -+ topojson_datasource.cpp -+ topojson_featureset.cpp) -+ -+target_link_libraries(mapnik-input-topojson PUBLIC mapnik mapnik-json) -+set_target_properties(mapnik-input-topojson PROPERTIES PREFIX "") -+set_target_properties(mapnik-input-topojson PROPERTIES OUTPUT_NAME "topojson") -+set_target_properties(mapnik-input-topojson PROPERTIES SUFFIX ".input") -+install(TARGETS mapnik-input-topojson DESTINATION bin/plugins/input) -diff --git a/src/agg/CMakeLists.txt b/src/agg/CMakeLists.txt -new file mode 100644 -index 0000000..e69de29 -diff --git a/src/geometry/CMakeLists.txt b/src/geometry/CMakeLists.txt -new file mode 100644 -index 0000000..e69de29 -diff --git a/src/json/CMakeLists.txt b/src/json/CMakeLists.txt -new file mode 100644 -index 0000000..76a23b9 ---- /dev/null -+++ b/src/json/CMakeLists.txt -@@ -0,0 +1,17 @@ -+add_library(mapnik-json STATIC -+ generic_json.cpp -+ mapnik_geometry_to_geojson.cpp -+ mapnik_json_feature_collection_grammar.cpp -+ mapnik_json_feature_grammar.cpp -+ mapnik_json_generator_grammar.cpp -+ mapnik_json_geometry_grammar.cpp -+ mapnik_json_geometry_parser.cpp -+ mapnik_json_positions_grammar.cpp -+ mapnik_topojson_grammar.cpp -+) -+ -+ -+target_link_libraries(mapnik-json INTERFACE ${ICUU_LIB}) -+ -+install(TARGETS mapnik-json LIBRARY DESTINATION lib) -+target_compile_definitions(mapnik-json PRIVATE ${MAPNIK_LIB_DEFINITION}) -diff --git a/src/wkt/CMakeLists.txt b/src/wkt/CMakeLists.txt -new file mode 100644 -index 0000000..dbaf010 ---- /dev/null -+++ b/src/wkt/CMakeLists.txt -@@ -0,0 +1,7 @@ -+add_library(mapnik-wkt STATIC -+ mapnik_wkt_grammar.cpp -+ mapnik_wkt_generator_grammar.cpp -+) -+ -+install(TARGETS mapnik-wkt LIBRARY DESTINATION lib) -+target_compile_definitions(mapnik-json PRIVATE ${MAPNIK_LIB_DEFINITION}) -diff --git a/utils/mapnik-render/CMakeLists.txt b/utils/mapnik-render/CMakeLists.txt -new file mode 100644 -index 0000000..7cfff00 ---- /dev/null -+++ b/utils/mapnik-render/CMakeLists.txt -@@ -0,0 +1,3 @@ -+add_executable(mapnik-render mapnik-render.cpp) -+target_link_libraries(mapnik-render PRIVATE mapnik) -+install(TARGETS mapnik-render DESTINATION tools) -diff --git a/utils/shapeindex/CMakeLists.txt b/utils/shapeindex/CMakeLists.txt -new file mode 100644 -index 0000000..484200a ---- /dev/null -+++ b/utils/shapeindex/CMakeLists.txt -@@ -0,0 +1,4 @@ -+add_executable(shapeindex shapeindex.cpp) -+target_link_libraries(shapeindex PRIVATE mapnik) -+target_include_directories(shapeindex PRIVATE ../../plugins/input/shape) -+install(TARGETS shapeindex DESTINATION tools) diff --git a/ports/mapnik/0002-sqlitepixelwidth.patch.txt b/ports/mapnik/0002-sqlitepixelwidth.patch.txt deleted file mode 100644 index df0e27ac13ee03..00000000000000 --- a/ports/mapnik/0002-sqlitepixelwidth.patch.txt +++ /dev/null @@ -1,120 +0,0 @@ -diff --git a/plugins/input/sqlite/sqlite_datasource.cpp b/plugins/input/sqlite/sqlite_datasource.cpp -index 28add64..286edce 100644 ---- a/plugins/input/sqlite/sqlite_datasource.cpp -+++ b/plugins/input/sqlite/sqlite_datasource.cpp -@@ -67,6 +67,8 @@ sqlite_datasource::sqlite_datasource(parameters const& params) - row_offset_(*params.get("row_offset", 0)), - row_limit_(*params.get("row_limit", 0)), - intersects_token_("!intersects!"), -+ pixel_width_token_("!pixel_width!"), -+ pixel_height_token_("!pixel_height!"), - desc_(sqlite_datasource::name(), *params.get("encoding", "utf-8")), - format_(mapnik::wkbAuto) - { -@@ -211,7 +213,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) - if (using_subquery_) - { - std::ostringstream s; -- std::string query = populate_tokens(table_); -+ std::string query = populate_tokens(table_,0,0); - s << "SELECT " << fields_ << " FROM (" << query << ") LIMIT 1"; - found_types_via_subquery = sqlite_utils::detect_types_from_subquery( - s.str(), -@@ -333,7 +335,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) - mapnik::progress_timer __stats2__(std::clog, "sqlite_datasource::init(detect_extent)"); - #endif - // TODO - clean this up - reducing arguments -- std::string query = populate_tokens(table_); -+ std::string query = populate_tokens(table_,0,0); - if (!sqlite_utils::detect_extent(dataset_, - has_spatial_index_, - extent_, -@@ -356,7 +358,7 @@ sqlite_datasource::sqlite_datasource(parameters const& params) - - } - --std::string sqlite_datasource::populate_tokens(std::string const& sql) const -+std::string sqlite_datasource::populate_tokens(std::string const& sql, double pixel_width, double pixel_height) const - { - std::string populated_sql = sql; - if (boost::algorithm::ifind_first(populated_sql, intersects_token_)) -@@ -364,6 +366,19 @@ std::string sqlite_datasource::populate_tokens(std::string const& sql) const - // replace with dummy comparison that is true - boost::algorithm::ireplace_first(populated_sql, intersects_token_, "1=1"); - } -+ if (boost::algorithm::icontains(sql, pixel_width_token_)) -+ { -+ std::ostringstream ss; -+ ss << pixel_width; -+ boost::algorithm::replace_all(populated_sql, pixel_width_token_, ss.str()); -+ } -+ if (boost::algorithm::icontains(sql, pixel_height_token_)) -+ { -+ std::ostringstream ss; -+ ss << pixel_height; -+ boost::algorithm::replace_all(populated_sql, pixel_height_token_, ss.str()); -+ } -+ - return populated_sql; - } - -@@ -487,6 +502,8 @@ featureset_ptr sqlite_datasource::features(query const& q) const - mapnik::box2d const& e = q.get_bbox(); - - std::ostringstream s; -+ const double px_gw = 1.0 / std::get<0>(q.resolution()); -+ const double px_gh = 1.0 / std::get<1>(q.resolution()); - mapnik::context_ptr ctx = std::make_shared(); - - s << "SELECT " << geometry_field_; -@@ -521,10 +538,8 @@ featureset_ptr sqlite_datasource::features(query const& q) const - geometry_table_, - intersects_token_); - } -- else -- { -- query = populate_tokens(table_); -- } -+ -+ query = populate_tokens(table_,px_gw,px_gh); - - s << query ; - -@@ -601,10 +616,7 @@ featureset_ptr sqlite_datasource::features_at_point(coord2d const& pt, double to - geometry_table_, - intersects_token_); - } -- else -- { -- query = populate_tokens(table_); -- } -+ query = populate_tokens(table_,0,0); - - s << query ; - -diff --git a/plugins/input/sqlite/sqlite_datasource.hpp b/plugins/input/sqlite/sqlite_datasource.hpp -index eab71e9..be35f37 100644 ---- a/plugins/input/sqlite/sqlite_datasource.hpp -+++ b/plugins/input/sqlite/sqlite_datasource.hpp -@@ -62,10 +62,10 @@ private: - // Fill init_statements with any statements - // needed to attach auxillary databases - void parse_attachdb(std::string const& attachdb) const; -- std::string populate_tokens(std::string const& sql) const; -+ std::string populate_tokens(std::string const& sql, double pixel_width, double pixel_height) const; - - mapnik::box2d extent_; -- bool extent_initialized_; -+ bool extent_initialized_; - mapnik::datasource::datasource_t type_; - std::string dataset_name_; - std::shared_ptr dataset_; -@@ -80,6 +80,8 @@ private: - mapnik::value_integer row_limit_; - // TODO - also add to postgis.input - const std::string intersects_token_; -+ const std::string pixel_width_token_; -+ const std::string pixel_height_token_; - mapnik::layer_descriptor desc_; - mapnik::wkbFormat format_; - bool use_spatial_index_; From 4cf815701d63a567ed09642198b9c7db8c48ceb6 Mon Sep 17 00:00:00 2001 From: am2222 Date: Tue, 9 Jun 2020 18:44:50 -0400 Subject: [PATCH 07/16] added mapnik cmake patch --- ports/mapnik/CONTROL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/mapnik/CONTROL b/ports/mapnik/CONTROL index abfacb42e1f4a6..25196f6992a8b3 100644 --- a/ports/mapnik/CONTROL +++ b/ports/mapnik/CONTROL @@ -1,7 +1,7 @@ Source: mapnik Version: 3.0.22 -Homepage: https://github.com/am2222/mapnik-windows/ -Description: Mapnik is an open source toolkit for developing mapping applications. Compiling on windows. (unofficial port) +Homepage: https://github.com/mapnik/mapnik +Description: Mapnik is an open source toolkit for developing mapping applications. Build-Depends: libjpeg-turbo, tiff, libpng, libwebp, freetype[bzip2,png], icu, libxml2, harfbuzz[icu], boost-locale[icu], boost-regex[icu], boost-gil, boost-geometry, boost-property-tree, boost-filesystem, boost-system, boost-spirit, boost-program-options, boost-assign, boost-bimap, mapbox-variant, zlib Feature: CAIRO From 6acefc5a3c9204237098bfa673f82235ab3bb6f9 Mon Sep 17 00:00:00 2001 From: am2222 Date: Wed, 10 Jun 2020 10:43:49 -0400 Subject: [PATCH 08/16] minor fixes --- ports/mapnik/CONTROL | 30 ++++++++-------- ports/mapnik/portfile.cmake | 70 +++++++++++-------------------------- 2 files changed, 35 insertions(+), 65 deletions(-) diff --git a/ports/mapnik/CONTROL b/ports/mapnik/CONTROL index 25196f6992a8b3..f3a2dffdc4f92c 100644 --- a/ports/mapnik/CONTROL +++ b/ports/mapnik/CONTROL @@ -4,55 +4,55 @@ Homepage: https://github.com/mapnik/mapnik Description: Mapnik is an open source toolkit for developing mapping applications. Build-Depends: libjpeg-turbo, tiff, libpng, libwebp, freetype[bzip2,png], icu, libxml2, harfbuzz[icu], boost-locale[icu], boost-regex[icu], boost-gil, boost-geometry, boost-property-tree, boost-filesystem, boost-system, boost-spirit, boost-program-options, boost-assign, boost-bimap, mapbox-variant, zlib -Feature: CAIRO +Feature: cairo Description: Cairo renderer Build-Depends: cairo,cairomm -Feature: PROJ4 +Feature: proj4 Description: PROJ4 Functionalities Build-Depends: proj4[database] -Feature: INPUT_CSV +Feature: input_csv Description: CSV input plugin -Feature: INPUT_GDAL +Feature: input_gdal Description: GDAL input plugin Build-Depends: gdal -Feature: INPUT_GEOBUF +Feature: input_geobuf Description: GEOBUF input plugin Build-Depends: protozero -Feature: INPUT_GEOJSON +Feature: input_geojson Description: GEOJSON input plugin -Feature: INPUT_OGR +Feature: input_ogr Description: OGR input plugin Build-Depends: gdal -Feature: INPUT_PGRASTER +Feature: input_pgraster Description: PGRASTER input plugin Build-Depends: libpq, libodb-pgsql -Feature: INPUT_POSTGIS +Feature: input_postgis Description: POSTGIS input plugin Build-Depends: libpq, libodb-pgsql -Feature: INPUT_RASTER +Feature: input_raster Description: RASTER input plugin -Feature: INPUT_SHAPE +Feature: input_shape Description: SHAPE input plugin -Feature: INPUT_SQLITE +Feature: input_sqlite Description: SQLITE input plugin Build-Depends: sqlite3 -Feature: INPUT_TOPOJSON +Feature: input_topojson Description: TOPOJSON input plugin -Feature: DEMO +Feature: demo Description: Make Demo Application -Feature: UTILS +Feature: utils Description: Make utilities Application including mapnik-rendrer and shapeindex diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index 1c30981ebd0f4e..c8b75087898e8b 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -1,37 +1,14 @@ -# find_program(GIT git) -# set(GIT_URL "https://github.com/am2222/mapnik-windows.git") -# set(GIT_REV "fdba45cd95b66576e47de2e56d30196bfc9de99d") - -# set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT}) - -# if(NOT EXISTS "${SOURCE_PATH}/.git") -# message(STATUS "Cloning and fetching submodules") -# vcpkg_execute_required_process( -# COMMAND ${GIT} clone --recurse-submodules ${GIT_URL} ${SOURCE_PATH} -# WORKING_DIRECTORY ${SOURCE_PATH} -# LOGNAME clone -# ) - -# message(STATUS "Checkout revision ${GIT_REV}") -# vcpkg_execute_required_process( -# COMMAND ${GIT} checkout ${GIT_REV} -# WORKING_DIRECTORY ${SOURCE_PATH} -# LOGNAME checkout -# ) -# endif() - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapnik/mapnik REF v3.0.23 SHA512 004429defd3047601b63c28bedd57d701ff88cdfb910a9958f4a10a1ac032d4d13316372122aef06eda60f2e4f67600b8842577db455f8c970009a0e86c5c1cf HEAD_REF master - PATCHES 0001-CMakeFiles.patch 0002-sqlitepixelwidth.patch + PATCHES + 0001-CMakeFiles.patch + 0002-sqlitepixelwidth.patch ) -message(STATUS "Adding worktree done") - - vcpkg_find_acquire_program(PYTHON2) get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY) vcpkg_add_to_path(${PYTHON2_DIR}) @@ -46,30 +23,27 @@ endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - # Keyword FEATURES is optional if INVERTED_FEATURES are not used - CAIRO WITH_CAIRO - DEMO WITH_DEMO - INPUT_CSV WITH_INPUT_CSV - INPUT_GDAL WITH_INPUT_GDAL - INPUT_GEOBUF WITH_INPUT_GEOBUF - INPUT_GEOJSON WITH_INPUT_GEOJSON - INPUT_OGR WITH_INPUT_OGR - INPUT_PGRASTER WITH_INPUT_PGRASTER - INPUT_POSTGIS WITH_INPUT_POSTGIS - INPUT_RASTER WITH_INPUT_RASTER - INPUT_SHAPE WITH_INPUT_SHAPE - INPUT_SQLITE WITH_INPUT_SQLITE - INPUT_TOPOJSON WITH_INPUT_TOPOJSON - PROJ4 WITH_PROJ4 - UTILS WITH_UTILS - + cairo WITH_CAIRO + demo WITH_DEMO + input_csv WITH_INPUT_CSV + input_gdal WITH_INPUT_GDAL + input_geobuf WITH_INPUT_GEOBUF + input_geojson WITH_INPUT_GEOJSON + input_ogr WITH_INPUT_OGR + input_pgraster WITH_INPUT_PGRASTER + input_postgis WITH_INPUT_POSTGIS + input_raster WITH_INPUT_RASTER + input_shape WITH_INPUT_SHAPE + input_sqlite WITH_INPUT_SQLITE + input_topojson WITH_INPUT_TOPOJSON + proj4 WITH_PROJ4 + utils WITH_UTILS ) vcpkg_configure_cmake( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT} - # PREFER_NINJA # Disable this option if project cannot be built with Ninja -# NO_CHARSET_FLAG # automatic templates + PREFER_NINJA # Disable this option if project cannot be built with Ninja OPTIONS ${FEATURE_OPTIONS} -DMAPNIK_STATIC_LIB=${MAPNIK_STATIC_LIB} @@ -79,8 +53,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() - - file(COPY ${SOURCE_PATH}/include/${PORT} DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_copy_pdbs() @@ -90,15 +62,13 @@ if ("UTILS" IN_LIST FEATURES) TOOL_NAMES mapnik-demo mapnik-render shapeindex AUTO_CLEAN ) + file(COPY ${SOURCE_PATH}/demo/data DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik/demo) file(COPY ${SOURCE_PATH}/fonts DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) file(COPY ${CURRENT_PACKAGES_DIR}/bin/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/tools/mapnik) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/mapnik-demo ${CURRENT_PACKAGES_DIR}/debug/bin/mapnik-render ${CURRENT_PACKAGES_DIR}/debug/bin/shapeindex) - - endif() - file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(INSTALL ${SOURCE_PATH}/fonts/unifont_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME fonts_copyright) \ No newline at end of file From b343e119c31c71404e837d2d448690aeb4522f81 Mon Sep 17 00:00:00 2001 From: am2222 Date: Wed, 10 Jun 2020 11:21:41 -0400 Subject: [PATCH 09/16] minor fixes --- ports/mapnik/portfile.cmake | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index c8b75087898e8b..f89a6ed326141c 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -21,7 +21,6 @@ elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static) set(MAPNIK_STATIC_LIB ON) endif() - vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS cairo WITH_CAIRO demo WITH_DEMO @@ -57,7 +56,7 @@ file(COPY ${SOURCE_PATH}/include/${PORT} DESTINATION ${CURRENT_PACKAGES_DIR}/inc vcpkg_copy_pdbs() -if ("UTILS" IN_LIST FEATURES) +if ("utils" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES mapnik-demo mapnik-render shapeindex AUTO_CLEAN From e07fc0ba15acfd881c3b0c042dc0e7bfbaedfdfd Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Fri, 14 Aug 2020 12:21:39 -0400 Subject: [PATCH 10/16] Update ports/mapnik/portfile.cmake Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> --- ports/mapnik/portfile.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index f89a6ed326141c..fd1a961955670e 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_from_github( SHA512 004429defd3047601b63c28bedd57d701ff88cdfb910a9958f4a10a1ac032d4d13316372122aef06eda60f2e4f67600b8842577db455f8c970009a0e86c5c1cf HEAD_REF master PATCHES - 0001-CMakeFiles.patch - 0002-sqlitepixelwidth.patch + 0001-CMakeFiles.patch + 0002-sqlitepixelwidth.patch ) vcpkg_find_acquire_program(PYTHON2) @@ -70,4 +70,4 @@ if ("utils" IN_LIST FEATURES) endif() file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) -file(INSTALL ${SOURCE_PATH}/fonts/unifont_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME fonts_copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/fonts/unifont_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME fonts_copyright) From 244c1005dd6be03d4dccc6dafb4f15a84bac4bc2 Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Fri, 14 Aug 2020 12:22:12 -0400 Subject: [PATCH 11/16] Update ports/mapnik/portfile.cmake Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> --- ports/mapnik/portfile.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index fd1a961955670e..d799b066696747 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -39,7 +39,6 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS utils WITH_UTILS ) - vcpkg_configure_cmake( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT} PREFER_NINJA # Disable this option if project cannot be built with Ninja From 15df35421c7df4a13b62d7a48a07bc71010c1c22 Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Fri, 14 Aug 2020 12:22:23 -0400 Subject: [PATCH 12/16] Update ports/mapnik/portfile.cmake Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> --- ports/mapnik/portfile.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index d799b066696747..4104d68a227909 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -42,11 +42,11 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS vcpkg_configure_cmake( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT} PREFER_NINJA # Disable this option if project cannot be built with Ninja - OPTIONS - ${FEATURE_OPTIONS} - -DMAPNIK_STATIC_LIB=${MAPNIK_STATIC_LIB} - -DBOOST_PREFIX=${CURRENT_INSTALLED_DIR}/include - -DFREE_TYPE_INCLUDE=${CURRENT_INSTALLED_DIR}/include/freetype2 + OPTIONS + ${FEATURE_OPTIONS} + -DMAPNIK_STATIC_LIB=${MAPNIK_STATIC_LIB} + -DBOOST_PREFIX=${CURRENT_INSTALLED_DIR}/include + -DFREE_TYPE_INCLUDE=${CURRENT_INSTALLED_DIR}/include/freetype2 ) vcpkg_install_cmake() From de01718ba688681233fe54fae3e1d38a69e03c8d Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Sat, 15 Aug 2020 22:41:49 -0400 Subject: [PATCH 13/16] Update portfile.cmake --- ports/mapnik/portfile.cmake | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index 4104d68a227909..aca04430594f4d 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -1,13 +1,27 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO mapnik/mapnik - REF v3.0.23 - SHA512 004429defd3047601b63c28bedd57d701ff88cdfb910a9958f4a10a1ac032d4d13316372122aef06eda60f2e4f67600b8842577db455f8c970009a0e86c5c1cf - HEAD_REF master - PATCHES - 0001-CMakeFiles.patch - 0002-sqlitepixelwidth.patch -) +find_program(GIT git) + +set(GIT_URL "https://github.com/am2222/mapnik-windows.git") +set(GIT_REV "5ec01cfa138fd3402e5cbf7d19f6fdb26ee63946") + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT}) + + +if(NOT EXISTS "${SOURCE_PATH}/.git") + message(STATUS "Cloning and fetching submodules") + vcpkg_execute_required_process( + COMMAND ${GIT} clone --recurse-submodules ${GIT_URL} ${SOURCE_PATH} + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME clone + ) + + message(STATUS "Checkout revision ${GIT_REV}") + vcpkg_execute_required_process( + COMMAND ${GIT} checkout ${GIT_REV} + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME checkout + ) +endif() + vcpkg_find_acquire_program(PYTHON2) get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY) From 3754afd895060812e74f8554210a2d2905adbbd2 Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Sat, 15 Aug 2020 22:53:09 -0400 Subject: [PATCH 14/16] Update portfile.cmake --- ports/mapnik/portfile.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index aca04430594f4d..7eee08417f6c2c 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -27,8 +27,6 @@ vcpkg_find_acquire_program(PYTHON2) get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY) vcpkg_add_to_path(${PYTHON2_DIR}) -set(BOOST_ROOT ${CURRENT_INSTALLED_DIR}) - if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(MAPNIK_STATIC_LIB OFF) elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static) From 85b668a23003cbb6f4a48017dc8921af09157b78 Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Wed, 2 Sep 2020 23:49:37 -0400 Subject: [PATCH 15/16] Update portfile.cmake --- ports/mapnik/portfile.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/mapnik/portfile.cmake b/ports/mapnik/portfile.cmake index 7eee08417f6c2c..b43359898faf4d 100644 --- a/ports/mapnik/portfile.cmake +++ b/ports/mapnik/portfile.cmake @@ -1,7 +1,7 @@ find_program(GIT git) set(GIT_URL "https://github.com/am2222/mapnik-windows.git") -set(GIT_REV "5ec01cfa138fd3402e5cbf7d19f6fdb26ee63946") +set(GIT_REV "cfa268fa6ab438568b9b5320f6fce4317f0e3d8e") set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${PORT}) From 4330b18ddaf46c5f015e6987f66d847ad0e5a340 Mon Sep 17 00:00:00 2001 From: Majid Hojati Date: Sun, 13 Sep 2020 18:23:17 -0400 Subject: [PATCH 16/16] Update ci.baseline.txt --- scripts/ci.baseline.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index d28f5b10598d8f..b64d6e3dcba58e 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1888,6 +1888,7 @@ ctp:x64-windows=skip ctp:x64-windows-static=skip ctp:x86-windows=skip protozero:x64-uwp=fail +protozero:arm-uwp=fail # clapack is replaced by lapack-reference on the platforms lapack-reference supports clapack:x64-linux=skip