[build] Rewrite our CMake buildsystem

- Try as much as possible not to use explicit compiler flags,
  relying on CMake to do the job in a portable away.
- Build mbgl-core as a single static library and leverage lto as
  much as possible.
- Support a MinSizRel build for other platforms.
- Make GLFW and Node a client of mbgl-core public interface.
- Same for the offline tool and static render tool.
- Use only target settings (do not pollute the global scope)
- Confine core code in a single file.
- Confine platform code inside a single include (exception being Qt
  that needs AUTOMOC before adding the targets)
- Align the Android build with the Android toolchain file.
This commit is contained in:
Thiago Marcos P. Santos
2019-07-23 17:40:30 +03:00
parent f28d14c7c5
commit eb02f8e96d
14 changed files with 2231 additions and 0 deletions

941
next/CMakeLists.txt Normal file
View File

@@ -0,0 +1,941 @@
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
project("Mapbox GL Native" LANGUAGES CXX C)
# TODO: Remove when PROJECT_SOURCE_DIR becomes the actual root.
set(MBGL_ROOT ${PROJECT_SOURCE_DIR}/..)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER Core)
enable_testing()
set(
CMAKE_CONFIGURATION_TYPES
Debug
DebugCoverage
MinSizeRel
RelWithDebInfo
Release
Sanitize
)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
option(MBGL_WITH_CORE_ONLY "Build only the core bits, no platform code" OFF)
option(MBGL_WITH_QT "Build Mapbox GL Qt bindings" OFF)
option(MBGL_WITH_SANITIZER "Use [address|thread|memory|undefined] here" OFF)
set(CMAKE_CXX_FLAGS_DEBUGCOVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage")
set(CMAKE_C_FLAGS_DEBUGCOVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage")
set(CMAKE_CXX_FLAGS_SANITIZE "-DSANITIZE -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=${MBGL_WITH_SANITIZER}")
set(CMAKE_C_FLAGS_SANITIZE "-DSANITEIZE -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=${MBGL_WITH_SANITIZER}")
if(MBGL_WITH_QT)
find_package(Qt5Core REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
endif()
# Avoid warnings when setting visibility
cmake_policy(SET CMP0063 NEW)
# Compiler/linker configuration
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
add_library(
mbgl-core STATIC
${MBGL_ROOT}/include/mbgl/actor/actor.hpp
${MBGL_ROOT}/include/mbgl/actor/actor_ref.hpp
${MBGL_ROOT}/include/mbgl/actor/aspiring_actor.hpp
${MBGL_ROOT}/include/mbgl/actor/established_actor.hpp
${MBGL_ROOT}/include/mbgl/actor/mailbox.hpp
${MBGL_ROOT}/include/mbgl/actor/message.hpp
${MBGL_ROOT}/include/mbgl/actor/scheduler.hpp
${MBGL_ROOT}/include/mbgl/annotation/annotation.hpp
${MBGL_ROOT}/include/mbgl/gfx/backend.hpp
${MBGL_ROOT}/include/mbgl/gfx/backend_scope.hpp
${MBGL_ROOT}/include/mbgl/gfx/renderable.hpp
${MBGL_ROOT}/include/mbgl/gfx/renderer_backend.hpp
${MBGL_ROOT}/include/mbgl/gl/renderable_resource.hpp
${MBGL_ROOT}/include/mbgl/gl/renderer_backend.hpp
${MBGL_ROOT}/include/mbgl/layermanager/background_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/circle_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/custom_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/fill_extrusion_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/fill_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/heatmap_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/hillshade_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/layer_manager.hpp
${MBGL_ROOT}/include/mbgl/layermanager/line_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/raster_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/symbol_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/map/bound_options.hpp
${MBGL_ROOT}/include/mbgl/map/camera.hpp
${MBGL_ROOT}/include/mbgl/map/change.hpp
${MBGL_ROOT}/include/mbgl/map/map.hpp
${MBGL_ROOT}/include/mbgl/map/map_observer.hpp
${MBGL_ROOT}/include/mbgl/map/map_options.hpp
${MBGL_ROOT}/include/mbgl/map/mode.hpp
${MBGL_ROOT}/include/mbgl/map/projection_mode.hpp
${MBGL_ROOT}/include/mbgl/math/clamp.hpp
${MBGL_ROOT}/include/mbgl/math/log2.hpp
${MBGL_ROOT}/include/mbgl/math/minmax.hpp
${MBGL_ROOT}/include/mbgl/math/wrap.hpp
${MBGL_ROOT}/include/mbgl/platform/gl_functions.hpp
${MBGL_ROOT}/include/mbgl/platform/thread.hpp
${MBGL_ROOT}/include/mbgl/renderer/query.hpp
${MBGL_ROOT}/include/mbgl/renderer/renderer.hpp
${MBGL_ROOT}/include/mbgl/renderer/renderer_frontend.hpp
${MBGL_ROOT}/include/mbgl/renderer/renderer_observer.hpp
${MBGL_ROOT}/include/mbgl/renderer/renderer_state.hpp
${MBGL_ROOT}/include/mbgl/storage/default_file_source.hpp
${MBGL_ROOT}/include/mbgl/storage/file_source.hpp
${MBGL_ROOT}/include/mbgl/storage/network_status.hpp
${MBGL_ROOT}/include/mbgl/storage/offline.hpp
${MBGL_ROOT}/include/mbgl/storage/online_file_source.hpp
${MBGL_ROOT}/include/mbgl/storage/resource.hpp
${MBGL_ROOT}/include/mbgl/storage/resource_options.hpp
${MBGL_ROOT}/include/mbgl/storage/resource_transform.hpp
${MBGL_ROOT}/include/mbgl/storage/response.hpp
${MBGL_ROOT}/include/mbgl/style/color_ramp_property_value.hpp
${MBGL_ROOT}/include/mbgl/style/conversion.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/color_ramp_property_value.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/constant.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/coordinate.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/custom_geometry_source_options.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/filter.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/function.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/geojson.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/geojson_options.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/get_json_type.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/layer.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/light.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/position.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/property_value.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/source.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/tileset.hpp
${MBGL_ROOT}/include/mbgl/style/conversion/transition_options.hpp
${MBGL_ROOT}/include/mbgl/style/conversion_impl.hpp
${MBGL_ROOT}/include/mbgl/style/expression/assertion.hpp
${MBGL_ROOT}/include/mbgl/style/expression/at.hpp
${MBGL_ROOT}/include/mbgl/style/expression/boolean_operator.hpp
${MBGL_ROOT}/include/mbgl/style/expression/case.hpp
${MBGL_ROOT}/include/mbgl/style/expression/check_subtype.hpp
${MBGL_ROOT}/include/mbgl/style/expression/coalesce.hpp
${MBGL_ROOT}/include/mbgl/style/expression/coercion.hpp
${MBGL_ROOT}/include/mbgl/style/expression/collator.hpp
${MBGL_ROOT}/include/mbgl/style/expression/collator_expression.hpp
${MBGL_ROOT}/include/mbgl/style/expression/comparison.hpp
${MBGL_ROOT}/include/mbgl/style/expression/compound_expression.hpp
${MBGL_ROOT}/include/mbgl/style/expression/dsl.hpp
${MBGL_ROOT}/include/mbgl/style/expression/error.hpp
${MBGL_ROOT}/include/mbgl/style/expression/expression.hpp
${MBGL_ROOT}/include/mbgl/style/expression/find_zoom_curve.hpp
${MBGL_ROOT}/include/mbgl/style/expression/format_expression.hpp
${MBGL_ROOT}/include/mbgl/style/expression/format_section_override.hpp
${MBGL_ROOT}/include/mbgl/style/expression/formatted.hpp
${MBGL_ROOT}/include/mbgl/style/expression/get_covering_stops.hpp
${MBGL_ROOT}/include/mbgl/style/expression/interpolate.hpp
${MBGL_ROOT}/include/mbgl/style/expression/interpolator.hpp
${MBGL_ROOT}/include/mbgl/style/expression/is_constant.hpp
${MBGL_ROOT}/include/mbgl/style/expression/is_expression.hpp
${MBGL_ROOT}/include/mbgl/style/expression/length.hpp
${MBGL_ROOT}/include/mbgl/style/expression/let.hpp
${MBGL_ROOT}/include/mbgl/style/expression/literal.hpp
${MBGL_ROOT}/include/mbgl/style/expression/match.hpp
${MBGL_ROOT}/include/mbgl/style/expression/number_format.hpp
${MBGL_ROOT}/include/mbgl/style/expression/parsing_context.hpp
${MBGL_ROOT}/include/mbgl/style/expression/step.hpp
${MBGL_ROOT}/include/mbgl/style/expression/type.hpp
${MBGL_ROOT}/include/mbgl/style/expression/value.hpp
${MBGL_ROOT}/include/mbgl/style/filter.hpp
${MBGL_ROOT}/include/mbgl/style/image.hpp
${MBGL_ROOT}/include/mbgl/style/layer.hpp
${MBGL_ROOT}/include/mbgl/style/layer_properties.hpp
${MBGL_ROOT}/include/mbgl/style/layers/background_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/circle_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/custom_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/fill_extrusion_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/fill_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/heatmap_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/hillshade_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/line_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/raster_layer.hpp
${MBGL_ROOT}/include/mbgl/style/layers/symbol_layer.hpp
${MBGL_ROOT}/include/mbgl/style/light.hpp
${MBGL_ROOT}/include/mbgl/style/position.hpp
${MBGL_ROOT}/include/mbgl/style/property_expression.hpp
${MBGL_ROOT}/include/mbgl/style/property_value.hpp
${MBGL_ROOT}/include/mbgl/style/source.hpp
${MBGL_ROOT}/include/mbgl/style/sources/custom_geometry_source.hpp
${MBGL_ROOT}/include/mbgl/style/sources/geojson_source.hpp
${MBGL_ROOT}/include/mbgl/style/sources/image_source.hpp
${MBGL_ROOT}/include/mbgl/style/sources/raster_dem_source.hpp
${MBGL_ROOT}/include/mbgl/style/sources/raster_source.hpp
${MBGL_ROOT}/include/mbgl/style/sources/vector_source.hpp
${MBGL_ROOT}/include/mbgl/style/style.hpp
${MBGL_ROOT}/include/mbgl/style/transition_options.hpp
${MBGL_ROOT}/include/mbgl/style/types.hpp
${MBGL_ROOT}/include/mbgl/style/undefined.hpp
${MBGL_ROOT}/include/mbgl/tile/tile_id.hpp
${MBGL_ROOT}/include/mbgl/tile/tile_necessity.hpp
${MBGL_ROOT}/include/mbgl/util/async_request.hpp
${MBGL_ROOT}/include/mbgl/util/async_task.hpp
${MBGL_ROOT}/include/mbgl/util/char_array_buffer.hpp
${MBGL_ROOT}/include/mbgl/util/chrono.hpp
${MBGL_ROOT}/include/mbgl/util/color.hpp
${MBGL_ROOT}/include/mbgl/util/compression.hpp
${MBGL_ROOT}/include/mbgl/util/constants.hpp
${MBGL_ROOT}/include/mbgl/util/convert.hpp
${MBGL_ROOT}/include/mbgl/util/enum.hpp
${MBGL_ROOT}/include/mbgl/util/event.hpp
${MBGL_ROOT}/include/mbgl/util/exception.hpp
${MBGL_ROOT}/include/mbgl/util/expected.hpp
${MBGL_ROOT}/include/mbgl/util/feature.hpp
${MBGL_ROOT}/include/mbgl/util/font_stack.hpp
${MBGL_ROOT}/include/mbgl/util/geo.hpp
${MBGL_ROOT}/include/mbgl/util/geojson.hpp
${MBGL_ROOT}/include/mbgl/util/geometry.hpp
${MBGL_ROOT}/include/mbgl/util/ignore.hpp
${MBGL_ROOT}/include/mbgl/util/image.hpp
${MBGL_ROOT}/include/mbgl/util/immutable.hpp
${MBGL_ROOT}/include/mbgl/util/indexed_tuple.hpp
${MBGL_ROOT}/include/mbgl/util/interpolate.hpp
${MBGL_ROOT}/include/mbgl/util/logging.hpp
${MBGL_ROOT}/include/mbgl/util/noncopyable.hpp
${MBGL_ROOT}/include/mbgl/util/optional.hpp
${MBGL_ROOT}/include/mbgl/util/platform.hpp
${MBGL_ROOT}/include/mbgl/util/premultiply.hpp
${MBGL_ROOT}/include/mbgl/util/projection.hpp
${MBGL_ROOT}/include/mbgl/util/range.hpp
${MBGL_ROOT}/include/mbgl/util/run_loop.hpp
${MBGL_ROOT}/include/mbgl/util/size.hpp
${MBGL_ROOT}/include/mbgl/util/string.hpp
${MBGL_ROOT}/include/mbgl/util/thread.hpp
${MBGL_ROOT}/include/mbgl/util/tileset.hpp
${MBGL_ROOT}/include/mbgl/util/timer.hpp
${MBGL_ROOT}/include/mbgl/util/traits.hpp
${MBGL_ROOT}/include/mbgl/util/type_list.hpp
${MBGL_ROOT}/include/mbgl/util/unitbezier.hpp
${MBGL_ROOT}/include/mbgl/util/util.hpp
${MBGL_ROOT}/include/mbgl/util/variant.hpp
${MBGL_ROOT}/include/mbgl/util/work_request.hpp
${MBGL_ROOT}/include/mbgl/util/work_task.hpp
${MBGL_ROOT}/include/mbgl/util/work_task_impl.hpp
${MBGL_ROOT}/src/csscolorparser/csscolorparser.cpp
${MBGL_ROOT}/src/csscolorparser/csscolorparser.hpp
${MBGL_ROOT}/src/mbgl/actor/mailbox.cpp
${MBGL_ROOT}/src/mbgl/actor/scheduler.cpp
${MBGL_ROOT}/src/mbgl/algorithm/update_renderables.hpp
${MBGL_ROOT}/src/mbgl/algorithm/update_tile_masks.hpp
${MBGL_ROOT}/src/mbgl/annotation/annotation_manager.cpp
${MBGL_ROOT}/src/mbgl/annotation/annotation_manager.hpp
${MBGL_ROOT}/src/mbgl/annotation/annotation_source.cpp
${MBGL_ROOT}/src/mbgl/annotation/annotation_source.hpp
${MBGL_ROOT}/src/mbgl/annotation/annotation_tile.cpp
${MBGL_ROOT}/src/mbgl/annotation/annotation_tile.hpp
${MBGL_ROOT}/src/mbgl/annotation/fill_annotation_impl.cpp
${MBGL_ROOT}/src/mbgl/annotation/fill_annotation_impl.hpp
${MBGL_ROOT}/src/mbgl/annotation/line_annotation_impl.cpp
${MBGL_ROOT}/src/mbgl/annotation/line_annotation_impl.hpp
${MBGL_ROOT}/src/mbgl/annotation/render_annotation_source.cpp
${MBGL_ROOT}/src/mbgl/annotation/render_annotation_source.hpp
${MBGL_ROOT}/src/mbgl/annotation/shape_annotation_impl.cpp
${MBGL_ROOT}/src/mbgl/annotation/shape_annotation_impl.hpp
${MBGL_ROOT}/src/mbgl/annotation/symbol_annotation_impl.cpp
${MBGL_ROOT}/src/mbgl/annotation/symbol_annotation_impl.hpp
${MBGL_ROOT}/src/mbgl/geometry/anchor.hpp
${MBGL_ROOT}/src/mbgl/geometry/debug_font_data.hpp
${MBGL_ROOT}/src/mbgl/geometry/dem_data.cpp
${MBGL_ROOT}/src/mbgl/geometry/dem_data.hpp
${MBGL_ROOT}/src/mbgl/geometry/feature_index.cpp
${MBGL_ROOT}/src/mbgl/geometry/feature_index.hpp
${MBGL_ROOT}/src/mbgl/geometry/line_atlas.cpp
${MBGL_ROOT}/src/mbgl/geometry/line_atlas.hpp
${MBGL_ROOT}/src/mbgl/gfx/attribute.cpp
${MBGL_ROOT}/src/mbgl/gfx/attribute.hpp
${MBGL_ROOT}/src/mbgl/gfx/color_mode.hpp
${MBGL_ROOT}/src/mbgl/gfx/command_encoder.hpp
${MBGL_ROOT}/src/mbgl/gfx/context.hpp
${MBGL_ROOT}/src/mbgl/gfx/cull_face_mode.hpp
${MBGL_ROOT}/src/mbgl/gfx/debug_group.hpp
${MBGL_ROOT}/src/mbgl/gfx/depth_mode.hpp
${MBGL_ROOT}/src/mbgl/gfx/draw_mode.hpp
${MBGL_ROOT}/src/mbgl/gfx/draw_scope.hpp
${MBGL_ROOT}/src/mbgl/gfx/index_buffer.hpp
${MBGL_ROOT}/src/mbgl/gfx/index_vector.hpp
${MBGL_ROOT}/src/mbgl/gfx/offscreen_texture.hpp
${MBGL_ROOT}/src/mbgl/gfx/program.hpp
${MBGL_ROOT}/src/mbgl/gfx/render_pass.hpp
${MBGL_ROOT}/src/mbgl/gfx/renderbuffer.hpp
${MBGL_ROOT}/src/mbgl/gfx/renderer_backend.cpp
${MBGL_ROOT}/src/mbgl/gfx/stencil_mode.hpp
${MBGL_ROOT}/src/mbgl/gfx/texture.hpp
${MBGL_ROOT}/src/mbgl/gfx/types.hpp
${MBGL_ROOT}/src/mbgl/gfx/uniform.hpp
${MBGL_ROOT}/src/mbgl/gfx/upload_pass.hpp
${MBGL_ROOT}/src/mbgl/gfx/vertex_buffer.hpp
${MBGL_ROOT}/src/mbgl/gfx/vertex_vector.hpp
${MBGL_ROOT}/src/mbgl/gl/attribute.cpp
${MBGL_ROOT}/src/mbgl/gl/attribute.hpp
${MBGL_ROOT}/src/mbgl/gl/command_encoder.cpp
${MBGL_ROOT}/src/mbgl/gl/command_encoder.hpp
${MBGL_ROOT}/src/mbgl/gl/context.cpp
${MBGL_ROOT}/src/mbgl/gl/context.hpp
${MBGL_ROOT}/src/mbgl/gl/debugging_extension.cpp
${MBGL_ROOT}/src/mbgl/gl/debugging_extension.hpp
${MBGL_ROOT}/src/mbgl/gl/defines.hpp
${MBGL_ROOT}/src/mbgl/gl/draw_scope_resource.hpp
${MBGL_ROOT}/src/mbgl/gl/enum.cpp
${MBGL_ROOT}/src/mbgl/gl/enum.hpp
${MBGL_ROOT}/src/mbgl/gl/extension.hpp
${MBGL_ROOT}/src/mbgl/gl/framebuffer.hpp
${MBGL_ROOT}/src/mbgl/gl/index_buffer_resource.hpp
${MBGL_ROOT}/src/mbgl/gl/object.cpp
${MBGL_ROOT}/src/mbgl/gl/object.hpp
${MBGL_ROOT}/src/mbgl/gl/offscreen_texture.cpp
${MBGL_ROOT}/src/mbgl/gl/offscreen_texture.hpp
${MBGL_ROOT}/src/mbgl/gl/program.hpp
${MBGL_ROOT}/src/mbgl/gl/render_pass.cpp
${MBGL_ROOT}/src/mbgl/gl/render_pass.hpp
${MBGL_ROOT}/src/mbgl/gl/renderbuffer_resource.hpp
${MBGL_ROOT}/src/mbgl/gl/renderer_backend.cpp
${MBGL_ROOT}/src/mbgl/gl/state.hpp
${MBGL_ROOT}/src/mbgl/gl/texture.cpp
${MBGL_ROOT}/src/mbgl/gl/texture.hpp
${MBGL_ROOT}/src/mbgl/gl/texture_resource.hpp
${MBGL_ROOT}/src/mbgl/gl/types.hpp
${MBGL_ROOT}/src/mbgl/gl/uniform.cpp
${MBGL_ROOT}/src/mbgl/gl/uniform.hpp
${MBGL_ROOT}/src/mbgl/gl/upload_pass.cpp
${MBGL_ROOT}/src/mbgl/gl/upload_pass.hpp
${MBGL_ROOT}/src/mbgl/gl/value.cpp
${MBGL_ROOT}/src/mbgl/gl/value.hpp
${MBGL_ROOT}/src/mbgl/gl/vertex_array.cpp
${MBGL_ROOT}/src/mbgl/gl/vertex_array.hpp
${MBGL_ROOT}/src/mbgl/gl/vertex_array_extension.hpp
${MBGL_ROOT}/src/mbgl/gl/vertex_buffer_resource.hpp
${MBGL_ROOT}/src/mbgl/layermanager/background_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/circle_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/custom_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/fill_extrusion_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/fill_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/heatmap_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/hillshade_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/layer_manager.cpp
${MBGL_ROOT}/src/mbgl/layermanager/line_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/raster_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/symbol_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layout/clip_lines.cpp
${MBGL_ROOT}/src/mbgl/layout/clip_lines.hpp
${MBGL_ROOT}/src/mbgl/layout/layout.hpp
${MBGL_ROOT}/src/mbgl/layout/merge_lines.cpp
${MBGL_ROOT}/src/mbgl/layout/merge_lines.hpp
${MBGL_ROOT}/src/mbgl/layout/pattern_layout.hpp
${MBGL_ROOT}/src/mbgl/layout/symbol_feature.hpp
${MBGL_ROOT}/src/mbgl/layout/symbol_instance.cpp
${MBGL_ROOT}/src/mbgl/layout/symbol_instance.hpp
${MBGL_ROOT}/src/mbgl/layout/symbol_layout.cpp
${MBGL_ROOT}/src/mbgl/layout/symbol_layout.hpp
${MBGL_ROOT}/src/mbgl/layout/symbol_projection.cpp
${MBGL_ROOT}/src/mbgl/layout/symbol_projection.hpp
${MBGL_ROOT}/src/mbgl/map/map.cpp
${MBGL_ROOT}/src/mbgl/map/map_impl.cpp
${MBGL_ROOT}/src/mbgl/map/map_impl.hpp
${MBGL_ROOT}/src/mbgl/map/map_options.cpp
${MBGL_ROOT}/src/mbgl/map/transform.cpp
${MBGL_ROOT}/src/mbgl/map/transform.hpp
${MBGL_ROOT}/src/mbgl/map/transform_state.cpp
${MBGL_ROOT}/src/mbgl/map/transform_state.hpp
${MBGL_ROOT}/src/mbgl/map/zoom_history.hpp
${MBGL_ROOT}/src/mbgl/math/log2.cpp
${MBGL_ROOT}/src/mbgl/platform/gl_functions.cpp
${MBGL_ROOT}/src/mbgl/programs/attributes.hpp
${MBGL_ROOT}/src/mbgl/programs/background_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/background_program.cpp
${MBGL_ROOT}/src/mbgl/programs/background_program.hpp
${MBGL_ROOT}/src/mbgl/programs/circle_program.cpp
${MBGL_ROOT}/src/mbgl/programs/circle_program.hpp
${MBGL_ROOT}/src/mbgl/programs/clipping_mask_program.cpp
${MBGL_ROOT}/src/mbgl/programs/clipping_mask_program.hpp
${MBGL_ROOT}/src/mbgl/programs/collision_box_program.cpp
${MBGL_ROOT}/src/mbgl/programs/collision_box_program.hpp
${MBGL_ROOT}/src/mbgl/programs/collision_circle_program.hpp
${MBGL_ROOT}/src/mbgl/programs/debug_program.cpp
${MBGL_ROOT}/src/mbgl/programs/debug_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_extrusion_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_extrusion_program.cpp
${MBGL_ROOT}/src/mbgl/programs/fill_extrusion_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_outline_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_outline_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_program.cpp
${MBGL_ROOT}/src/mbgl/programs/fill_program.hpp
${MBGL_ROOT}/src/mbgl/programs/gl/background.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/background_pattern.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/circle.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/clipping_mask.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/collision_box.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/collision_circle.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/debug.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/fill.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/fill_extrusion.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/fill_extrusion_pattern.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/fill_outline.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/fill_outline_pattern.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/fill_pattern.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/heatmap.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/heatmap_texture.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/hillshade.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/hillshade_prepare.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/line.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/line_gradient.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/line_pattern.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/line_sdf.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/preludes.hpp
${MBGL_ROOT}/src/mbgl/programs/gl/raster.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/shader_source.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/shader_source.hpp
${MBGL_ROOT}/src/mbgl/programs/gl/shaders.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/shaders.hpp
${MBGL_ROOT}/src/mbgl/programs/gl/symbol_icon.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/symbol_sdf_icon.cpp
${MBGL_ROOT}/src/mbgl/programs/gl/symbol_sdf_text.cpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_program.cpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_program.hpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_texture_program.cpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_texture_program.hpp
${MBGL_ROOT}/src/mbgl/programs/hillshade_prepare_program.cpp
${MBGL_ROOT}/src/mbgl/programs/hillshade_prepare_program.hpp
${MBGL_ROOT}/src/mbgl/programs/hillshade_program.cpp
${MBGL_ROOT}/src/mbgl/programs/hillshade_program.hpp
${MBGL_ROOT}/src/mbgl/programs/line_gradient_program.hpp
${MBGL_ROOT}/src/mbgl/programs/line_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/line_program.cpp
${MBGL_ROOT}/src/mbgl/programs/line_program.hpp
${MBGL_ROOT}/src/mbgl/programs/line_sdf_program.hpp
${MBGL_ROOT}/src/mbgl/programs/program.hpp
${MBGL_ROOT}/src/mbgl/programs/program_parameters.cpp
${MBGL_ROOT}/src/mbgl/programs/program_parameters.hpp
${MBGL_ROOT}/src/mbgl/programs/programs.cpp
${MBGL_ROOT}/src/mbgl/programs/programs.hpp
${MBGL_ROOT}/src/mbgl/programs/raster_program.cpp
${MBGL_ROOT}/src/mbgl/programs/raster_program.hpp
${MBGL_ROOT}/src/mbgl/programs/segment.hpp
${MBGL_ROOT}/src/mbgl/programs/symbol_icon_program.hpp
${MBGL_ROOT}/src/mbgl/programs/symbol_program.cpp
${MBGL_ROOT}/src/mbgl/programs/symbol_program.hpp
${MBGL_ROOT}/src/mbgl/programs/symbol_sdf_icon_program.hpp
${MBGL_ROOT}/src/mbgl/programs/symbol_sdf_text_program.hpp
${MBGL_ROOT}/src/mbgl/programs/textures.hpp
${MBGL_ROOT}/src/mbgl/programs/uniforms.hpp
${MBGL_ROOT}/src/mbgl/renderer/backend_scope.cpp
${MBGL_ROOT}/src/mbgl/renderer/bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/bucket_parameters.cpp
${MBGL_ROOT}/src/mbgl/renderer/bucket_parameters.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/circle_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/circle_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/debug_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/debug_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/fill_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/fill_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/heatmap_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/heatmap_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/hillshade_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/hillshade_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/line_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/line_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/raster_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/raster_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/symbol_bucket.cpp
${MBGL_ROOT}/src/mbgl/renderer/buckets/symbol_bucket.hpp
${MBGL_ROOT}/src/mbgl/renderer/cross_faded_property_evaluator.cpp
${MBGL_ROOT}/src/mbgl/renderer/cross_faded_property_evaluator.hpp
${MBGL_ROOT}/src/mbgl/renderer/data_driven_property_evaluator.hpp
${MBGL_ROOT}/src/mbgl/renderer/group_by_layout.cpp
${MBGL_ROOT}/src/mbgl/renderer/group_by_layout.hpp
${MBGL_ROOT}/src/mbgl/renderer/image_atlas.cpp
${MBGL_ROOT}/src/mbgl/renderer/image_atlas.hpp
${MBGL_ROOT}/src/mbgl/renderer/image_manager.cpp
${MBGL_ROOT}/src/mbgl/renderer/image_manager.hpp
${MBGL_ROOT}/src/mbgl/renderer/image_manager_observer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_background_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_background_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_circle_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_circle_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_custom_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_custom_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_fill_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_fill_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_heatmap_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_heatmap_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_hillshade_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_hillshade_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_line_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_line_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_raster_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_raster_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_symbol_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/layers/render_symbol_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/paint_parameters.cpp
${MBGL_ROOT}/src/mbgl/renderer/paint_parameters.hpp
${MBGL_ROOT}/src/mbgl/renderer/paint_property_binder.hpp
${MBGL_ROOT}/src/mbgl/renderer/paint_property_statistics.hpp
${MBGL_ROOT}/src/mbgl/renderer/pattern_atlas.cpp
${MBGL_ROOT}/src/mbgl/renderer/pattern_atlas.hpp
${MBGL_ROOT}/src/mbgl/renderer/possibly_evaluated_property_value.hpp
${MBGL_ROOT}/src/mbgl/renderer/property_evaluation_parameters.hpp
${MBGL_ROOT}/src/mbgl/renderer/property_evaluator.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_layer.cpp
${MBGL_ROOT}/src/mbgl/renderer/render_layer.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_light.cpp
${MBGL_ROOT}/src/mbgl/renderer/render_light.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_orchestrator.cpp
${MBGL_ROOT}/src/mbgl/renderer/render_orchestrator.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_pass.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/render_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_source_observer.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_static_data.cpp
${MBGL_ROOT}/src/mbgl/renderer/render_static_data.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_tile.cpp
${MBGL_ROOT}/src/mbgl/renderer/render_tile.hpp
${MBGL_ROOT}/src/mbgl/renderer/render_tree.hpp
${MBGL_ROOT}/src/mbgl/renderer/renderer.cpp
${MBGL_ROOT}/src/mbgl/renderer/renderer_impl.cpp
${MBGL_ROOT}/src/mbgl/renderer/renderer_impl.hpp
${MBGL_ROOT}/src/mbgl/renderer/renderer_state.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_custom_geometry_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_geojson_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_geojson_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_image_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_image_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_raster_dem_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_raster_dem_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_raster_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_raster_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_tile_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_tile_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_vector_source.cpp
${MBGL_ROOT}/src/mbgl/renderer/sources/render_vector_source.hpp
${MBGL_ROOT}/src/mbgl/renderer/style_diff.cpp
${MBGL_ROOT}/src/mbgl/renderer/style_diff.hpp
${MBGL_ROOT}/src/mbgl/renderer/tile_mask.hpp
${MBGL_ROOT}/src/mbgl/renderer/tile_parameters.hpp
${MBGL_ROOT}/src/mbgl/renderer/tile_pyramid.cpp
${MBGL_ROOT}/src/mbgl/renderer/tile_pyramid.hpp
${MBGL_ROOT}/src/mbgl/renderer/tile_render_data.cpp
${MBGL_ROOT}/src/mbgl/renderer/tile_render_data.hpp
${MBGL_ROOT}/src/mbgl/renderer/transition_parameters.hpp
${MBGL_ROOT}/src/mbgl/renderer/update_parameters.hpp
${MBGL_ROOT}/src/mbgl/renderer/upload_parameters.hpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_loader.cpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_loader.hpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_loader_observer.hpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_loader_worker.cpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_loader_worker.hpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_parser.cpp
${MBGL_ROOT}/src/mbgl/sprite/sprite_parser.hpp
${MBGL_ROOT}/src/mbgl/storage/asset_file_source.hpp
${MBGL_ROOT}/src/mbgl/storage/file_source.cpp
${MBGL_ROOT}/src/mbgl/storage/http_file_source.hpp
${MBGL_ROOT}/src/mbgl/storage/local_file_source.hpp
${MBGL_ROOT}/src/mbgl/storage/network_status.cpp
${MBGL_ROOT}/src/mbgl/storage/resource.cpp
${MBGL_ROOT}/src/mbgl/storage/resource_options.cpp
${MBGL_ROOT}/src/mbgl/storage/resource_transform.cpp
${MBGL_ROOT}/src/mbgl/storage/response.cpp
${MBGL_ROOT}/src/mbgl/style/collection.hpp
${MBGL_ROOT}/src/mbgl/style/conversion/color_ramp_property_value.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/constant.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/coordinate.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/custom_geometry_source_options.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/filter.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/function.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/geojson.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/geojson_options.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/get_json_type.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/json.hpp
${MBGL_ROOT}/src/mbgl/style/conversion/layer.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/light.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/position.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/property_value.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/source.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/stringify.hpp
${MBGL_ROOT}/src/mbgl/style/conversion/tileset.cpp
${MBGL_ROOT}/src/mbgl/style/conversion/transition_options.cpp
${MBGL_ROOT}/src/mbgl/style/custom_tile_loader.cpp
${MBGL_ROOT}/src/mbgl/style/custom_tile_loader.hpp
${MBGL_ROOT}/src/mbgl/style/expression/assertion.cpp
${MBGL_ROOT}/src/mbgl/style/expression/at.cpp
${MBGL_ROOT}/src/mbgl/style/expression/boolean_operator.cpp
${MBGL_ROOT}/src/mbgl/style/expression/case.cpp
${MBGL_ROOT}/src/mbgl/style/expression/check_subtype.cpp
${MBGL_ROOT}/src/mbgl/style/expression/coalesce.cpp
${MBGL_ROOT}/src/mbgl/style/expression/coercion.cpp
${MBGL_ROOT}/src/mbgl/style/expression/collator_expression.cpp
${MBGL_ROOT}/src/mbgl/style/expression/comparison.cpp
${MBGL_ROOT}/src/mbgl/style/expression/compound_expression.cpp
${MBGL_ROOT}/src/mbgl/style/expression/dsl.cpp
${MBGL_ROOT}/src/mbgl/style/expression/dsl_impl.hpp
${MBGL_ROOT}/src/mbgl/style/expression/expression.cpp
${MBGL_ROOT}/src/mbgl/style/expression/find_zoom_curve.cpp
${MBGL_ROOT}/src/mbgl/style/expression/format_expression.cpp
${MBGL_ROOT}/src/mbgl/style/expression/formatted.cpp
${MBGL_ROOT}/src/mbgl/style/expression/get_covering_stops.cpp
${MBGL_ROOT}/src/mbgl/style/expression/interpolate.cpp
${MBGL_ROOT}/src/mbgl/style/expression/is_constant.cpp
${MBGL_ROOT}/src/mbgl/style/expression/is_expression.cpp
${MBGL_ROOT}/src/mbgl/style/expression/length.cpp
${MBGL_ROOT}/src/mbgl/style/expression/let.cpp
${MBGL_ROOT}/src/mbgl/style/expression/literal.cpp
${MBGL_ROOT}/src/mbgl/style/expression/match.cpp
${MBGL_ROOT}/src/mbgl/style/expression/number_format.cpp
${MBGL_ROOT}/src/mbgl/style/expression/parsing_context.cpp
${MBGL_ROOT}/src/mbgl/style/expression/step.cpp
${MBGL_ROOT}/src/mbgl/style/expression/util.cpp
${MBGL_ROOT}/src/mbgl/style/expression/util.hpp
${MBGL_ROOT}/src/mbgl/style/expression/value.cpp
${MBGL_ROOT}/src/mbgl/style/filter.cpp
${MBGL_ROOT}/src/mbgl/style/image.cpp
${MBGL_ROOT}/src/mbgl/style/image_impl.cpp
${MBGL_ROOT}/src/mbgl/style/image_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layer.cpp
${MBGL_ROOT}/src/mbgl/style/layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layer_observer.hpp
${MBGL_ROOT}/src/mbgl/style/layers/background_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/background_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/background_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/background_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/background_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/circle_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/circle_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/circle_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/circle_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/circle_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/custom_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/custom_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/custom_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_extrusion_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_extrusion_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_extrusion_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_extrusion_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/fill_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/heatmap_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/heatmap_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/heatmap_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/heatmap_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/heatmap_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/hillshade_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/hillshade_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/hillshade_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/hillshade_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/hillshade_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/line_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/line_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/line_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/line_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/line_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/raster_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/raster_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/raster_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/raster_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/raster_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layers/symbol_layer.cpp
${MBGL_ROOT}/src/mbgl/style/layers/symbol_layer_impl.cpp
${MBGL_ROOT}/src/mbgl/style/layers/symbol_layer_impl.hpp
${MBGL_ROOT}/src/mbgl/style/layers/symbol_layer_properties.cpp
${MBGL_ROOT}/src/mbgl/style/layers/symbol_layer_properties.hpp
${MBGL_ROOT}/src/mbgl/style/layout_property.hpp
${MBGL_ROOT}/src/mbgl/style/light.cpp
${MBGL_ROOT}/src/mbgl/style/light_impl.cpp
${MBGL_ROOT}/src/mbgl/style/light_impl.hpp
${MBGL_ROOT}/src/mbgl/style/light_observer.hpp
${MBGL_ROOT}/src/mbgl/style/observer.hpp
${MBGL_ROOT}/src/mbgl/style/paint_property.hpp
${MBGL_ROOT}/src/mbgl/style/parser.cpp
${MBGL_ROOT}/src/mbgl/style/parser.hpp
${MBGL_ROOT}/src/mbgl/style/properties.hpp
${MBGL_ROOT}/src/mbgl/style/property_expression.cpp
${MBGL_ROOT}/src/mbgl/style/rapidjson_conversion.hpp
${MBGL_ROOT}/src/mbgl/style/source.cpp
${MBGL_ROOT}/src/mbgl/style/source_impl.cpp
${MBGL_ROOT}/src/mbgl/style/source_impl.hpp
${MBGL_ROOT}/src/mbgl/style/source_observer.hpp
${MBGL_ROOT}/src/mbgl/style/sources/custom_geometry_source.cpp
${MBGL_ROOT}/src/mbgl/style/sources/custom_geometry_source_impl.cpp
${MBGL_ROOT}/src/mbgl/style/sources/custom_geometry_source_impl.hpp
${MBGL_ROOT}/src/mbgl/style/sources/geojson_source.cpp
${MBGL_ROOT}/src/mbgl/style/sources/geojson_source_impl.cpp
${MBGL_ROOT}/src/mbgl/style/sources/geojson_source_impl.hpp
${MBGL_ROOT}/src/mbgl/style/sources/image_source.cpp
${MBGL_ROOT}/src/mbgl/style/sources/image_source_impl.cpp
${MBGL_ROOT}/src/mbgl/style/sources/image_source_impl.hpp
${MBGL_ROOT}/src/mbgl/style/sources/raster_dem_source.cpp
${MBGL_ROOT}/src/mbgl/style/sources/raster_source.cpp
${MBGL_ROOT}/src/mbgl/style/sources/raster_source_impl.cpp
${MBGL_ROOT}/src/mbgl/style/sources/raster_source_impl.hpp
${MBGL_ROOT}/src/mbgl/style/sources/vector_source.cpp
${MBGL_ROOT}/src/mbgl/style/sources/vector_source_impl.cpp
${MBGL_ROOT}/src/mbgl/style/sources/vector_source_impl.hpp
${MBGL_ROOT}/src/mbgl/style/style.cpp
${MBGL_ROOT}/src/mbgl/style/style_impl.cpp
${MBGL_ROOT}/src/mbgl/style/style_impl.hpp
${MBGL_ROOT}/src/mbgl/style/types.cpp
${MBGL_ROOT}/src/mbgl/text/bidi.hpp
${MBGL_ROOT}/src/mbgl/text/check_max_angle.cpp
${MBGL_ROOT}/src/mbgl/text/check_max_angle.hpp
${MBGL_ROOT}/src/mbgl/text/collision_feature.cpp
${MBGL_ROOT}/src/mbgl/text/collision_feature.hpp
${MBGL_ROOT}/src/mbgl/text/collision_index.cpp
${MBGL_ROOT}/src/mbgl/text/collision_index.hpp
${MBGL_ROOT}/src/mbgl/text/cross_tile_symbol_index.cpp
${MBGL_ROOT}/src/mbgl/text/cross_tile_symbol_index.hpp
${MBGL_ROOT}/src/mbgl/text/get_anchors.cpp
${MBGL_ROOT}/src/mbgl/text/get_anchors.hpp
${MBGL_ROOT}/src/mbgl/text/glyph.cpp
${MBGL_ROOT}/src/mbgl/text/glyph.hpp
${MBGL_ROOT}/src/mbgl/text/glyph_atlas.cpp
${MBGL_ROOT}/src/mbgl/text/glyph_atlas.hpp
${MBGL_ROOT}/src/mbgl/text/glyph_manager.cpp
${MBGL_ROOT}/src/mbgl/text/glyph_manager.hpp
${MBGL_ROOT}/src/mbgl/text/glyph_manager_observer.hpp
${MBGL_ROOT}/src/mbgl/text/glyph_pbf.cpp
${MBGL_ROOT}/src/mbgl/text/glyph_pbf.hpp
${MBGL_ROOT}/src/mbgl/text/glyph_range.hpp
${MBGL_ROOT}/src/mbgl/text/language_tag.cpp
${MBGL_ROOT}/src/mbgl/text/language_tag.hpp
${MBGL_ROOT}/src/mbgl/text/local_glyph_rasterizer.hpp
${MBGL_ROOT}/src/mbgl/text/placement.cpp
${MBGL_ROOT}/src/mbgl/text/placement.hpp
${MBGL_ROOT}/src/mbgl/text/quads.cpp
${MBGL_ROOT}/src/mbgl/text/quads.hpp
${MBGL_ROOT}/src/mbgl/text/shaping.cpp
${MBGL_ROOT}/src/mbgl/text/shaping.hpp
${MBGL_ROOT}/src/mbgl/text/tagged_string.cpp
${MBGL_ROOT}/src/mbgl/text/tagged_string.hpp
${MBGL_ROOT}/src/mbgl/tile/custom_geometry_tile.cpp
${MBGL_ROOT}/src/mbgl/tile/custom_geometry_tile.hpp
${MBGL_ROOT}/src/mbgl/tile/geojson_tile.cpp
${MBGL_ROOT}/src/mbgl/tile/geojson_tile.hpp
${MBGL_ROOT}/src/mbgl/tile/geojson_tile_data.hpp
${MBGL_ROOT}/src/mbgl/tile/geometry_tile.cpp
${MBGL_ROOT}/src/mbgl/tile/geometry_tile.hpp
${MBGL_ROOT}/src/mbgl/tile/geometry_tile_data.cpp
${MBGL_ROOT}/src/mbgl/tile/geometry_tile_data.hpp
${MBGL_ROOT}/src/mbgl/tile/geometry_tile_worker.cpp
${MBGL_ROOT}/src/mbgl/tile/geometry_tile_worker.hpp
${MBGL_ROOT}/src/mbgl/tile/raster_dem_tile.cpp
${MBGL_ROOT}/src/mbgl/tile/raster_dem_tile.hpp
${MBGL_ROOT}/src/mbgl/tile/raster_dem_tile_worker.cpp
${MBGL_ROOT}/src/mbgl/tile/raster_dem_tile_worker.hpp
${MBGL_ROOT}/src/mbgl/tile/raster_tile.cpp
${MBGL_ROOT}/src/mbgl/tile/raster_tile.hpp
${MBGL_ROOT}/src/mbgl/tile/raster_tile_worker.cpp
${MBGL_ROOT}/src/mbgl/tile/raster_tile_worker.hpp
${MBGL_ROOT}/src/mbgl/tile/tile.cpp
${MBGL_ROOT}/src/mbgl/tile/tile.hpp
${MBGL_ROOT}/src/mbgl/tile/tile_cache.cpp
${MBGL_ROOT}/src/mbgl/tile/tile_cache.hpp
${MBGL_ROOT}/src/mbgl/tile/tile_id_hash.cpp
${MBGL_ROOT}/src/mbgl/tile/tile_id_io.cpp
${MBGL_ROOT}/src/mbgl/tile/tile_loader.hpp
${MBGL_ROOT}/src/mbgl/tile/tile_loader_impl.hpp
${MBGL_ROOT}/src/mbgl/tile/tile_observer.hpp
${MBGL_ROOT}/src/mbgl/tile/vector_tile.cpp
${MBGL_ROOT}/src/mbgl/tile/vector_tile.hpp
${MBGL_ROOT}/src/mbgl/tile/vector_tile_data.cpp
${MBGL_ROOT}/src/mbgl/tile/vector_tile_data.hpp
${MBGL_ROOT}/src/mbgl/util/chrono.cpp
${MBGL_ROOT}/src/mbgl/util/color.cpp
${MBGL_ROOT}/src/mbgl/util/compression.cpp
${MBGL_ROOT}/src/mbgl/util/constants.cpp
${MBGL_ROOT}/src/mbgl/util/convert.cpp
${MBGL_ROOT}/src/mbgl/util/dtoa.cpp
${MBGL_ROOT}/src/mbgl/util/dtoa.hpp
${MBGL_ROOT}/src/mbgl/util/event.cpp
${MBGL_ROOT}/src/mbgl/util/font_stack.cpp
${MBGL_ROOT}/src/mbgl/util/geo.cpp
${MBGL_ROOT}/src/mbgl/util/geojson_impl.cpp
${MBGL_ROOT}/src/mbgl/util/grid_index.cpp
${MBGL_ROOT}/src/mbgl/util/grid_index.hpp
${MBGL_ROOT}/src/mbgl/util/hash.hpp
${MBGL_ROOT}/src/mbgl/util/http_header.cpp
${MBGL_ROOT}/src/mbgl/util/http_header.hpp
${MBGL_ROOT}/src/mbgl/util/http_timeout.cpp
${MBGL_ROOT}/src/mbgl/util/http_timeout.hpp
${MBGL_ROOT}/src/mbgl/util/i18n.cpp
${MBGL_ROOT}/src/mbgl/util/i18n.hpp
${MBGL_ROOT}/src/mbgl/util/id.cpp
${MBGL_ROOT}/src/mbgl/util/id.hpp
${MBGL_ROOT}/src/mbgl/util/interpolate.cpp
${MBGL_ROOT}/src/mbgl/util/intersection_tests.cpp
${MBGL_ROOT}/src/mbgl/util/intersection_tests.hpp
${MBGL_ROOT}/src/mbgl/util/io.cpp
${MBGL_ROOT}/src/mbgl/util/io.hpp
${MBGL_ROOT}/src/mbgl/util/literal.hpp
${MBGL_ROOT}/src/mbgl/util/logging.cpp
${MBGL_ROOT}/src/mbgl/util/longest_common_subsequence.hpp
${MBGL_ROOT}/src/mbgl/util/mapbox.cpp
${MBGL_ROOT}/src/mbgl/util/mapbox.hpp
${MBGL_ROOT}/src/mbgl/util/mat2.cpp
${MBGL_ROOT}/src/mbgl/util/mat2.hpp
${MBGL_ROOT}/src/mbgl/util/mat3.cpp
${MBGL_ROOT}/src/mbgl/util/mat3.hpp
${MBGL_ROOT}/src/mbgl/util/mat4.cpp
${MBGL_ROOT}/src/mbgl/util/mat4.hpp
${MBGL_ROOT}/src/mbgl/util/math.hpp
${MBGL_ROOT}/src/mbgl/util/premultiply.cpp
${MBGL_ROOT}/src/mbgl/util/rapidjson.cpp
${MBGL_ROOT}/src/mbgl/util/rapidjson.hpp
${MBGL_ROOT}/src/mbgl/util/rect.hpp
${MBGL_ROOT}/src/mbgl/util/std.hpp
${MBGL_ROOT}/src/mbgl/util/stopwatch.cpp
${MBGL_ROOT}/src/mbgl/util/stopwatch.hpp
${MBGL_ROOT}/src/mbgl/util/string.cpp
${MBGL_ROOT}/src/mbgl/util/thread_local.hpp
${MBGL_ROOT}/src/mbgl/util/thread_pool.cpp
${MBGL_ROOT}/src/mbgl/util/thread_pool.hpp
${MBGL_ROOT}/src/mbgl/util/tile_coordinate.hpp
${MBGL_ROOT}/src/mbgl/util/tile_cover.cpp
${MBGL_ROOT}/src/mbgl/util/tile_cover.hpp
${MBGL_ROOT}/src/mbgl/util/tile_cover_impl.cpp
${MBGL_ROOT}/src/mbgl/util/tile_cover_impl.hpp
${MBGL_ROOT}/src/mbgl/util/tile_range.hpp
${MBGL_ROOT}/src/mbgl/util/tiny_sdf.cpp
${MBGL_ROOT}/src/mbgl/util/tiny_sdf.hpp
${MBGL_ROOT}/src/mbgl/util/token.hpp
${MBGL_ROOT}/src/mbgl/util/url.cpp
${MBGL_ROOT}/src/mbgl/util/url.hpp
${MBGL_ROOT}/src/mbgl/util/utf.hpp
${MBGL_ROOT}/src/mbgl/util/version.cpp
${MBGL_ROOT}/src/mbgl/util/version.hpp
${MBGL_ROOT}/src/mbgl/util/work_request.cpp
${MBGL_ROOT}/src/parsedate/parsedate.cpp
${MBGL_ROOT}/src/parsedate/parsedate.hpp
)
if(EXISTS ${MBGL_ROOT}/.git/HEAD)
execute_process(
COMMAND
git
rev-parse
--short=8
HEAD
WORKING_DIRECTORY ${MBGL_ROOT}
OUTPUT_VARIABLE MBGL_VERSION_REV
OUTPUT_STRIP_TRAILING_WHITESPACE
)
else()
set(MBGL_VERSION_REV 00000000)
endif()
set_source_files_properties(
${MBGL_ROOT}/src/mbgl/util/version.cpp
PROPERTIES
COMPILE_DEFINITIONS
MBGL_VERSION_REV="${MBGL_VERSION_REV}"
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/src
)
target_include_directories(
mbgl-core
PUBLIC ${MBGL_ROOT}/include
)
add_subdirectory(${PROJECT_SOURCE_DIR}/vendor/mapbox-base/mapbox)
add_subdirectory(${PROJECT_SOURCE_DIR}/vendor/mapbox-base/extras)
include(${PROJECT_SOURCE_DIR}/vendor/boost.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/earcut.hpp.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/eternal.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/expected.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/geojson-vt-cpp.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/polylabel.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/protozero.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/shelf-pack-cpp.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/unique_resource.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/vector-tile.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/wagyu.cmake)
target_link_libraries(
mbgl-core
PRIVATE
Mapbox::Base::Extras::kdbush.hpp
Mapbox::Base::supercluster.hpp
mbgl-vendor-boost
mbgl-vendor-earcut.hpp
mbgl-vendor-eternal
mbgl-vendor-geojson-vt-cpp
mbgl-vendor-polylabel
mbgl-vendor-protozero
mbgl-vendor-shelf-pack-cpp
mbgl-vendor-unique_resource
mbgl-vendor-vector-tile
mbgl-vendor-wagyu
PUBLIC
Mapbox::Base::Extras::rapidjson
Mapbox::Base::geojson.hpp
Mapbox::Base::geometry.hpp
Mapbox::Base::optional
Mapbox::Base::typewrapper
Mapbox::Base::variant
Mapbox::Base::weak
mbgl-vendor-expected
)
set_property(TARGET mbgl-core PROPERTY FOLDER Core)
add_library(
Mapbox::Map ALIAS mbgl-core
)
if(MBGL_WITH_CORE_ONLY)
return()
elseif(MBGL_WITH_QT)
include(${PROJECT_SOURCE_DIR}/platform/qt/qt.cmake)
elseif(CMAKE_SYSTEM_NAME STREQUAL Android)
include(${PROJECT_SOURCE_DIR}/platform/android/android.cmake)
elseif(CMAKE_SYSTEM_NAME STREQUAL iOS)
include(${PROJECT_SOURCE_DIR}/platform/ios/ios.cmake)
elseif(CMAKE_SYSTEM_NAME STREQUAL Linux)
include(${PROJECT_SOURCE_DIR}/platform/linux/linux.cmake)
elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin)
include(${PROJECT_SOURCE_DIR}/platform/macos/macos.cmake)
else()
message(FATAL_ERROR "Unsupported target platform: " ${CMAKE_SYSTEM_NAME})
endif()
add_subdirectory(${PROJECT_SOURCE_DIR}/test)
add_subdirectory(${PROJECT_SOURCE_DIR}/benchmark)

View File

@@ -0,0 +1,41 @@
add_library(
mbgl-benchmark SHARED EXCLUDE_FROM_ALL
${MBGL_ROOT}/benchmark/api/query.benchmark.cpp
${MBGL_ROOT}/benchmark/api/render.benchmark.cpp
${MBGL_ROOT}/benchmark/function/camera_function.benchmark.cpp
${MBGL_ROOT}/benchmark/function/composite_function.benchmark.cpp
${MBGL_ROOT}/benchmark/function/source_function.benchmark.cpp
${MBGL_ROOT}/benchmark/parse/filter.benchmark.cpp
${MBGL_ROOT}/benchmark/parse/tile_mask.benchmark.cpp
${MBGL_ROOT}/benchmark/parse/vector_tile.benchmark.cpp
${MBGL_ROOT}/benchmark/src/mbgl/benchmark/benchmark.cpp
${MBGL_ROOT}/benchmark/storage/offline_database.benchmark.cpp
${MBGL_ROOT}/benchmark/util/dtoa.benchmark.cpp
${MBGL_ROOT}/benchmark/util/tilecover.benchmark.cpp
)
target_include_directories(
mbgl-benchmark
PRIVATE ${MBGL_ROOT}/benchmark/src ${MBGL_ROOT}/platform/default/include ${MBGL_ROOT}/src
)
target_include_directories(
mbgl-benchmark
PUBLIC ${MBGL_ROOT}/benchmark/include ${MBGL_ROOT}/include
)
include(${PROJECT_SOURCE_DIR}/vendor/benchmark.cmake)
# Needed for testing private classes
get_target_property(MBGL_CORE_PRIVATE_LIBRARIES mbgl-core LINK_LIBRARIES)
target_link_libraries(
mbgl-benchmark
PRIVATE ${MBGL_CORE_PRIVATE_LIBRARIES} mbgl-core mbgl-vendor-benchmark
)
if(CMAKE_SYSTEM_NAME STREQUAL Android)
set_target_properties(mbgl-benchmark PROPERTIES LINK_FLAGS_RELEASE "-fuse-ld=gold -O2 -flto -Wl,--icf=safe")
endif()
set_property(TARGET mbgl-benchmark PROPERTY FOLDER Core)

26
next/bin/CMakeLists.txt Normal file
View File

@@ -0,0 +1,26 @@
add_executable(
mbgl-offline
${MBGL_ROOT}/bin/offline.cpp
)
target_link_libraries(
mbgl-offline
PRIVATE Mapbox::Base::Extras::args mbgl-core
)
add_executable(
mbgl-render
${MBGL_ROOT}/bin/render.cpp
)
target_link_libraries(
mbgl-render
PRIVATE Mapbox::Base::Extras::args mbgl-core
)
# FIXME: CI must have a valid token
#
# add_test(NAME mbgl-offline-tool-test COMMAND mbgl-offline -s mapbox://styles/mapbox/satellite-v9 --maxZoom=0 WORKING_DIRECTORY
# ${MBGL_ROOT} )
#
# add_test(NAME mbgl-render-tool-test COMMAND mbgl-render WORKING_DIRECTORY ${MBGL_ROOT} )

View File

@@ -0,0 +1,36 @@
add_executable(
mbgl-expression-test
${MBGL_ROOT}/expression-test/expression_test_logger.cpp
${MBGL_ROOT}/expression-test/expression_test_logger.hpp
${MBGL_ROOT}/expression-test/expression_test_parser.cpp
${MBGL_ROOT}/expression-test/expression_test_parser.hpp
${MBGL_ROOT}/expression-test/expression_test_runner.cpp
${MBGL_ROOT}/expression-test/expression_test_runner.hpp
${MBGL_ROOT}/expression-test/main.cpp
)
target_compile_definitions(
mbgl-expression-test
PRIVATE TEST_RUNNER_ROOT_PATH="${MBGL_ROOT}"
)
# FIXME: Should not use core private interface
target_include_directories(
mbgl-expression-test
PRIVATE ${MBGL_ROOT}/src
)
target_link_libraries(
mbgl-expression-test
PRIVATE
Mapbox::Base::Extras::args
Mapbox::Base::Extras::filesystem
Mapbox::Base::io
mbgl-core
)
set_property(TARGET mbgl-expression-test PROPERTY FOLDER Executables)
string(RANDOM LENGTH 5 ALPHABET 0123456789 MBGL_EXPRESSION_TEST_SEED)
add_test(NAME mbgl-expression-test COMMAND mbgl-expression-test -s --seed=${MBGL_EXPRESSION_TEST_SEED} WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -0,0 +1,306 @@
if(NOT ANDROID_NDK_TOOLCHAIN_INCLUDED)
message(FATAL_ERROR "-- Toolchain file not included, see https://developer.android.com/ndk/guides/cmake")
endif()
target_compile_definitions(
mbgl-core
PUBLIC MBGL_USE_GLES2
)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/android/src/android_renderer_backend.cpp
${MBGL_ROOT}/platform/android/src/android_renderer_backend.hpp
${MBGL_ROOT}/platform/android/src/android_renderer_frontend.cpp
${MBGL_ROOT}/platform/android/src/android_renderer_frontend.hpp
${MBGL_ROOT}/platform/android/src/annotation/marker.cpp
${MBGL_ROOT}/platform/android/src/annotation/marker.hpp
${MBGL_ROOT}/platform/android/src/annotation/multi_point.hpp
${MBGL_ROOT}/platform/android/src/annotation/polygon.cpp
${MBGL_ROOT}/platform/android/src/annotation/polygon.hpp
${MBGL_ROOT}/platform/android/src/annotation/polyline.cpp
${MBGL_ROOT}/platform/android/src/annotation/polyline.hpp
${MBGL_ROOT}/platform/android/src/asset_manager.hpp
${MBGL_ROOT}/platform/android/src/asset_manager_file_source.cpp
${MBGL_ROOT}/platform/android/src/asset_manager_file_source.hpp
${MBGL_ROOT}/platform/android/src/async_task.cpp
${MBGL_ROOT}/platform/android/src/attach_env.cpp
${MBGL_ROOT}/platform/android/src/attach_env.hpp
${MBGL_ROOT}/platform/android/src/bitmap.cpp
${MBGL_ROOT}/platform/android/src/bitmap.hpp
${MBGL_ROOT}/platform/android/src/bitmap_factory.cpp
${MBGL_ROOT}/platform/android/src/bitmap_factory.hpp
${MBGL_ROOT}/platform/android/src/connectivity_listener.cpp
${MBGL_ROOT}/platform/android/src/connectivity_listener.hpp
${MBGL_ROOT}/platform/android/src/conversion/collection.cpp
${MBGL_ROOT}/platform/android/src/conversion/collection.hpp
${MBGL_ROOT}/platform/android/src/conversion/color.cpp
${MBGL_ROOT}/platform/android/src/conversion/color.hpp
${MBGL_ROOT}/platform/android/src/conversion/constant.cpp
${MBGL_ROOT}/platform/android/src/conversion/constant.hpp
${MBGL_ROOT}/platform/android/src/conversion/conversion.hpp
${MBGL_ROOT}/platform/android/src/file_source.cpp
${MBGL_ROOT}/platform/android/src/file_source.hpp
${MBGL_ROOT}/platform/android/src/geojson/feature.cpp
${MBGL_ROOT}/platform/android/src/geojson/feature.hpp
${MBGL_ROOT}/platform/android/src/geojson/feature_collection.cpp
${MBGL_ROOT}/platform/android/src/geojson/feature_collection.hpp
${MBGL_ROOT}/platform/android/src/geojson/geometry.cpp
${MBGL_ROOT}/platform/android/src/geojson/geometry.hpp
${MBGL_ROOT}/platform/android/src/geojson/geometry_collection.cpp
${MBGL_ROOT}/platform/android/src/geojson/geometry_collection.hpp
${MBGL_ROOT}/platform/android/src/geojson/line_string.cpp
${MBGL_ROOT}/platform/android/src/geojson/line_string.hpp
${MBGL_ROOT}/platform/android/src/geojson/multi_line_string.cpp
${MBGL_ROOT}/platform/android/src/geojson/multi_line_string.hpp
${MBGL_ROOT}/platform/android/src/geojson/multi_point.cpp
${MBGL_ROOT}/platform/android/src/geojson/multi_point.hpp
${MBGL_ROOT}/platform/android/src/geojson/multi_polygon.cpp
${MBGL_ROOT}/platform/android/src/geojson/multi_polygon.hpp
${MBGL_ROOT}/platform/android/src/geojson/point.cpp
${MBGL_ROOT}/platform/android/src/geojson/point.hpp
${MBGL_ROOT}/platform/android/src/geojson/polygon.cpp
${MBGL_ROOT}/platform/android/src/geojson/polygon.hpp
${MBGL_ROOT}/platform/android/src/geojson/util.hpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng.cpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng.hpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_bounds.cpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_bounds.hpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_quad.cpp
${MBGL_ROOT}/platform/android/src/geometry/lat_lng_quad.hpp
${MBGL_ROOT}/platform/android/src/geometry/projected_meters.cpp
${MBGL_ROOT}/platform/android/src/geometry/projected_meters.hpp
${MBGL_ROOT}/platform/android/src/gl_functions.cpp
${MBGL_ROOT}/platform/android/src/graphics/pointf.cpp
${MBGL_ROOT}/platform/android/src/graphics/pointf.hpp
${MBGL_ROOT}/platform/android/src/graphics/rectf.cpp
${MBGL_ROOT}/platform/android/src/graphics/rectf.hpp
${MBGL_ROOT}/platform/android/src/gson/json_array.cpp
${MBGL_ROOT}/platform/android/src/gson/json_array.hpp
${MBGL_ROOT}/platform/android/src/gson/json_element.cpp
${MBGL_ROOT}/platform/android/src/gson/json_element.hpp
${MBGL_ROOT}/platform/android/src/gson/json_object.cpp
${MBGL_ROOT}/platform/android/src/gson/json_object.hpp
${MBGL_ROOT}/platform/android/src/gson/json_primitive.cpp
${MBGL_ROOT}/platform/android/src/gson/json_primitive.hpp
${MBGL_ROOT}/platform/android/src/http_file_source.cpp
${MBGL_ROOT}/platform/android/src/image.cpp
${MBGL_ROOT}/platform/android/src/java/util.cpp
${MBGL_ROOT}/platform/android/src/java/util.hpp
${MBGL_ROOT}/platform/android/src/java_types.cpp
${MBGL_ROOT}/platform/android/src/java_types.hpp
${MBGL_ROOT}/platform/android/src/jni.cpp
${MBGL_ROOT}/platform/android/src/jni.hpp
${MBGL_ROOT}/platform/android/src/jni_native.cpp
${MBGL_ROOT}/platform/android/src/jni_native.hpp
${MBGL_ROOT}/platform/android/src/logger.cpp
${MBGL_ROOT}/platform/android/src/logger.hpp
${MBGL_ROOT}/platform/android/src/logging_android.cpp
${MBGL_ROOT}/platform/android/src/map/camera_position.cpp
${MBGL_ROOT}/platform/android/src/map/camera_position.hpp
${MBGL_ROOT}/platform/android/src/map/image.cpp
${MBGL_ROOT}/platform/android/src/map/image.hpp
${MBGL_ROOT}/platform/android/src/map_renderer.cpp
${MBGL_ROOT}/platform/android/src/map_renderer.hpp
${MBGL_ROOT}/platform/android/src/map_renderer_runnable.cpp
${MBGL_ROOT}/platform/android/src/map_renderer_runnable.hpp
${MBGL_ROOT}/platform/android/src/native_map_view.cpp
${MBGL_ROOT}/platform/android/src/native_map_view.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_manager.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_manager.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_definition.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_definition.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_error.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_error.hpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_status.cpp
${MBGL_ROOT}/platform/android/src/offline/offline_region_status.hpp
${MBGL_ROOT}/platform/android/src/run_loop.cpp
${MBGL_ROOT}/platform/android/src/run_loop_impl.hpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshot.cpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshot.hpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshotter.cpp
${MBGL_ROOT}/platform/android/src/snapshotter/map_snapshotter.hpp
${MBGL_ROOT}/platform/android/src/string_util.cpp
${MBGL_ROOT}/platform/android/src/style/android_conversion.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/filter.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/filter.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/position.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/position.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/property_expression.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/property_value.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/transition_options.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/transition_options.hpp
${MBGL_ROOT}/platform/android/src/style/conversion/url_or_tileset.cpp
${MBGL_ROOT}/platform/android/src/style/conversion/url_or_tileset.hpp
${MBGL_ROOT}/platform/android/src/style/formatted.cpp
${MBGL_ROOT}/platform/android/src/style/formatted.hpp
${MBGL_ROOT}/platform/android/src/style/formatted_section.cpp
${MBGL_ROOT}/platform/android/src/style/formatted_section.hpp
${MBGL_ROOT}/platform/android/src/style/layers/background_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/background_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/circle_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/circle_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/custom_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/custom_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_extrusion_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_extrusion_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/fill_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/heatmap_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/heatmap_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/hillshade_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/hillshade_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/layer_manager.cpp
${MBGL_ROOT}/platform/android/src/style/layers/layer_manager.hpp
${MBGL_ROOT}/platform/android/src/style/layers/line_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/line_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/raster_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/raster_layer.hpp
${MBGL_ROOT}/platform/android/src/style/layers/symbol_layer.cpp
${MBGL_ROOT}/platform/android/src/style/layers/symbol_layer.hpp
${MBGL_ROOT}/platform/android/src/style/light.cpp
${MBGL_ROOT}/platform/android/src/style/light.hpp
${MBGL_ROOT}/platform/android/src/style/position.cpp
${MBGL_ROOT}/platform/android/src/style/position.hpp
${MBGL_ROOT}/platform/android/src/style/sources/custom_geometry_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/custom_geometry_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/geojson_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/geojson_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/image_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/image_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_dem_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_dem_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/raster_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/unknown_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/unknown_source.hpp
${MBGL_ROOT}/platform/android/src/style/sources/vector_source.cpp
${MBGL_ROOT}/platform/android/src/style/sources/vector_source.hpp
${MBGL_ROOT}/platform/android/src/style/transition_options.cpp
${MBGL_ROOT}/platform/android/src/style/transition_options.hpp
${MBGL_ROOT}/platform/android/src/style/value.cpp
${MBGL_ROOT}/platform/android/src/style/value.hpp
${MBGL_ROOT}/platform/android/src/text/collator.cpp
${MBGL_ROOT}/platform/android/src/text/collator_jni.hpp
${MBGL_ROOT}/platform/android/src/text/format_number.cpp
${MBGL_ROOT}/platform/android/src/text/format_number_jni.hpp
${MBGL_ROOT}/platform/android/src/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/android/src/text/local_glyph_rasterizer_jni.hpp
${MBGL_ROOT}/platform/android/src/thread.cpp
${MBGL_ROOT}/platform/android/src/timer.cpp
${MBGL_ROOT}/platform/android/src/unaccent.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/default_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/linux/src/headless_backend_egl.cpp
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
EGL
GLESv2
Mapbox::Base::jni.hpp
android
atomic
jnigraphics
log
mbgl-vendor-icu
mbgl-vendor-sqlite
z
)
add_library(
mapbox-gl SHARED
${MBGL_ROOT}/platform/android/src/main.cpp
)
target_link_libraries(
mapbox-gl
PRIVATE Mapbox::Base::jni.hpp mbgl-core
)
add_library(
example-custom-layer MODULE
${MBGL_ROOT}/platform/android/src/example_custom_layer.cpp
)
target_include_directories(
example-custom-layer
PRIVATE ${MBGL_ROOT}/include
)
target_link_libraries(
example-custom-layer
PRIVATE
GLESv2
Mapbox::Base::optional
Mapbox::Base::typewrapper
Mapbox::Base::weak
log
)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/android/src/test/runtime.cpp ${MBGL_ROOT}/platform/android/src/test/runtime.hpp
${MBGL_ROOT}/platform/android/src/test/test_runner.cpp
)
target_link_libraries(
mbgl-test-runner
PRIVATE Mapbox::Base::jni.hpp mapbox-gl mbgl-test
)
add_executable(
mbgl-benchmark-runner
${MBGL_ROOT}/platform/android/src/test/benchmark_runner.cpp ${MBGL_ROOT}/platform/android/src/test/runtime.cpp
${MBGL_ROOT}/platform/android/src/test/runtime.hpp
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE Mapbox::Base::jni.hpp mapbox-gl mbgl-benchmark
)
# Android has no concept of MinSizeRel on android.toolchain.cmake and provides configurations tuned for binary size. We can push it a bit
# more with code folding and LTO.
set_target_properties(example-custom-layer PROPERTIES LINK_FLAGS_RELEASE "-fuse-ld=gold -O2 -flto -Wl,--icf=safe")
set_target_properties(mapbox-gl PROPERTIES LINK_FLAGS_RELEASE "-fuse-ld=gold -O2 -flto -Wl,--icf=safe")
set_target_properties(mbgl-benchmark-runner PROPERTIES LINK_FLAGS_RELEASE "-fuse-ld=gold -O2 -flto -Wl,--icf=safe")
set_target_properties(mbgl-test-runner PROPERTIES LINK_FLAGS_RELEASE "-fuse-ld=gold -O2 -flto -Wl,--icf=safe")
target_compile_options(example-custom-layer PRIVATE $<$<CONFIG:Release>:-Qunused-arguments -flto>)
target_compile_options(mapbox-gl PRIVATE $<$<CONFIG:Release>:-Qunused-arguments -flto>)
target_compile_options(mbgl-core PRIVATE $<$<CONFIG:Release>:-Qunused-arguments -flto>)
target_compile_options(mbgl-vendor-icu PRIVATE $<$<CONFIG:Release>:-Qunused-arguments -flto>)
target_compile_options(mbgl-vendor-sqlite PRIVATE $<$<CONFIG:Release>:-Qunused-arguments -flto>)

View File

@@ -0,0 +1,38 @@
find_package(OpenGL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_search_module(GLFW glfw3 REQUIRED)
add_executable(
mbgl-glfw
${MBGL_ROOT}/platform/glfw/main.cpp
${MBGL_ROOT}/platform/glfw/glfw_view.cpp
${MBGL_ROOT}/platform/glfw/glfw_gl_backend.cpp
${MBGL_ROOT}/platform/glfw/glfw_renderer_frontend.cpp
${MBGL_ROOT}/platform/glfw/settings_json.cpp
)
target_include_directories(
mbgl-glfw
PRIVATE ${GLFW_INCLUDE_DIRS}
)
include(${PROJECT_SOURCE_DIR}/vendor/cheap-ruler-cpp.cmake)
# Use target_link_directories when we move away from CMake 3.10.
target_link_libraries(
mbgl-glfw
PRIVATE $<$<BOOL:${GLFW_LIBRARY_DIRS}>:-L${GLFW_LIBRARY_DIRS}>
)
target_link_libraries(
mbgl-glfw
PRIVATE
${GLFW_LIBRARIES}
Mapbox::Base::Extras::args
Mapbox::Map
OpenGL::GL
mbgl-vendor-cheap-ruler-cpp
)
set_property(TARGET mbgl-glfw PROPERTY FOLDER Executables)

View File

@@ -0,0 +1,70 @@
target_compile_definitions(
mbgl-core
PUBLIC MBGL_USE_GLES2 GLES_SILENCE_DEPRECATION
)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/darwin/src/async_task.cpp
${MBGL_ROOT}/platform/darwin/src/collator.mm
${MBGL_ROOT}/platform/darwin/src/gl_functions.cpp
${MBGL_ROOT}/platform/darwin/src/headless_backend_eagl.mm
${MBGL_ROOT}/platform/darwin/src/http_file_source.mm
${MBGL_ROOT}/platform/darwin/src/image.mm
${MBGL_ROOT}/platform/darwin/src/local_glyph_rasterizer.mm
${MBGL_ROOT}/platform/darwin/src/logging_nslog.mm
${MBGL_ROOT}/platform/darwin/src/nsthread.mm
${MBGL_ROOT}/platform/darwin/src/reachability.m
${MBGL_ROOT}/platform/darwin/src/run_loop.cpp
${MBGL_ROOT}/platform/darwin/src/string_nsstring.mm
${MBGL_ROOT}/platform/darwin/src/timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/default_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/darwin/include ${MBGL_ROOT}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
target_link_libraries(
mbgl-core
PRIVATE
"-framework CoreGraphics"
"-framework CoreImage"
"-framework CoreLocation"
"-framework CoreServices"
"-framework CoreText"
"-framework Foundation"
"-framework GLKit"
"-framework ImageIO"
"-framework OpenGLES"
"-framework QuartzCore"
"-framework Security"
"-framework SystemConfiguration"
"-framework UIKit"
"-framework WebKit"
mbgl-vendor-icu
sqlite3
z
)

View File

@@ -0,0 +1,126 @@
find_package(CURL REQUIRED)
find_package(ICU REQUIRED i18n)
find_package(ICU REQUIRED uc)
find_package(JPEG REQUIRED)
find_package(OpenGL REQUIRED GLX)
find_package(PNG REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(X11 REQUIRED)
pkg_search_module(LIBUV libuv REQUIRED)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/layermanager/layer_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/default_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/http_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/collator.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/unaccent.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/async_task.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/format_number.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/image.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/jpeg_reader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/logging_stderr.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_reader.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/run_loop.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/string_stdlib.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/linux/src/gl_functions.cpp
${MBGL_ROOT}/platform/linux/src/headless_backend_glx.cpp
)
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
target_include_directories(
mbgl-core
PUBLIC ${MBGL_ROOT}/platform/default/include
PRIVATE
${CURL_INCLUDE_DIRS}
${JPEG_INCLUDE_DIRS}
${LIBUV_INCLUDE_DIRS}
${X11_INCLUDE_DIRS}
)
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
${CURL_LIBRARIES}
${JPEG_LIBRARIES}
${LIBUV_LIBRARIES}
${X11_LIBRARIES}
ICU::i18n
ICU::uc
OpenGL::GLX
PNG::PNG
mbgl-vendor-nunicode
mbgl-vendor-sqlite
)
add_custom_target(mbgl-ca-bundle)
add_dependencies(mbgl-core mbgl-ca-bundle)
add_custom_command(
TARGET mbgl-ca-bundle PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E
copy
${MBGL_ROOT}/misc/ca-bundle.crt
${CMAKE_BINARY_DIR}
)
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
add_subdirectory(${PROJECT_SOURCE_DIR}/render-test)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/default/src/mbgl/test/main.cpp
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${MBGL_ROOT}
)
target_link_libraries(
mbgl-test-runner
PRIVATE mbgl-test
)
add_executable(
mbgl-benchmark-runner
${MBGL_ROOT}/platform/default/src/mbgl/benchmark/main.cpp
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE mbgl-benchmark
)
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -0,0 +1,187 @@
find_package(OpenGL REQUIRED)
target_compile_definitions(
mbgl-core
PUBLIC GL_SILENCE_DEPRECATION
)
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/darwin/src/MGLAccountManager.m
${MBGL_ROOT}/platform/darwin/src/MGLAttributedExpression.m
${MBGL_ROOT}/platform/darwin/src/MGLAttributionInfo.mm
${MBGL_ROOT}/platform/darwin/src/MGLBackgroundStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLCircleStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLClockDirectionFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLCompassDirectionFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLComputedShapeSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLCoordinateFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLDistanceFormatter.m
${MBGL_ROOT}/platform/darwin/src/MGLFeature.mm
${MBGL_ROOT}/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLFillStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLForegroundStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLFoundation.mm
${MBGL_ROOT}/platform/darwin/src/MGLGeometry.mm
${MBGL_ROOT}/platform/darwin/src/MGLHeatmapStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLHillshadeStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLImageSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLLight.mm
${MBGL_ROOT}/platform/darwin/src/MGLLineStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLLoggingConfiguration.mm
${MBGL_ROOT}/platform/darwin/src/MGLMapCamera.mm
${MBGL_ROOT}/platform/darwin/src/MGLMapSnapshotter.mm
${MBGL_ROOT}/platform/darwin/src/MGLMultiPoint.mm
${MBGL_ROOT}/platform/darwin/src/MGLNetworkConfiguration.m
${MBGL_ROOT}/platform/darwin/src/MGLOfflinePack.mm
${MBGL_ROOT}/platform/darwin/src/MGLOfflineStorage.mm
${MBGL_ROOT}/platform/darwin/src/MGLOpenGLStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLPointAnnotation.mm
${MBGL_ROOT}/platform/darwin/src/MGLPointCollection.mm
${MBGL_ROOT}/platform/darwin/src/MGLPolygon.mm
${MBGL_ROOT}/platform/darwin/src/MGLPolyline.mm
${MBGL_ROOT}/platform/darwin/src/MGLRasterDEMSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLRasterStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLRasterTileSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLRendererConfiguration.mm
${MBGL_ROOT}/platform/darwin/src/MGLSDKMetricsManager.m
${MBGL_ROOT}/platform/darwin/src/MGLShape.mm
${MBGL_ROOT}/platform/darwin/src/MGLShapeCollection.mm
${MBGL_ROOT}/platform/darwin/src/MGLShapeOfflineRegion.mm
${MBGL_ROOT}/platform/darwin/src/MGLShapeSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyle.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyleLayerManager.mm
${MBGL_ROOT}/platform/darwin/src/MGLStyleValue.mm
${MBGL_ROOT}/platform/darwin/src/MGLSymbolStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLTilePyramidOfflineRegion.mm
${MBGL_ROOT}/platform/darwin/src/MGLTileSource.mm
${MBGL_ROOT}/platform/darwin/src/MGLTypes.m
${MBGL_ROOT}/platform/darwin/src/MGLVectorStyleLayer.mm
${MBGL_ROOT}/platform/darwin/src/MGLVectorTileSource.mm
${MBGL_ROOT}/platform/darwin/src/NSArray+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSBundle+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSCoder+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSDate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSDictionary+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSExpression+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSPredicate+MGLAdditions.mm
${MBGL_ROOT}/platform/darwin/src/NSString+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSURL+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSValue+MGLAdditions.m
${MBGL_ROOT}/platform/darwin/src/NSValue+MGLStyleAttributeAdditions.mm
${MBGL_ROOT}/platform/darwin/src/async_task.cpp
${MBGL_ROOT}/platform/darwin/src/collator.mm
${MBGL_ROOT}/platform/darwin/src/gl_functions.cpp
${MBGL_ROOT}/platform/darwin/src/headless_backend_cgl.mm
${MBGL_ROOT}/platform/darwin/src/http_file_source.mm
${MBGL_ROOT}/platform/darwin/src/image.mm
${MBGL_ROOT}/platform/darwin/src/local_glyph_rasterizer.mm
${MBGL_ROOT}/platform/darwin/src/logging_nslog.mm
${MBGL_ROOT}/platform/darwin/src/nsthread.mm
${MBGL_ROOT}/platform/darwin/src/reachability.m
${MBGL_ROOT}/platform/darwin/src/run_loop.cpp
${MBGL_ROOT}/platform/darwin/src/string_nsstring.mm
${MBGL_ROOT}/platform/darwin/src/timer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/map/map_snapshotter.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/default_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/bidi.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/png_writer.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/thread_local.cpp
${MBGL_ROOT}/platform/default/src/mbgl/util/utf.cpp
${MBGL_ROOT}/platform/macos/src/MGLAnnotationImage.m
${MBGL_ROOT}/platform/macos/src/MGLAttributionButton.mm
${MBGL_ROOT}/platform/macos/src/MGLCompassCell.m
${MBGL_ROOT}/platform/macos/src/MGLMapView+IBAdditions.mm
${MBGL_ROOT}/platform/macos/src/MGLMapView+Impl.mm
${MBGL_ROOT}/platform/macos/src/MGLMapView+OpenGL.mm
${MBGL_ROOT}/platform/macos/src/MGLMapView.mm
${MBGL_ROOT}/platform/macos/src/MGLOpenGLLayer.mm
${MBGL_ROOT}/platform/macos/src/NSColor+MGLAdditions.mm
${MBGL_ROOT}/platform/macos/src/NSImage+MGLAdditions.mm
${MBGL_ROOT}/platform/macos/src/NSProcessInfo+MGLAdditions.m
)
set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
target_compile_options(mbgl-core PRIVATE -fobjc-arc)
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
target_include_directories(
mbgl-core
PUBLIC ${MBGL_ROOT}/platform/default/include
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/darwin/include ${MBGL_ROOT}/platform/darwin/src ${MBGL_ROOT}/platform/macos/src
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
target_link_libraries(
mbgl-core
PRIVATE
"-framework AppKit"
"-framework CoreGraphics"
"-framework CoreLocation"
"-framework SystemConfiguration"
OpenGL::GL
mbgl-vendor-icu
sqlite3
z
)
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
add_subdirectory(${PROJECT_SOURCE_DIR}/render-test)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/default/src/mbgl/test/main.cpp
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${MBGL_ROOT}
)
target_link_libraries(
mbgl-test-runner
PRIVATE mbgl-test
)
add_executable(
mbgl-benchmark-runner
${MBGL_ROOT}/platform/default/src/mbgl/benchmark/main.cpp
)
target_link_libraries(
mbgl-benchmark-runner
PRIVATE mbgl-benchmark
)
set_property(TARGET mbgl-benchmark-runner PROPERTY FOLDER Executables)
set_property(TARGET mbgl-test-runner PROPERTY FOLDER Executables)
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -0,0 +1,52 @@
if(NOT EXISTS ${MBGL_ROOT}/node_modules/@mapbox/cmake-node-module/module.cmake)
message("-- Not building node bindings, dependencies not found. Run 'npm update'.")
return()
endif()
set(NODE_MODULE_CACHE_DIR ${CMAKE_SOURCE_DIR}/build/headers)
include(${MBGL_ROOT}/node_modules/@mapbox/cmake-node-module/module.cmake)
add_node_module(
mbgl-node
INSTALL_PATH ${MBGL_ROOT}/lib/{node_abi}/mbgl.node
NAN_VERSION 2.10.0
EXCLUDE_NODE_ABIS
46
47
48
51
59
67
72
)
target_sources(
mbgl-node
INTERFACE
${MBGL_ROOT}/platform/node/src/node_conversion.hpp
${MBGL_ROOT}/platform/node/src/node_expression.cpp
${MBGL_ROOT}/platform/node/src/node_expression.hpp
${MBGL_ROOT}/platform/node/src/node_feature.cpp
${MBGL_ROOT}/platform/node/src/node_feature.hpp
${MBGL_ROOT}/platform/node/src/node_logging.cpp
${MBGL_ROOT}/platform/node/src/node_logging.hpp
${MBGL_ROOT}/platform/node/src/node_map.cpp
${MBGL_ROOT}/platform/node/src/node_map.hpp
${MBGL_ROOT}/platform/node/src/node_mapbox_gl_native.cpp
${MBGL_ROOT}/platform/node/src/node_request.cpp
${MBGL_ROOT}/platform/node/src/node_request.hpp
${MBGL_ROOT}/platform/node/src/util/async_queue.hpp
)
target_link_libraries(
mbgl-node
INTERFACE Mapbox::Map
)
# FIXME: Node bindings only run fully on Linux now because it requires libuv RunLoop (which is the default on Linux). Also, Sanitizer will
# not work here because node will do a dlopen(), which is not currently supported.
if(CMAKE_SYSTEM_NAME STREQUAL Linux AND NOT CMAKE_BUILD_TYPE STREQUAL Sanitize)
add_test(NAME mbgl-node-memory COMMAND npm run test-memory WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-node-query COMMAND npm run test-query WORKING_DIRECTORY ${MBGL_ROOT})
add_test(NAME mbgl-node-test COMMAND npm run test WORKING_DIRECTORY ${MBGL_ROOT})
endif()

