more cmake
This commit is contained in:
parent
5420ccd6af
commit
e6f6d0f133
9 changed files with 451 additions and 4 deletions
|
@ -5,3 +5,83 @@ project(mapnik
|
|||
DESCRIPTION "Mapnik is an open source toolkit for developing mapping applications"
|
||||
LANGUAGES CXX
|
||||
)
|
||||
|
||||
option(BUILD_SHARED_LIBS ON)
|
||||
option(USE_EXTERNAL_MAPBOX_GEOMETRY OFF)
|
||||
option(USE_EXTERNAL_MAPBOX_POLYLABEL OFF)
|
||||
option(USE_EXTERNAL_MAPBOX_PROTOZERO OFF)
|
||||
option(USE_EXTERNAL_MAPBOX_VARIANT OFF)
|
||||
|
||||
set(CXX_STANDARD 17)
|
||||
|
||||
find_package(Boost 1.74 REQUIRED COMPONENTS filesystem system regex program_options)
|
||||
find_package(ICU REQUIRED COMPONENTS uc)
|
||||
|
||||
if(USE_EXTERNAL_MAPBOX_GEOMETRY)
|
||||
find_path(MAPBOX_GEOMETRY_INCLUDE_DIRS "mapbox/geometry.hpp")
|
||||
else()
|
||||
set(MAPBOX_GEOMETRY_INCLUDE_DIRS deps/mapbox/geometry/include)
|
||||
endif()
|
||||
if(NOT MAPBOX_GEOMETRY_INCLUDE_DIRS)
|
||||
message(FATAL_ERROR "Set MAPBOX_GEOMETRY_INCLUDE_DIRS to the mapbox/geometry.hpp include dir")
|
||||
endif()
|
||||
|
||||
if(USE_EXTERNAL_MAPBOX_POLYLABEL)
|
||||
find_path(MAPBOX_POLYLABEL_INCLUDE_DIRS "mapbox/polylabel.hpp")
|
||||
else()
|
||||
set(MAPBOX_POLYLABEL_INCLUDE_DIRS deps/mapbox/polylabel/include)
|
||||
endif()
|
||||
if(NOT MAPBOX_POLYLABEL_INCLUDE_DIRS)
|
||||
message(FATAL_ERROR "Set MAPBOX_POLYLABEL_INCLUDE_DIRS to the mapbox/geometry include dir")
|
||||
endif()
|
||||
|
||||
if(USE_EXTERNAL_MAPBOX_PROTOZERO)
|
||||
find_path(MAPBOX_PROTOZERO_INCLUDE_DIRS "protozero/pbf_message.hpp")
|
||||
else()
|
||||
set(MAPBOX_PROTOZERO_INCLUDE_DIRS deps/mapbox/protozero/include)
|
||||
endif()
|
||||
if(NOT MAPBOX_PROTOZERO_INCLUDE_DIRS)
|
||||
message(FATAL_ERROR "Set MAPBOX_PROTOZERO_INCLUDE_DIRS to the mapbox/protozero include dir")
|
||||
endif()
|
||||
|
||||
if(USE_EXTERNAL_MAPBOX_VARIANT)
|
||||
find_path(MAPBOX_VARIANT_INCLUDE_DIRS "mapbox/variant.hpp")
|
||||
else()
|
||||
set(MAPBOX_VARIANT_INCLUDE_DIRS deps/mapbox/variant/include)
|
||||
endif()
|
||||
if(NOT MAPBOX_VARIANT_INCLUDE_DIRS)
|
||||
message(FATAL_ERROR "Set MAPBOX_VARIANT_INCLUDE_DIRS to the mapbox/variant include dir")
|
||||
endif()
|
||||
|
||||
add_library(mapnik-headers INTERFACE)
|
||||
add_library(mapnik::headers ALIAS mapnik-headers)
|
||||
|
||||
target_include_directories(mapnik-headers INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
${MAPBOX_GEOMETRY_INCLUDE_DIRS}
|
||||
${MAPBOX_POLYLABEL_INCLUDE_DIRS}
|
||||
${MAPBOX_VARIANT_INCLUDE_DIRS}
|
||||
${MAPBOX_PROTOZERO_INCLUDE_DIRS}
|
||||
deps
|
||||
)
|
||||
target_link_libraries(mapnik-headers INTERFACE
|
||||
Boost::boost
|
||||
ICU::uc
|
||||
)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(mapnik-headers INTERFACE MAPNIK_EXPORTS)
|
||||
endif()
|
||||
|
||||
install(TARGETS mapnik-headers
|
||||
EXPORT MapnikTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
INCLUDES DESTINATION include/
|
||||
PUBLIC_HEADER DESTINATION include/
|
||||
)
|
||||
add_subdirectory(deps)
|
||||
add_subdirectory(src)
|
||||
#add_subdirectory(utils)
|
||||
#add_subdirectory(plugins)
|
||||
|
|
2
deps/CMakeLists.txt
vendored
Normal file
2
deps/CMakeLists.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
cmake_minimum_required(VERSION 3.15.0)
|
||||
add_subdirectory(agg)
|
20
deps/agg/CMakeLists.txt
vendored
Normal file
20
deps/agg/CMakeLists.txt
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
cmake_minimum_required(VERSION 3.15.0)
|
||||
project(agg)
|
||||
|
||||
add_library(agg INTERFACE)
|
||||
add_library(mapnik::agg ALIAS agg)
|
||||
|
||||
target_include_directories(agg INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
target_link_libraries(agg INTERFACE mapnik::headers)
|
||||
|
||||
install(TARGETS agg
|
||||
EXPORT MapnikTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
PUBLIC_HEADER DESTINATION include
|
||||
)
|
||||
# todo install headers
|
284
src/CMakeLists.txt
Normal file
284
src/CMakeLists.txt
Normal file
|
@ -0,0 +1,284 @@
|
|||
cmake_minimum_required(VERSION 3.15.0)
|
||||
|
||||
|
||||
add_subdirectory(json)
|
||||
add_subdirectory(wkt)
|
||||
|
||||
if(MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
|
||||
endif()
|
||||
|
||||
set(MAPNIK_SOURCES
|
||||
cairo_io.cpp
|
||||
color_factory.cpp
|
||||
color.cpp
|
||||
config_error.cpp
|
||||
conversions_numeric.cpp
|
||||
conversions_string.cpp
|
||||
dasharray_parser.cpp
|
||||
datasource_cache_static.cpp
|
||||
datasource_cache.cpp
|
||||
debug.cpp
|
||||
expression_grammar_x3.cpp
|
||||
expression_node.cpp
|
||||
expression_string.cpp
|
||||
expression.cpp
|
||||
feature_kv_iterator.cpp
|
||||
feature_style_processor.cpp
|
||||
feature_type_style.cpp
|
||||
font_engine_freetype.cpp
|
||||
font_set.cpp
|
||||
fs.cpp
|
||||
function_call.cpp
|
||||
generate_image_filters.cpp
|
||||
gradient.cpp
|
||||
image_any.cpp
|
||||
image_compositing.cpp
|
||||
image_copy.cpp
|
||||
image_filter_grammar_x3.cpp
|
||||
image_options.cpp
|
||||
image_reader.cpp
|
||||
image_scaling.cpp
|
||||
image_util_jpeg.cpp
|
||||
image_util_png.cpp
|
||||
image_util_tiff.cpp
|
||||
image_util_webp.cpp
|
||||
image_util.cpp
|
||||
image_view_any.cpp
|
||||
image_view.cpp
|
||||
image.cpp
|
||||
jpeg_reader.cpp
|
||||
layer.cpp
|
||||
libxml2_loader.cpp
|
||||
load_map.cpp
|
||||
map.cpp
|
||||
mapped_memory_cache.cpp
|
||||
marker_cache.cpp
|
||||
marker_helpers.cpp
|
||||
memory_datasource.cpp
|
||||
palette.cpp
|
||||
params.cpp
|
||||
parse_image_filters.cpp
|
||||
parse_path.cpp
|
||||
parse_transform.cpp
|
||||
path_expression_grammar_x3.cpp
|
||||
plugin.cpp
|
||||
png_reader.cpp
|
||||
proj_transform.cpp
|
||||
projection.cpp
|
||||
rapidxml_loader.cpp
|
||||
raster_colorizer.cpp
|
||||
renderer_common.cpp
|
||||
request.cpp
|
||||
rule.cpp
|
||||
save_map.cpp
|
||||
scale_denominator.cpp
|
||||
simplify.cpp
|
||||
symbolizer_enumerations.cpp
|
||||
symbolizer_keys.cpp
|
||||
symbolizer.cpp
|
||||
tiff_reader.cpp
|
||||
transform_expression_grammar_x3.cpp
|
||||
transform_expression.cpp
|
||||
twkb.cpp
|
||||
unicode.cpp
|
||||
value.cpp
|
||||
vertex_adapters.cpp
|
||||
vertex_cache.cpp
|
||||
warp.cpp
|
||||
well_known_srs.cpp
|
||||
wkb.cpp
|
||||
xml_tree.cpp
|
||||
)
|
||||
|
||||
set(AGG_COMPILE_SRC
|
||||
../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_vpgen_clip_polygon.cpp
|
||||
../deps/agg/src/agg_vpgen_clip_polyline.cpp
|
||||
../deps/agg/src/agg_vpgen_segmentator.cpp
|
||||
)
|
||||
|
||||
set(AGG_SRC
|
||||
agg/agg_renderer.cpp
|
||||
agg/process_building_symbolizer.cpp
|
||||
agg/process_debug_symbolizer.cpp
|
||||
agg/process_dot_symbolizer.cpp
|
||||
agg/process_group_symbolizer.cpp
|
||||
agg/process_line_pattern_symbolizer.cpp
|
||||
agg/process_line_symbolizer.cpp
|
||||
agg/process_markers_symbolizer.cpp
|
||||
agg/process_point_symbolizer.cpp
|
||||
agg/process_polygon_pattern_symbolizer.cpp
|
||||
agg/process_polygon_symbolizer.cpp
|
||||
agg/process_raster_symbolizer.cpp
|
||||
agg/process_shield_symbolizer.cpp
|
||||
agg/process_text_symbolizer.cpp
|
||||
${AGG_COMPILE_SRC}
|
||||
)
|
||||
|
||||
|
||||
set(CAIRO_SRC
|
||||
cairo/cairo_context.cpp
|
||||
cairo/cairo_render_vector.cpp
|
||||
cairo/cairo_renderer.cpp
|
||||
cairo/process_building_symbolizer.cpp
|
||||
cairo/process_debug_symbolizer.cpp
|
||||
cairo/process_group_symbolizer.cpp
|
||||
cairo/process_line_pattern_symbolizer.cpp
|
||||
cairo/process_line_symbolizer.cpp
|
||||
cairo/process_markers_symbolizer.cpp
|
||||
cairo/process_point_symbolizer.cpp
|
||||
cairo/process_polygon_pattern_symbolizer.cpp
|
||||
cairo/process_polygon_symbolizer.cpp
|
||||
cairo/process_raster_symbolizer.cpp
|
||||
cairo/process_text_symbolizer.cpp
|
||||
)
|
||||
|
||||
set(CSS_SRC
|
||||
css/css_color_grammar_x3.cpp
|
||||
css/css_grammar_x3.cpp
|
||||
)
|
||||
|
||||
set(GEOMETRY_SRC
|
||||
geometry/box2d.cpp
|
||||
geometry/closest_point.cpp
|
||||
geometry/envelope.cpp
|
||||
geometry/interior.cpp
|
||||
geometry/polylabel.cpp
|
||||
geometry/reprojection.cpp
|
||||
)
|
||||
|
||||
set(GRID_SRC
|
||||
grid/grid_renderer.cpp
|
||||
grid/grid.cpp
|
||||
grid/process_building_symbolizer.cpp
|
||||
grid/process_group_symbolizer.cpp
|
||||
grid/process_line_pattern_symbolizer.cpp
|
||||
grid/process_line_symbolizer.cpp
|
||||
grid/process_markers_symbolizer.cpp
|
||||
grid/process_point_symbolizer.cpp
|
||||
grid/process_polygon_pattern_symbolizer.cpp
|
||||
grid/process_polygon_symbolizer.cpp
|
||||
grid/process_raster_symbolizer.cpp
|
||||
grid/process_shield_symbolizer.cpp
|
||||
grid/process_text_symbolizer.cpp
|
||||
)
|
||||
|
||||
set(GROUP_SRC
|
||||
group/group_layout_manager.cpp
|
||||
group/group_rule.cpp
|
||||
group/group_symbolizer_helper.cpp
|
||||
)
|
||||
|
||||
set(RENDERER_COMMON_SRC
|
||||
renderer_common/pattern_alignment.cpp
|
||||
renderer_common/render_group_symbolizer.cpp
|
||||
renderer_common/render_markers_symbolizer.cpp
|
||||
renderer_common/render_pattern.cpp
|
||||
renderer_common/render_thunk_extractor.cpp
|
||||
)
|
||||
|
||||
set(SVG_SRC
|
||||
svg/svg_parser.cpp
|
||||
svg/svg_path_grammar_x3.cpp
|
||||
svg/svg_path_parser.cpp
|
||||
svg/svg_points_parser.cpp
|
||||
svg/svg_transform_parser.cpp
|
||||
|
||||
svg/output/process_line_symbolizer.cpp
|
||||
svg/output/process_polygon_symbolizer.cpp
|
||||
svg/output/process_symbolizers.cpp
|
||||
svg/output/svg_generator.cpp
|
||||
svg/output/svg_output_attributes.cpp
|
||||
svg/output/svg_output_grammars.cpp
|
||||
svg/output/svg_renderer.cpp
|
||||
)
|
||||
|
||||
set(TEXT_SRC
|
||||
text/color_font_renderer.cpp
|
||||
text/face.cpp
|
||||
text/font_feature_settings.cpp
|
||||
text/font_library.cpp
|
||||
text/glyph_positions.cpp
|
||||
text/itemizer.cpp
|
||||
text/placement_finder.cpp
|
||||
text/properties_util.cpp
|
||||
text/renderer.cpp
|
||||
text/scrptrun.cpp
|
||||
text/symbolizer_helpers.cpp
|
||||
text/text_layout.cpp
|
||||
text/text_line.cpp
|
||||
text/text_properties.cpp
|
||||
|
||||
text/formatting/base.cpp
|
||||
text/formatting/format.cpp
|
||||
text/formatting/layout.cpp
|
||||
text/formatting/list.cpp
|
||||
text/formatting/registry.cpp
|
||||
text/formatting/text.cpp
|
||||
|
||||
text/placements/base.cpp
|
||||
text/placements/dummy.cpp
|
||||
text/placements/list.cpp
|
||||
text/placements/registry.cpp
|
||||
text/placements/simple.cpp
|
||||
)
|
||||
|
||||
set(UTIL_SRC
|
||||
util/math.cpp
|
||||
util/utf_conv_win.cpp
|
||||
)
|
||||
|
||||
set(COMPILE_SRC
|
||||
${MAPNIK_SOURCES}
|
||||
${AGG_SRC}
|
||||
${CAIRO_SRC}
|
||||
${CSS_SRC}
|
||||
${GEOMETRY_SRC}
|
||||
${GRID_SRC}
|
||||
${GROUP_SRC}
|
||||
${RENDERER_COMMON_SRC}
|
||||
${SVG_SRC}
|
||||
${TEXT_SRC}
|
||||
${UTIL_SRC}
|
||||
)
|
||||
|
||||
add_library(mapnik
|
||||
${COMPILE_SRC}
|
||||
)
|
||||
|
||||
target_compile_definitions(mapnik PRIVATE MAPNIK_EXPORTS)
|
||||
target_link_libraries(mapnik PRIVATE
|
||||
mapnik::headers
|
||||
mapnik::agg
|
||||
)
|
||||
|
||||
install(TARGETS mapnik
|
||||
EXPORT MapnikTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
INCLUDES DESTINATION include/
|
||||
PUBLIC_HEADER DESTINATION include/
|
||||
)
|
34
src/json/CMakeLists.txt
Normal file
34
src/json/CMakeLists.txt
Normal file
|
@ -0,0 +1,34 @@
|
|||
cmake_minimum_required(VERSION 3.15.0)
|
||||
|
||||
add_library(json STATIC
|
||||
extract_bounding_boxes_x3.cpp
|
||||
feature_from_geojson.cpp
|
||||
feature_grammar_x3.cpp
|
||||
generic_json_grammar_x3.cpp
|
||||
geojson_grammar_x3.cpp
|
||||
geometry_from_geojson.cpp
|
||||
mapnik_feature_to_geojson.cpp
|
||||
mapnik_geometry_to_geojson.cpp
|
||||
mapnik_json_generator_grammar.cpp
|
||||
parse_feature.cpp
|
||||
positions_grammar_x3.cpp
|
||||
topojson_grammar_x3.cpp
|
||||
unicode_string_grammar_x3.cpp
|
||||
)
|
||||
add_library(mapnik::json ALIAS json)
|
||||
|
||||
target_include_directories(json PRIVATE
|
||||
${JPEG_INCLUDE_DIR}
|
||||
${LIBXML2_INCLUDE_DIR}
|
||||
${MAPBOX_POLYLABEL_INCLUDE_DIRS}
|
||||
${MAPBOX_GEOMETRY_INCLUDE_DIRS}
|
||||
${MAPBOX_VARIANT_INCLUDE_DIRS}
|
||||
)
|
||||
target_link_libraries(json PRIVATE mapnik::headers ${ICUU_LIB})
|
||||
|
||||
install(TARGETS json
|
||||
EXPORT MapnikTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
)
|
27
src/wkt/CMakeLists.txt
Normal file
27
src/wkt/CMakeLists.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
cmake_minimum_required(VERSION 3.15.0)
|
||||
|
||||
|
||||
add_library(wkt STATIC
|
||||
geometry_to_wkt.cpp
|
||||
mapnik_wkt_generator_grammar.cpp
|
||||
wkt_factory.cpp
|
||||
wkt_grammar_x3.cpp
|
||||
)
|
||||
add_library(mapnik::wkt ALIAS wkt)
|
||||
|
||||
target_include_directories(wkt PRIVATE
|
||||
${MAPNIK_INCLUDE_PATH}
|
||||
${JPEG_INCLUDE_DIR}
|
||||
${LIBXML2_INCLUDE_DIR}
|
||||
${MAPBOX_POLYLABEL_INCLUDE_DIRS}
|
||||
${MAPBOX_GEOMETRY_INCLUDE_DIRS}
|
||||
${MAPBOX_VARIANT_INCLUDE_DIRS}
|
||||
)
|
||||
target_link_libraries(wkt PRIVATE mapnik::headers)
|
||||
|
||||
install(TARGETS wkt
|
||||
EXPORT MapnikTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
)
|
Loading…
Reference in a new issue