190
next/platform/qt/qt.cmake Normal file
View File

@@ -0,0 +1,190 @@
# Note: Using Sqlite instead of QSqlDatabase for better compatibility.
find_package(Qt5Gui REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Widgets REQUIRED)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions("-DQT_COMPILING_QIMAGE_COMPAT_CPP")
add_definitions("-D_USE_MATH_DEFINES")
add_definitions("-Wno-deprecated-declarations")
add_definitions("-Wno-inconsistent-missing-override")
add_definitions("-Wno-macro-redefined")
add_definitions("-Wno-microsoft-exception-spec")
add_definitions("-Wno-unknown-argument")
add_definitions("-Wno-unknown-warning-option")
add_definitions("-Wno-unused-command-line-argument")
add_definitions("-Wno-unused-local-typedef")
add_definitions("-Wno-unused-private-field")
endif()
target_sources(
mbgl-core
PRIVATE
${MBGL_ROOT}/platform/$<IF:$<PLATFORM_ID:Windows>,qt/src/bidi.cpp,default/src/mbgl/text/bidi.cpp>
${MBGL_ROOT}/platform/default/include/mbgl/gfx/headless_backend.hpp
${MBGL_ROOT}/platform/default/include/mbgl/gfx/headless_frontend.hpp
${MBGL_ROOT}/platform/default/include/mbgl/gl/headless_backend.hpp
${MBGL_ROOT}/platform/default/include/mbgl/text/unaccent.hpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gfx/headless_frontend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/gl/headless_backend.cpp
${MBGL_ROOT}/platform/default/src/mbgl/layermanager/layer_manager.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/asset_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/default_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/file_source_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_request.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/local_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_database.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/offline_download.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/online_file_source.cpp
${MBGL_ROOT}/platform/default/src/mbgl/storage/sqlite3.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/collator.cpp
${MBGL_ROOT}/platform/default/src/mbgl/text/unaccent.cpp
${MBGL_ROOT}/platform/qt/src/async_task.cpp
${MBGL_ROOT}/platform/qt/src/async_task_impl.hpp
${MBGL_ROOT}/platform/qt/src/format_number.cpp
${MBGL_ROOT}/platform/qt/src/gl_functions.cpp
${MBGL_ROOT}/platform/qt/src/headless_backend_qt.cpp
${MBGL_ROOT}/platform/qt/src/http_file_source.cpp
${MBGL_ROOT}/platform/qt/src/http_file_source.hpp
${MBGL_ROOT}/platform/qt/src/http_request.cpp
${MBGL_ROOT}/platform/qt/src/http_request.hpp
${MBGL_ROOT}/platform/qt/src/local_glyph_rasterizer.cpp
${MBGL_ROOT}/platform/qt/src/qt_image.cpp
${MBGL_ROOT}/platform/qt/src/qt_logging.cpp
${MBGL_ROOT}/platform/qt/src/run_loop.cpp
${MBGL_ROOT}/platform/qt/src/run_loop_impl.hpp
${MBGL_ROOT}/platform/qt/src/string_stdlib.cpp
${MBGL_ROOT}/platform/qt/src/thread.cpp
${MBGL_ROOT}/platform/qt/src/thread_local.cpp
${MBGL_ROOT}/platform/qt/src/timer.cpp
${MBGL_ROOT}/platform/qt/src/timer_impl.hpp
${MBGL_ROOT}/platform/qt/src/utf.cpp
)
target_compile_definitions(
mbgl-core
PRIVATE QT_IMAGE_DECODERS
PUBLIC __QT__ MBGL_USE_GLES2
)
target_include_directories(
mbgl-core
PRIVATE ${MBGL_ROOT}/platform/default/include
)
include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
target_link_libraries(
mbgl-core
PRIVATE
$<$<NOT:$<PLATFORM_ID:Windows>>:z>
$<$<NOT:$<PLATFORM_ID:Windows>>:mbgl-vendor-icu>
Qt5::Core
Qt5::Gui
Qt5::Network
Qt5::OpenGL
mbgl-vendor-nunicode
mbgl-vendor-sqlite
)
add_library(
qmapboxgl SHARED
${MBGL_ROOT}/platform/qt/include/qmapbox.hpp
${MBGL_ROOT}/platform/qt/include/qmapboxgl.hpp
${MBGL_ROOT}/platform/qt/src/qmapbox.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_observer.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_observer.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_renderer.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_map_renderer.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_p.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_renderer_backend.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_renderer_backend.hpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_scheduler.cpp
${MBGL_ROOT}/platform/qt/src/qmapboxgl_scheduler.hpp
${MBGL_ROOT}/platform/qt/src/qt_conversion.hpp
${MBGL_ROOT}/platform/qt/src/qt_geojson.cpp
${MBGL_ROOT}/platform/qt/src/qt_geojson.hpp
)
# FIXME: Because of rapidjson conversion
target_include_directories(
qmapboxgl
PRIVATE ${MBGL_ROOT}/src
)
target_include_directories(
qmapboxgl
PUBLIC ${MBGL_ROOT}/platform/qt/include
)
target_compile_definitions(
qmapboxgl
PRIVATE QT_BUILD_MAPBOXGL_LIB
)
target_link_libraries(
qmapboxgl
Qt5::Core
Qt5::Gui
mbgl-core
)
add_executable(
mbgl-qt
${MBGL_ROOT}/platform/qt/app/main.cpp
${MBGL_ROOT}/platform/qt/app/mapwindow.cpp
${MBGL_ROOT}/platform/qt/app/mapwindow.hpp
${MBGL_ROOT}/platform/qt/resources/common.qrc
)
# Qt public API should keep compatibility with old compilers for legacy systems
set_property(TARGET mbgl-qt PROPERTY CXX_STANDARD 98)
target_link_libraries(
mbgl-qt
PRIVATE Qt5::Widgets Qt5::Gui qmapboxgl
)
add_executable(
mbgl-test-runner
${MBGL_ROOT}/platform/qt/test/main.cpp
)
target_compile_definitions(
mbgl-test-runner
PRIVATE WORK_DIRECTORY=${MBGL_ROOT}
)
target_link_libraries(
mbgl-test-runner
PRIVATE
Qt5::Gui
Qt5::OpenGL
mbgl-test
pthread
)
find_program(MBGL_QDOC NAMES qdoc)
if(MBGL_QDOC)
add_custom_target(mbgl-qt-docs)
add_custom_command(
TARGET mbgl-qt-docs PRE_BUILD
COMMAND
${MBGL_QDOC}
${MBGL_ROOT}/platform/qt/config.qdocconf
-outputdir
${CMAKE_BINARY_DIR}/docs
)
endif()
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${MBGL_ROOT})

View File

@@ -0,0 +1,50 @@
add_executable(
mbgl-render-test
${MBGL_ROOT}/render-test/allocation_index.cpp
${MBGL_ROOT}/render-test/allocation_index.hpp
${MBGL_ROOT}/render-test/filesystem.hpp
${MBGL_ROOT}/render-test/main.cpp
${MBGL_ROOT}/render-test/metadata.hpp
${MBGL_ROOT}/render-test/parser.cpp
${MBGL_ROOT}/render-test/parser.hpp
${MBGL_ROOT}/render-test/runner.cpp
${MBGL_ROOT}/render-test/runner.hpp
)
target_compile_definitions(
mbgl-render-test
PRIVATE TEST_RUNNER_ROOT_PATH="${MBGL_ROOT}"
)
# FIXME: Should not use core private interface
target_include_directories(
mbgl-render-test
PRIVATE ${MBGL_ROOT}/src
)
include(${PROJECT_SOURCE_DIR}/vendor/boost.cmake)
target_link_libraries(
mbgl-render-test
PRIVATE
Mapbox::Base::Extras::args
Mapbox::Base::Extras::filesystem
Mapbox::Base::pixelmatch-cpp
mbgl-core
mbgl-vendor-boost
)
set_property(TARGET mbgl-render-test PROPERTY FOLDER Executables)
string(RANDOM LENGTH 5 ALPHABET 0123456789 MBGL_RENDER_TEST_SEED)
add_test(
NAME mbgl-render-test
COMMAND
mbgl-render-test
--recycle-map
--shuffle
--seed
${MBGL_RENDER_TEST_SEED}
WORKING_DIRECTORY ${MBGL_ROOT}
)

167
next/test/CMakeLists.txt Normal file
View File

@@ -0,0 +1,167 @@
add_library(
mbgl-test SHARED EXCLUDE_FROM_ALL
${MBGL_ROOT}/test/actor/actor.test.cpp
${MBGL_ROOT}/test/actor/actor_ref.test.cpp
${MBGL_ROOT}/test/algorithm/update_renderables.test.cpp
${MBGL_ROOT}/test/algorithm/update_tile_masks.test.cpp
${MBGL_ROOT}/test/api/annotations.test.cpp
${MBGL_ROOT}/test/api/api_misuse.test.cpp
${MBGL_ROOT}/test/api/custom_geometry_source.test.cpp
${MBGL_ROOT}/test/api/custom_layer.test.cpp
${MBGL_ROOT}/test/api/query.test.cpp
${MBGL_ROOT}/test/api/recycle_map.cpp
${MBGL_ROOT}/test/geometry/dem_data.test.cpp
${MBGL_ROOT}/test/geometry/line_atlas.test.cpp
${MBGL_ROOT}/test/gl/bucket.test.cpp
${MBGL_ROOT}/test/gl/context.test.cpp
${MBGL_ROOT}/test/gl/gl_functions.test.cpp
${MBGL_ROOT}/test/gl/object.test.cpp
${MBGL_ROOT}/test/map/map.test.cpp
${MBGL_ROOT}/test/map/prefetch.test.cpp
${MBGL_ROOT}/test/map/transform.test.cpp
${MBGL_ROOT}/test/math/clamp.test.cpp
${MBGL_ROOT}/test/math/minmax.test.cpp
${MBGL_ROOT}/test/math/wrap.test.cpp
${MBGL_ROOT}/test/programs/symbol_program.test.cpp
${MBGL_ROOT}/test/renderer/backend_scope.test.cpp
${MBGL_ROOT}/test/renderer/image_manager.test.cpp
${MBGL_ROOT}/test/renderer/pattern_atlas.test.cpp
${MBGL_ROOT}/test/sprite/sprite_loader.test.cpp
${MBGL_ROOT}/test/sprite/sprite_parser.test.cpp
${MBGL_ROOT}/test/src/mbgl/test/fixture_log_observer.cpp
${MBGL_ROOT}/test/src/mbgl/test/getrss.cpp
${MBGL_ROOT}/test/src/mbgl/test/sqlite3_test_fs.cpp
${MBGL_ROOT}/test/src/mbgl/test/stub_file_source.cpp
${MBGL_ROOT}/test/src/mbgl/test/test.cpp
${MBGL_ROOT}/test/src/mbgl/test/util.cpp
${MBGL_ROOT}/test/storage/asset_file_source.test.cpp
${MBGL_ROOT}/test/storage/default_file_source.test.cpp
${MBGL_ROOT}/test/storage/headers.test.cpp
${MBGL_ROOT}/test/storage/http_file_source.test.cpp
${MBGL_ROOT}/test/storage/local_file_source.test.cpp
${MBGL_ROOT}/test/storage/offline.test.cpp
${MBGL_ROOT}/test/storage/offline_database.test.cpp
${MBGL_ROOT}/test/storage/offline_download.test.cpp
${MBGL_ROOT}/test/storage/online_file_source.test.cpp
${MBGL_ROOT}/test/storage/resource.test.cpp
${MBGL_ROOT}/test/storage/sqlite.test.cpp
${MBGL_ROOT}/test/style/conversion/conversion_impl.test.cpp
${MBGL_ROOT}/test/style/conversion/function.test.cpp
${MBGL_ROOT}/test/style/conversion/geojson_options.test.cpp
${MBGL_ROOT}/test/style/conversion/layer.test.cpp
${MBGL_ROOT}/test/style/conversion/light.test.cpp
${MBGL_ROOT}/test/style/conversion/property_value.test.cpp
${MBGL_ROOT}/test/style/conversion/stringify.test.cpp
${MBGL_ROOT}/test/style/conversion/tileset.test.cpp
${MBGL_ROOT}/test/style/expression/expression.test.cpp
${MBGL_ROOT}/test/style/expression/util.test.cpp
${MBGL_ROOT}/test/style/filter.test.cpp
${MBGL_ROOT}/test/style/properties.test.cpp
${MBGL_ROOT}/test/style/property_expression.test.cpp
${MBGL_ROOT}/test/style/source.test.cpp
${MBGL_ROOT}/test/style/style.test.cpp
${MBGL_ROOT}/test/style/style_image.test.cpp
${MBGL_ROOT}/test/style/style_layer.test.cpp
${MBGL_ROOT}/test/style/style_parser.test.cpp
${MBGL_ROOT}/test/text/bidi.test.cpp
${MBGL_ROOT}/test/text/cross_tile_symbol_index.test.cpp
${MBGL_ROOT}/test/text/glyph_manager.test.cpp
${MBGL_ROOT}/test/text/glyph_pbf.test.cpp
${MBGL_ROOT}/test/text/language_tag.test.cpp
${MBGL_ROOT}/test/text/local_glyph_rasterizer.test.cpp
${MBGL_ROOT}/test/text/quads.test.cpp
${MBGL_ROOT}/test/text/shaping.test.cpp
${MBGL_ROOT}/test/text/tagged_string.test.cpp
${MBGL_ROOT}/test/tile/custom_geometry_tile.test.cpp
${MBGL_ROOT}/test/tile/geojson_tile.test.cpp
${MBGL_ROOT}/test/tile/geometry_tile_data.test.cpp
${MBGL_ROOT}/test/tile/raster_dem_tile.test.cpp
${MBGL_ROOT}/test/tile/raster_tile.test.cpp
${MBGL_ROOT}/test/tile/tile_coordinate.test.cpp
${MBGL_ROOT}/test/tile/tile_id.test.cpp
${MBGL_ROOT}/test/tile/vector_tile.test.cpp
${MBGL_ROOT}/test/util/async_task.test.cpp
${MBGL_ROOT}/test/util/dtoa.test.cpp
${MBGL_ROOT}/test/util/geo.test.cpp
${MBGL_ROOT}/test/util/grid_index.test.cpp
${MBGL_ROOT}/test/util/http_timeout.test.cpp
${MBGL_ROOT}/test/util/image.test.cpp
${MBGL_ROOT}/test/util/mapbox.test.cpp
${MBGL_ROOT}/test/util/memory.test.cpp
${MBGL_ROOT}/test/util/merge_lines.test.cpp
${MBGL_ROOT}/test/util/number_conversions.test.cpp
${MBGL_ROOT}/test/util/offscreen_texture.test.cpp
${MBGL_ROOT}/test/util/position.test.cpp
${MBGL_ROOT}/test/util/projection.test.cpp
${MBGL_ROOT}/test/util/run_loop.test.cpp
${MBGL_ROOT}/test/util/string.test.cpp
${MBGL_ROOT}/test/util/text_conversions.test.cpp
${MBGL_ROOT}/test/util/thread.test.cpp
${MBGL_ROOT}/test/util/thread_local.test.cpp
${MBGL_ROOT}/test/util/tile_cover.test.cpp
${MBGL_ROOT}/test/util/tile_range.test.cpp
${MBGL_ROOT}/test/util/timer.test.cpp
${MBGL_ROOT}/test/util/token.test.cpp
${MBGL_ROOT}/test/util/url.test.cpp
)
find_program(MBGL_TEST_NODEJS NAMES nodejs node)
find_program(MBGL_TEST_NPM NAMES npm)
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL Android OR NOT MBGL_TEST_NODEJS OR NOT MBGL_TEST_NPM)
message("Target platform does not support HTTP tests or dependencies not found.")
set(MBGL_TEST_HAS_TEST_SERVER 0)
else()
set(MBGL_TEST_HAS_TEST_SERVER 1)
endif()
if(NOT DEFINED ENV{CI})
set(MBGL_TEST_BUILD_ON_CI 0)
else()
set(MBGL_TEST_BUILD_ON_CI 1)
endif()
target_compile_definitions(
mbgl-test
PRIVATE NODE_EXECUTABLE=${MBGL_TEST_NODEJS} TEST_HAS_SERVER=${MBGL_TEST_HAS_TEST_SERVER} CI_BUILD=${MBGL_TEST_BUILD_ON_CI}
)
target_include_directories(
mbgl-test
PRIVATE
${MBGL_ROOT}/platform/default/include
${MBGL_ROOT}/platform/gfx/gl/src
${MBGL_ROOT}/src
${MBGL_ROOT}/test/src
)
target_include_directories(
mbgl-test
PUBLIC ${MBGL_ROOT}/include ${MBGL_ROOT}/test/include
)
include(${PROJECT_SOURCE_DIR}/vendor/googletest.cmake)
# Needed for testing private classes
get_target_property(MBGL_CORE_PRIVATE_LIBRARIES mbgl-core LINK_LIBRARIES)
target_link_libraries(
mbgl-test
PRIVATE
${MBGL_CORE_PRIVATE_LIBRARIES}
Mapbox::Base::Extras::args
Mapbox::Base::pixelmatch-cpp
mbgl-core
)
target_link_libraries(
mbgl-test
PUBLIC mbgl-vendor-googletest
)
if(CMAKE_SYSTEM_NAME STREQUAL Android)
set_target_properties(mbgl-test PROPERTIES LINK_FLAGS_RELEASE "-fuse-ld=gold -O2 -flto -Wl,--icf=safe")
endif()
set_property(TARGET mbgl-test PROPERTY FOLDER Core)

1
next/vendor Symbolic link
View File

@@ -0,0 +1 @@
../vendor/