summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/benchmark-files.cmake14
-rw-r--r--cmake/benchmark.cmake12
-rw-r--r--cmake/core-files.cmake176
-rw-r--r--cmake/core.cmake6
-rw-r--r--cmake/executable.xcscheme102
-rw-r--r--cmake/glfw.cmake32
-rw-r--r--cmake/library.xcscheme80
-rw-r--r--cmake/loop-darwin.cmake2
-rw-r--r--cmake/loop-uv.cmake6
-rw-r--r--cmake/mbgl.cmake32
-rw-r--r--cmake/node.cmake47
-rw-r--r--cmake/node.xcscheme95
-rw-r--r--cmake/offline.cmake15
-rw-r--r--cmake/render.cmake21
-rw-r--r--cmake/test-files.cmake21
-rw-r--r--cmake/test.cmake14
-rw-r--r--cmake/xcode.cmake75
17 files changed, 650 insertions, 100 deletions
diff --git a/cmake/benchmark-files.cmake b/cmake/benchmark-files.cmake
index 0306340fe0..9161209128 100644
--- a/cmake/benchmark-files.cmake
+++ b/cmake/benchmark-files.cmake
@@ -3,18 +3,28 @@
set(MBGL_BENCHMARK_FILES
# api
benchmark/api/query.benchmark.cpp
+ benchmark/api/render.benchmark.cpp
+
+ # function
+ benchmark/function/camera_function.benchmark.cpp
+ benchmark/function/composite_function.benchmark.cpp
+ benchmark/function/source_function.benchmark.cpp
# include/mbgl
benchmark/include/mbgl/benchmark.hpp
# parse
benchmark/parse/filter.benchmark.cpp
+ benchmark/parse/tile_mask.benchmark.cpp
+ benchmark/parse/vector_tile.benchmark.cpp
# src
benchmark/src/main.cpp
# src/mbgl/benchmark
benchmark/src/mbgl/benchmark/benchmark.cpp
- benchmark/src/mbgl/benchmark/util.cpp
- benchmark/src/mbgl/benchmark/util.hpp
+ benchmark/src/mbgl/benchmark/stub_geometry_tile_feature.hpp
+
+ # util
+ benchmark/util/dtoa.benchmark.cpp
)
diff --git a/cmake/benchmark.cmake b/cmake/benchmark.cmake
index c298d8ee28..87351e97b1 100644
--- a/cmake/benchmark.cmake
+++ b/cmake/benchmark.cmake
@@ -17,9 +17,21 @@ target_link_libraries(mbgl-benchmark
PRIVATE mbgl-core
)
+target_add_mason_package(mbgl-benchmark PRIVATE boost)
target_add_mason_package(mbgl-benchmark PRIVATE benchmark)
target_add_mason_package(mbgl-benchmark PRIVATE rapidjson)
+target_add_mason_package(mbgl-benchmark PRIVATE protozero)
+target_add_mason_package(mbgl-benchmark PRIVATE vector-tile)
mbgl_platform_benchmark()
create_source_groups(mbgl-benchmark)
+
+initialize_xcode_cxx_build_settings(mbgl-benchmark)
+
+xcode_create_scheme(
+ TARGET mbgl-benchmark
+ OPTIONAL_ARGS
+ "--benchmark_filter=Category.*"
+ "--benchmark_repetitions=1"
+)
diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake
index 8a3c42a1f4..c34a0724f4 100644
--- a/cmake/core-files.cmake
+++ b/cmake/core-files.cmake
@@ -2,12 +2,13 @@
set(MBGL_CORE_FILES
# actor
+ include/mbgl/actor/actor.hpp
+ include/mbgl/actor/actor_ref.hpp
include/mbgl/actor/mailbox.hpp
+ include/mbgl/actor/message.hpp
include/mbgl/actor/scheduler.hpp
- src/mbgl/actor/actor.hpp
- src/mbgl/actor/actor_ref.hpp
src/mbgl/actor/mailbox.cpp
- src/mbgl/actor/message.hpp
+ src/mbgl/actor/scheduler.cpp
# algorithm
src/mbgl/algorithm/covered_by_children.hpp
@@ -15,6 +16,7 @@ set(MBGL_CORE_FILES
src/mbgl/algorithm/generate_clip_ids.hpp
src/mbgl/algorithm/generate_clip_ids_impl.hpp
src/mbgl/algorithm/update_renderables.hpp
+ src/mbgl/algorithm/update_tile_masks.hpp
# annotation
include/mbgl/annotation/annotation.hpp
@@ -32,8 +34,6 @@ set(MBGL_CORE_FILES
src/mbgl/annotation/render_annotation_source.hpp
src/mbgl/annotation/shape_annotation_impl.cpp
src/mbgl/annotation/shape_annotation_impl.hpp
- src/mbgl/annotation/style_sourced_annotation_impl.cpp
- src/mbgl/annotation/style_sourced_annotation_impl.hpp
src/mbgl/annotation/symbol_annotation_impl.cpp
src/mbgl/annotation/symbol_annotation_impl.hpp
@@ -43,7 +43,6 @@ set(MBGL_CORE_FILES
# geometry
src/mbgl/geometry/anchor.hpp
- src/mbgl/geometry/binpack.hpp
src/mbgl/geometry/debug_font_data.hpp
src/mbgl/geometry/feature_index.cpp
src/mbgl/geometry/feature_index.hpp
@@ -100,25 +99,20 @@ set(MBGL_CORE_FILES
src/mbgl/layout/symbol_instance.hpp
src/mbgl/layout/symbol_layout.cpp
src/mbgl/layout/symbol_layout.hpp
+ src/mbgl/layout/symbol_projection.cpp
+ src/mbgl/layout/symbol_projection.hpp
# map
- include/mbgl/map/backend.hpp
- include/mbgl/map/backend_scope.hpp
include/mbgl/map/camera.hpp
include/mbgl/map/change.hpp
include/mbgl/map/map.hpp
include/mbgl/map/map_observer.hpp
include/mbgl/map/mode.hpp
- include/mbgl/map/query.hpp
- include/mbgl/map/view.hpp
- src/mbgl/map/backend.cpp
- src/mbgl/map/backend_scope.cpp
src/mbgl/map/map.cpp
src/mbgl/map/transform.cpp
src/mbgl/map/transform.hpp
src/mbgl/map/transform_state.cpp
src/mbgl/map/transform_state.hpp
- src/mbgl/map/update.hpp
src/mbgl/map/zoom_history.hpp
# math
@@ -155,91 +149,104 @@ set(MBGL_CORE_FILES
src/mbgl/programs/programs.hpp
src/mbgl/programs/raster_program.cpp
src/mbgl/programs/raster_program.hpp
- src/mbgl/programs/segment.cpp
src/mbgl/programs/segment.hpp
src/mbgl/programs/symbol_program.cpp
src/mbgl/programs/symbol_program.hpp
src/mbgl/programs/uniforms.hpp
# renderer
+ include/mbgl/renderer/backend_scope.hpp
+ include/mbgl/renderer/query.hpp
+ include/mbgl/renderer/renderer.hpp
+ include/mbgl/renderer/renderer_backend.hpp
+ include/mbgl/renderer/renderer_frontend.hpp
+ src/mbgl/renderer/backend_scope.cpp
src/mbgl/renderer/bucket.hpp
src/mbgl/renderer/bucket_parameters.cpp
src/mbgl/renderer/bucket_parameters.hpp
- src/mbgl/renderer/cascade_parameters.hpp
- src/mbgl/renderer/circle_bucket.cpp
- src/mbgl/renderer/circle_bucket.hpp
src/mbgl/renderer/cross_faded_property_evaluator.cpp
src/mbgl/renderer/cross_faded_property_evaluator.hpp
src/mbgl/renderer/data_driven_property_evaluator.hpp
- src/mbgl/renderer/debug_bucket.cpp
- src/mbgl/renderer/debug_bucket.hpp
- src/mbgl/renderer/fill_bucket.cpp
- src/mbgl/renderer/fill_bucket.hpp
- src/mbgl/renderer/fill_extrusion_bucket.cpp
- src/mbgl/renderer/fill_extrusion_bucket.hpp
src/mbgl/renderer/frame_history.cpp
src/mbgl/renderer/frame_history.hpp
src/mbgl/renderer/group_by_layout.cpp
src/mbgl/renderer/group_by_layout.hpp
- src/mbgl/renderer/line_bucket.cpp
- src/mbgl/renderer/line_bucket.hpp
+ src/mbgl/renderer/image_atlas.cpp
+ src/mbgl/renderer/image_atlas.hpp
+ src/mbgl/renderer/image_manager.cpp
+ src/mbgl/renderer/image_manager.hpp
+ src/mbgl/renderer/paint_parameters.cpp
src/mbgl/renderer/paint_parameters.hpp
src/mbgl/renderer/paint_property_binder.hpp
src/mbgl/renderer/paint_property_statistics.hpp
- src/mbgl/renderer/painter.cpp
- src/mbgl/renderer/painter.hpp
- src/mbgl/renderer/painter_background.cpp
- src/mbgl/renderer/painter_circle.cpp
- src/mbgl/renderer/painter_clipping.cpp
- src/mbgl/renderer/painter_debug.cpp
- src/mbgl/renderer/painter_fill.cpp
- src/mbgl/renderer/painter_fill_extrusion.cpp
- src/mbgl/renderer/painter_line.cpp
- src/mbgl/renderer/painter_raster.cpp
- src/mbgl/renderer/painter_symbol.cpp
src/mbgl/renderer/possibly_evaluated_property_value.hpp
src/mbgl/renderer/property_evaluation_parameters.hpp
src/mbgl/renderer/property_evaluator.hpp
- src/mbgl/renderer/raster_bucket.cpp
- src/mbgl/renderer/raster_bucket.hpp
- src/mbgl/renderer/render_background_layer.cpp
- src/mbgl/renderer/render_background_layer.hpp
- src/mbgl/renderer/render_circle_layer.cpp
- src/mbgl/renderer/render_circle_layer.hpp
- src/mbgl/renderer/render_custom_layer.cpp
- src/mbgl/renderer/render_custom_layer.hpp
- src/mbgl/renderer/render_fill_extrusion_layer.cpp
- src/mbgl/renderer/render_fill_extrusion_layer.hpp
- src/mbgl/renderer/render_fill_layer.cpp
- src/mbgl/renderer/render_fill_layer.hpp
- src/mbgl/renderer/render_item.hpp
src/mbgl/renderer/render_layer.cpp
src/mbgl/renderer/render_layer.hpp
src/mbgl/renderer/render_light.cpp
src/mbgl/renderer/render_light.hpp
- src/mbgl/renderer/render_line_layer.cpp
- src/mbgl/renderer/render_line_layer.hpp
src/mbgl/renderer/render_pass.hpp
- src/mbgl/renderer/render_raster_layer.cpp
- src/mbgl/renderer/render_raster_layer.hpp
src/mbgl/renderer/render_source.cpp
src/mbgl/renderer/render_source.hpp
src/mbgl/renderer/render_source_observer.hpp
- src/mbgl/renderer/render_symbol_layer.cpp
- src/mbgl/renderer/render_symbol_layer.hpp
+ src/mbgl/renderer/render_static_data.cpp
+ src/mbgl/renderer/render_static_data.hpp
src/mbgl/renderer/render_tile.cpp
src/mbgl/renderer/render_tile.hpp
- src/mbgl/renderer/symbol_bucket.cpp
- src/mbgl/renderer/symbol_bucket.hpp
+ src/mbgl/renderer/renderer.cpp
+ src/mbgl/renderer/renderer_backend.cpp
+ src/mbgl/renderer/renderer_impl.cpp
+ src/mbgl/renderer/renderer_impl.hpp
+ src/mbgl/renderer/renderer_observer.hpp
+ src/mbgl/renderer/style_diff.cpp
+ src/mbgl/renderer/style_diff.hpp
+ src/mbgl/renderer/tile_mask.hpp
src/mbgl/renderer/tile_parameters.hpp
src/mbgl/renderer/tile_pyramid.cpp
src/mbgl/renderer/tile_pyramid.hpp
- src/mbgl/renderer/transitioning_property.hpp
+ src/mbgl/renderer/transition_parameters.hpp
src/mbgl/renderer/update_parameters.hpp
+ # renderer/buckets
+ src/mbgl/renderer/buckets/circle_bucket.cpp
+ src/mbgl/renderer/buckets/circle_bucket.hpp
+ src/mbgl/renderer/buckets/debug_bucket.cpp
+ src/mbgl/renderer/buckets/debug_bucket.hpp
+ src/mbgl/renderer/buckets/fill_bucket.cpp
+ src/mbgl/renderer/buckets/fill_bucket.hpp
+ src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp
+ src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp
+ src/mbgl/renderer/buckets/line_bucket.cpp
+ src/mbgl/renderer/buckets/line_bucket.hpp
+ src/mbgl/renderer/buckets/raster_bucket.cpp
+ src/mbgl/renderer/buckets/raster_bucket.hpp
+ src/mbgl/renderer/buckets/symbol_bucket.cpp
+ src/mbgl/renderer/buckets/symbol_bucket.hpp
+
+ # renderer/layers
+ src/mbgl/renderer/layers/render_background_layer.cpp
+ src/mbgl/renderer/layers/render_background_layer.hpp
+ src/mbgl/renderer/layers/render_circle_layer.cpp
+ src/mbgl/renderer/layers/render_circle_layer.hpp
+ src/mbgl/renderer/layers/render_custom_layer.cpp
+ src/mbgl/renderer/layers/render_custom_layer.hpp
+ src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
+ src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp
+ src/mbgl/renderer/layers/render_fill_layer.cpp
+ src/mbgl/renderer/layers/render_fill_layer.hpp
+ src/mbgl/renderer/layers/render_line_layer.cpp
+ src/mbgl/renderer/layers/render_line_layer.hpp
+ src/mbgl/renderer/layers/render_raster_layer.cpp
+ src/mbgl/renderer/layers/render_raster_layer.hpp
+ src/mbgl/renderer/layers/render_symbol_layer.cpp
+ src/mbgl/renderer/layers/render_symbol_layer.hpp
+
# renderer/sources
src/mbgl/renderer/sources/render_geojson_source.cpp
src/mbgl/renderer/sources/render_geojson_source.hpp
+ src/mbgl/renderer/sources/render_image_source.cpp
+ src/mbgl/renderer/sources/render_image_source.hpp
src/mbgl/renderer/sources/render_raster_source.cpp
src/mbgl/renderer/sources/render_raster_source.hpp
src/mbgl/renderer/sources/render_vector_source.cpp
@@ -284,11 +291,11 @@ set(MBGL_CORE_FILES
src/mbgl/shaders/symbol_sdf.hpp
# sprite
- src/mbgl/sprite/sprite_atlas.cpp
- src/mbgl/sprite/sprite_atlas.hpp
- src/mbgl/sprite/sprite_atlas_observer.hpp
- src/mbgl/sprite/sprite_atlas_worker.cpp
- src/mbgl/sprite/sprite_atlas_worker.hpp
+ src/mbgl/sprite/sprite_loader.cpp
+ src/mbgl/sprite/sprite_loader.hpp
+ src/mbgl/sprite/sprite_loader_observer.hpp
+ src/mbgl/sprite/sprite_loader_worker.cpp
+ src/mbgl/sprite/sprite_loader_worker.hpp
src/mbgl/sprite/sprite_parser.cpp
src/mbgl/sprite/sprite_parser.hpp
@@ -299,12 +306,16 @@ set(MBGL_CORE_FILES
include/mbgl/storage/offline.hpp
include/mbgl/storage/online_file_source.hpp
include/mbgl/storage/resource.hpp
+ include/mbgl/storage/resource_transform.hpp
include/mbgl/storage/response.hpp
src/mbgl/storage/asset_file_source.hpp
+ src/mbgl/storage/file_source_request.cpp
+ src/mbgl/storage/file_source_request.hpp
src/mbgl/storage/http_file_source.hpp
src/mbgl/storage/local_file_source.hpp
src/mbgl/storage/network_status.cpp
src/mbgl/storage/resource.cpp
+ src/mbgl/storage/resource_transform.cpp
src/mbgl/storage/response.cpp
# style
@@ -319,12 +330,14 @@ set(MBGL_CORE_FILES
include/mbgl/style/position.hpp
include/mbgl/style/property_value.hpp
include/mbgl/style/source.hpp
+ include/mbgl/style/style.hpp
include/mbgl/style/transition_options.hpp
include/mbgl/style/types.hpp
include/mbgl/style/undefined.hpp
- src/mbgl/style/class_dictionary.cpp
- src/mbgl/style/class_dictionary.hpp
+ src/mbgl/style/collection.hpp
src/mbgl/style/image.cpp
+ src/mbgl/style/image_impl.cpp
+ src/mbgl/style/image_impl.hpp
src/mbgl/style/layer.cpp
src/mbgl/style/layer_impl.cpp
src/mbgl/style/layer_impl.hpp
@@ -334,25 +347,24 @@ set(MBGL_CORE_FILES
src/mbgl/style/light_impl.cpp
src/mbgl/style/light_impl.hpp
src/mbgl/style/light_observer.hpp
- src/mbgl/style/light_properties.hpp
src/mbgl/style/observer.hpp
src/mbgl/style/paint_property.hpp
src/mbgl/style/parser.cpp
src/mbgl/style/parser.hpp
+ src/mbgl/style/properties.hpp
src/mbgl/style/rapidjson_conversion.hpp
src/mbgl/style/source.cpp
src/mbgl/style/source_impl.cpp
src/mbgl/style/source_impl.hpp
src/mbgl/style/source_observer.hpp
src/mbgl/style/style.cpp
- src/mbgl/style/style.hpp
- src/mbgl/style/tile_source_impl.cpp
- src/mbgl/style/tile_source_impl.hpp
+ src/mbgl/style/style_impl.cpp
+ src/mbgl/style/style_impl.hpp
src/mbgl/style/types.cpp
- src/mbgl/style/update_batch.hpp
# style/conversion
include/mbgl/style/conversion/constant.hpp
+ include/mbgl/style/conversion/coordinate.hpp
include/mbgl/style/conversion/data_driven_property_value.hpp
include/mbgl/style/conversion/filter.hpp
include/mbgl/style/conversion/function.hpp
@@ -368,6 +380,7 @@ set(MBGL_CORE_FILES
include/mbgl/style/conversion/tileset.hpp
include/mbgl/style/conversion/transition_options.hpp
src/mbgl/style/conversion/geojson.cpp
+ src/mbgl/style/conversion/json.hpp
src/mbgl/style/conversion/stringify.hpp
# style/function
@@ -434,11 +447,15 @@ set(MBGL_CORE_FILES
# style/sources
include/mbgl/style/sources/geojson_source.hpp
+ include/mbgl/style/sources/image_source.hpp
include/mbgl/style/sources/raster_source.hpp
include/mbgl/style/sources/vector_source.hpp
src/mbgl/style/sources/geojson_source.cpp
src/mbgl/style/sources/geojson_source_impl.cpp
src/mbgl/style/sources/geojson_source_impl.hpp
+ src/mbgl/style/sources/image_source.cpp
+ src/mbgl/style/sources/image_source_impl.cpp
+ src/mbgl/style/sources/image_source_impl.hpp
src/mbgl/style/sources/raster_source.cpp
src/mbgl/style/sources/raster_source_impl.cpp
src/mbgl/style/sources/raster_source_impl.hpp
@@ -460,7 +477,9 @@ set(MBGL_CORE_FILES
src/mbgl/text/glyph.hpp
src/mbgl/text/glyph_atlas.cpp
src/mbgl/text/glyph_atlas.hpp
- src/mbgl/text/glyph_atlas_observer.hpp
+ src/mbgl/text/glyph_manager.cpp
+ src/mbgl/text/glyph_manager.hpp
+ src/mbgl/text/glyph_manager_observer.hpp
src/mbgl/text/glyph_pbf.cpp
src/mbgl/text/glyph_pbf.hpp
src/mbgl/text/glyph_range.hpp
@@ -471,6 +490,7 @@ set(MBGL_CORE_FILES
src/mbgl/text/shaping.hpp
# tile
+ include/mbgl/tile/tile_id.hpp
src/mbgl/tile/geojson_tile.cpp
src/mbgl/tile/geojson_tile.hpp
src/mbgl/tile/geometry_tile.cpp
@@ -487,13 +507,15 @@ set(MBGL_CORE_FILES
src/mbgl/tile/tile.hpp
src/mbgl/tile/tile_cache.cpp
src/mbgl/tile/tile_cache.hpp
- src/mbgl/tile/tile_id.hpp
+ src/mbgl/tile/tile_id_hash.cpp
src/mbgl/tile/tile_id_io.cpp
src/mbgl/tile/tile_loader.hpp
src/mbgl/tile/tile_loader_impl.hpp
src/mbgl/tile/tile_observer.hpp
src/mbgl/tile/vector_tile.cpp
src/mbgl/tile/vector_tile.hpp
+ src/mbgl/tile/vector_tile_data.cpp
+ src/mbgl/tile/vector_tile_data.hpp
# util
include/mbgl/util/any.hpp
@@ -515,6 +537,7 @@ set(MBGL_CORE_FILES
include/mbgl/util/geometry.hpp
include/mbgl/util/ignore.hpp
include/mbgl/util/image.hpp
+ include/mbgl/util/immutable.hpp
include/mbgl/util/indexed_tuple.hpp
include/mbgl/util/interpolate.hpp
include/mbgl/util/logging.hpp
@@ -527,6 +550,7 @@ set(MBGL_CORE_FILES
include/mbgl/util/run_loop.hpp
include/mbgl/util/size.hpp
include/mbgl/util/string.hpp
+ include/mbgl/util/thread.hpp
include/mbgl/util/tileset.hpp
include/mbgl/util/timer.hpp
include/mbgl/util/traits.hpp
@@ -549,7 +573,7 @@ set(MBGL_CORE_FILES
src/mbgl/util/event.cpp
src/mbgl/util/font_stack.cpp
src/mbgl/util/geo.cpp
- src/mbgl/util/geojson.cpp
+ src/mbgl/util/geojson_impl.cpp
src/mbgl/util/grid_index.cpp
src/mbgl/util/grid_index.hpp
src/mbgl/util/http_header.cpp
@@ -564,6 +588,7 @@ set(MBGL_CORE_FILES
src/mbgl/util/io.cpp
src/mbgl/util/io.hpp
src/mbgl/util/logging.cpp
+ src/mbgl/util/longest_common_subsequence.hpp
src/mbgl/util/mapbox.cpp
src/mbgl/util/mapbox.hpp
src/mbgl/util/mat2.cpp
@@ -582,9 +607,6 @@ set(MBGL_CORE_FILES
src/mbgl/util/stopwatch.cpp
src/mbgl/util/stopwatch.hpp
src/mbgl/util/string.cpp
- src/mbgl/util/thread.hpp
- src/mbgl/util/thread_context.cpp
- src/mbgl/util/thread_context.hpp
src/mbgl/util/thread_local.hpp
src/mbgl/util/throttler.cpp
src/mbgl/util/throttler.hpp
@@ -597,7 +619,5 @@ set(MBGL_CORE_FILES
src/mbgl/util/utf.hpp
src/mbgl/util/version.cpp
src/mbgl/util/version.hpp
- src/mbgl/util/work_queue.cpp
- src/mbgl/util/work_queue.hpp
src/mbgl/util/work_request.cpp
)
diff --git a/cmake/core.cmake b/cmake/core.cmake
index 531edc092d..c4e711f558 100644
--- a/cmake/core.cmake
+++ b/cmake/core.cmake
@@ -26,7 +26,13 @@ target_add_mason_package(mbgl-core PRIVATE earcut)
target_add_mason_package(mbgl-core PRIVATE protozero)
target_add_mason_package(mbgl-core PRIVATE polylabel)
target_add_mason_package(mbgl-core PRIVATE wagyu)
+target_add_mason_package(mbgl-core PRIVATE shelf-pack)
+target_add_mason_package(mbgl-core PRIVATE vector-tile)
mbgl_platform_core()
create_source_groups(mbgl-core)
+
+xcode_create_scheme(TARGET mbgl-core)
+
+initialize_xcode_cxx_build_settings(mbgl-core)
diff --git a/cmake/executable.xcscheme b/cmake/executable.xcscheme
new file mode 100644
index 0000000000..44146a621d
--- /dev/null
+++ b/cmake/executable.xcscheme
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "YES"
+ customWorkingDirectory = "${XCSCHEME_WORKING_DIRECTORY}"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <CommandLineArguments>${XCSCHEME_COMMAND_LINE_ARGS}
+ </CommandLineArguments>
+ <EnvironmentVariables>
+ <EnvironmentVariable
+ key = "MAPBOX_ACCESS_TOKEN"
+ value = "$ENV{MAPBOX_ACCESS_TOKEN}"
+ isEnabled = "YES">
+ </EnvironmentVariable>
+ </EnvironmentVariables>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "YES"
+ customWorkingDirectory = "${XCSCHEME_WORKING_DIRECTORY}"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/cmake/glfw.cmake b/cmake/glfw.cmake
index c14bd6f2c2..29d8d2ba94 100644
--- a/cmake/glfw.cmake
+++ b/cmake/glfw.cmake
@@ -5,22 +5,13 @@ add_executable(mbgl-glfw
target_sources(mbgl-glfw
PRIVATE platform/glfw/glfw_view.hpp
PRIVATE platform/glfw/glfw_view.cpp
+ PRIVATE platform/glfw/glfw_renderer_frontend.hpp
+ PRIVATE platform/glfw/glfw_renderer_frontend.cpp
PRIVATE platform/glfw/settings_json.hpp
PRIVATE platform/glfw/settings_json.cpp
PRIVATE platform/default/mbgl/util/default_styles.hpp
)
-# Our GL implementation is internal to mbgl-core, which causes the GL header to
-# be included after GLFW's own header. They both attempt to define GLAPIENTRY,
-# but unfortunately the GL header doesn't check if it was previously defined,
-# causing a macro redefinition compiler error.
-# There is no particular compiler warning flag to ignore this check on GCC
-# neither it does accept ignoring '-Werror' via diagnostics pragmas. We can
-# only suppress this by either replacing the header path inclusion from -I to
-# -isystem, or completely suppressing errors. Until the former solution is not
-# available, we'll suppress the errors from that definition file.
-set_source_files_properties(platform/glfw/glfw_view.cpp PROPERTIES COMPILE_FLAGS -Wno-error)
-
target_compile_options(mbgl-glfw
PRIVATE -fvisibility-inlines-hidden
)
@@ -33,8 +24,27 @@ target_link_libraries(mbgl-glfw
PRIVATE mbgl-core
)
+target_add_mason_package(mbgl-glfw PRIVATE cheap-ruler)
+target_add_mason_package(mbgl-glfw PRIVATE geojson)
+target_add_mason_package(mbgl-glfw PRIVATE geometry)
target_add_mason_package(mbgl-glfw PRIVATE glfw)
+target_add_mason_package(mbgl-glfw PRIVATE variant)
mbgl_platform_glfw()
create_source_groups(mbgl-glfw)
+
+initialize_xcode_cxx_build_settings(mbgl-glfw)
+
+xcode_create_scheme(
+ TARGET mbgl-glfw
+ OPTIONAL_ARGS
+ "--style=file.json"
+ "--lon=0"
+ "--lat=0"
+ "--zoom=1"
+ "--bearing=0"
+ "--pitch=0"
+ "--fullscreen"
+ "--benchmark"
+)
diff --git a/cmake/library.xcscheme b/cmake/library.xcscheme
new file mode 100644
index 0000000000..320a2f851f
--- /dev/null
+++ b/cmake/library.xcscheme
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </MacroExpansion>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/cmake/loop-darwin.cmake b/cmake/loop-darwin.cmake
index 92ea631809..46511d2548 100644
--- a/cmake/loop-darwin.cmake
+++ b/cmake/loop-darwin.cmake
@@ -17,3 +17,5 @@ target_include_directories(mbgl-loop-darwin
)
create_source_groups(mbgl-loop-darwin)
+
+xcode_create_scheme(TARGET mbgl-loop-darwin) \ No newline at end of file
diff --git a/cmake/loop-uv.cmake b/cmake/loop-uv.cmake
index 0f55fce64c..8840040963 100644
--- a/cmake/loop-uv.cmake
+++ b/cmake/loop-uv.cmake
@@ -14,4 +14,10 @@ target_include_directories(mbgl-loop-uv
PRIVATE src
)
+target_link_libraries(mbgl-loop-uv
+ PRIVATE mbgl-core
+)
+
create_source_groups(mbgl-loop-uv)
+
+xcode_create_scheme(TARGET mbgl-loop-uv) \ No newline at end of file
diff --git a/cmake/mbgl.cmake b/cmake/mbgl.cmake
index 14e5b0d691..7f7d820a68 100644
--- a/cmake/mbgl.cmake
+++ b/cmake/mbgl.cmake
@@ -44,6 +44,12 @@ execute_process(
COMMAND git submodule update --init mapbox-gl-js
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
+if(MBGL_PLATFORM STREQUAL "ios")
+ execute_process(
+ COMMAND git submodule update --init platform/ios/vendor/SMCalloutView platform/ios/uitest/KIF platform/ios/uitest/OHHTTPStubs
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
+endif()
+
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/mapbox-gl-js/node_modules")
# Symlink mapbox-gl-js/node_modules so that the modules that are
# about to be installed get cached between CI runs.
@@ -108,6 +114,32 @@ function(write_xcconfig_target_properties)
)
endfunction()
+# Set Xcode project build settings to be consistent with the CXX flags we're
+# using. (Otherwise, Xcode's defaults may override some of these.)
+macro(initialize_xcode_cxx_build_settings target)
+ # -Wall
+ set_xcode_property(${target} GCC_WARN_SIGN_COMPARE YES)
+ set_xcode_property(${target} GCC_WARN_UNINITIALIZED_AUTOS YES)
+ set_xcode_property(${target} GCC_WARN_UNKNOWN_PRAGMAS YES)
+ set_xcode_property(${target} GCC_WARN_UNUSED_FUNCTION YES)
+ set_xcode_property(${target} GCC_WARN_UNUSED_LABEL YES)
+ set_xcode_property(${target} GCC_WARN_UNUSED_PARAMETER YES)
+ set_xcode_property(${target} GCC_WARN_UNUSED_VARIABLE YES)
+
+ # -Wextra
+ set_xcode_property(${target} CLANG_WARN_EMPTY_BODY YES)
+ set_xcode_property(${target} GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS YES)
+
+ # -Wshadow
+ set_xcode_property(${target} GCC_WARN_SHADOW YES)
+
+ # -Wno-unknown-pragmas
+ set_xcode_property(${target} GCC_WARN_UNKNOWN_PRAGMAS YES)
+
+ # -Wnon-virtual-dtor
+ set_xcode_property(${target} GCC_WARN_NON_VIRTUAL_DESTRUCTOR YES)
+endmacro(initialize_xcode_cxx_build_settings)
+
# CMake 3.1 does not have this yet.
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
diff --git a/cmake/node.cmake b/cmake/node.cmake
index 6833cb983f..5a6c7595ad 100644
--- a/cmake/node.cmake
+++ b/cmake/node.cmake
@@ -53,3 +53,50 @@ add_custom_command(
mbgl_platform_node()
create_source_groups(mbgl-node)
+
+initialize_xcode_cxx_build_settings(mbgl-node)
+
+xcode_create_scheme(
+ TARGET mbgl-node
+)
+
+xcode_create_scheme(
+ TARGET mbgl-node
+ TYPE node
+ NAME "node tests"
+ ARGS
+ "`npm bin tape`/tape platform/node/test/js/**/*.test.js"
+)
+
+xcode_create_scheme(
+ TARGET mbgl-node
+ TYPE node
+ NAME "node render tests"
+ ARGS
+ "platform/node/test/render.test.js"
+ OPTIONAL_ARGS
+ "group"
+ "test"
+)
+
+xcode_create_scheme(
+ TARGET mbgl-node
+ TYPE node
+ NAME "node query tests"
+ ARGS
+ "platform/node/test/query.test.js"
+ OPTIONAL_ARGS
+ "group"
+ "test"
+)
+
+xcode_create_scheme(
+ TARGET mbgl-node
+ TYPE node
+ NAME "node-benchmark"
+ ARGS
+ "platform/node/test/benchmark.js"
+ OPTIONAL_ARGS
+ "group"
+ "test"
+)
diff --git a/cmake/node.xcscheme b/cmake/node.xcscheme
new file mode 100644
index 0000000000..0daffa46e6
--- /dev/null
+++ b/cmake/node.xcscheme
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0810"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "YES"
+ customWorkingDirectory = "${XCSCHEME_WORKING_DIRECTORY}"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <PathRunnable
+ runnableDebuggingMode = "0"
+ FilePath = "${XCSCHEME_NODE_EXECUTABLE}">
+ </PathRunnable>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </MacroExpansion>
+ <CommandLineArguments>${XCSCHEME_COMMAND_LINE_ARGS}
+ </CommandLineArguments>
+ <EnvironmentVariables>
+ <EnvironmentVariable
+ key = "PATH"
+ value = "${XCSCHEME_NODE_PATH}:$PATH"
+ isEnabled = "YES">
+ </EnvironmentVariable>
+ </EnvironmentVariables>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "YES"
+ customWorkingDirectory = "${XCSCHEME_WORKING_DIRECTORY}"
+ debugDocumentVersioning = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "${XCSCHEME_BLUEPRINT_ID}"
+ BuildableName = "${XCSCHEME_BUILDABLE_NAME}"
+ BlueprintName = "${XCSCHEME_BLUEPRINT_NAME}"
+ ReferencedContainer = "container:${XCSCHEME_CONTAINER}">
+ </BuildableReference>
+ </MacroExpansion>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/cmake/offline.cmake b/cmake/offline.cmake
index a79b22db54..c9a3349792 100644
--- a/cmake/offline.cmake
+++ b/cmake/offline.cmake
@@ -24,3 +24,18 @@ target_add_mason_package(mbgl-offline PRIVATE boost_libprogram_options)
mbgl_platform_offline()
create_source_groups(mbgl-offline)
+
+xcode_create_scheme(
+ TARGET mbgl-offline
+ OPTIONAL_ARGS
+ "--style=file.json"
+ "--north=37.2"
+ "--west=-122.8"
+ "--south=38.1"
+ "--east=-121.7"
+ "--minZoom=0.0"
+ "--maxZoom=15.0"
+ "--pixelRatio=1.0"
+ "--token="
+ "--output=offline.db"
+)
diff --git a/cmake/render.cmake b/cmake/render.cmake
index 023b3c21e3..f69aed16c0 100644
--- a/cmake/render.cmake
+++ b/cmake/render.cmake
@@ -20,3 +20,24 @@ target_add_mason_package(mbgl-render PRIVATE boost_libprogram_options)
mbgl_platform_render()
create_source_groups(mbgl-render)
+
+initialize_xcode_cxx_build_settings(mbgl-render)
+
+xcode_create_scheme(
+ TARGET mbgl-render
+ OPTIONAL_ARGS
+ "--style=file.json"
+ "--lon=0"
+ "--lat=0"
+ "--zoom=0"
+ "--bearing=0"
+ "--pitch=0"
+ "--width=512"
+ "--height=512"
+ "--ratio=1"
+ "--token="
+ "--debug"
+ "--output=out.png"
+ "--cache=cache.sqlite"
+ "--assets=."
+)
diff --git a/cmake/test-files.cmake b/cmake/test-files.cmake
index c29bd284d7..027c34f31e 100644
--- a/cmake/test-files.cmake
+++ b/cmake/test-files.cmake
@@ -10,17 +10,15 @@ set(MBGL_TEST_FILES
test/algorithm/generate_clip_ids.test.cpp
test/algorithm/mock.hpp
test/algorithm/update_renderables.test.cpp
+ test/algorithm/update_tile_masks.test.cpp
# api
test/api/annotations.test.cpp
test/api/api_misuse.test.cpp
test/api/custom_layer.test.cpp
test/api/query.test.cpp
- test/api/render_missing.test.cpp
- test/api/repeated_render.test.cpp
-
- # geometry
- test/geometry/binpack.test.cpp
+ test/api/recycle_map.cpp
+ test/api/zoom_history.cpp
# gl
test/gl/bucket.test.cpp
@@ -31,6 +29,7 @@ set(MBGL_TEST_FILES
# map
test/map/map.test.cpp
+ test/map/prefetch.test.cpp
test/map/transform.test.cpp
# math
@@ -40,13 +39,15 @@ set(MBGL_TEST_FILES
# programs
test/programs/binary_program.test.cpp
+ test/programs/symbol_program.test.cpp
# renderer
test/renderer/backend_scope.test.cpp
test/renderer/group_by_layout.test.cpp
+ test/renderer/image_manager.test.cpp
# sprite
- test/sprite/sprite_atlas.test.cpp
+ test/sprite/sprite_loader.test.cpp
test/sprite/sprite_parser.test.cpp
# src/mbgl/test
@@ -93,10 +94,12 @@ set(MBGL_TEST_FILES
# style/function
test/style/function/camera_function.test.cpp
test/style/function/composite_function.test.cpp
+ test/style/function/exponential_stops.test.cpp
+ test/style/function/interval_stops.test.cpp
test/style/function/source_function.test.cpp
# style
- test/style/paint_property.test.cpp
+ test/style/properties.test.cpp
test/style/source.test.cpp
test/style/style.test.cpp
test/style/style_image.test.cpp
@@ -104,7 +107,7 @@ set(MBGL_TEST_FILES
test/style/style_parser.test.cpp
# text
- test/text/glyph_atlas.test.cpp
+ test/text/glyph_loader.test.cpp
test/text/glyph_pbf.test.cpp
test/text/quads.test.cpp
@@ -119,6 +122,7 @@ set(MBGL_TEST_FILES
# util
test/util/async_task.test.cpp
+ test/util/dtoa.test.cpp
test/util/geo.test.cpp
test/util/http_timeout.test.cpp
test/util/image.test.cpp
@@ -137,5 +141,4 @@ set(MBGL_TEST_FILES
test/util/timer.test.cpp
test/util/token.test.cpp
test/util/url.test.cpp
- test/util/work_queue.test.cpp
)
diff --git a/cmake/test.cmake b/cmake/test.cmake
index 3c63f7bcf8..c821d53316 100644
--- a/cmake/test.cmake
+++ b/cmake/test.cmake
@@ -35,7 +35,21 @@ target_add_mason_package(mbgl-test PRIVATE pixelmatch)
target_add_mason_package(mbgl-test PRIVATE boost)
target_add_mason_package(mbgl-test PRIVATE geojson)
target_add_mason_package(mbgl-test PRIVATE geojsonvt)
+target_add_mason_package(mbgl-test PRIVATE shelf-pack)
mbgl_platform_test()
create_source_groups(mbgl-test)
+
+initialize_xcode_cxx_build_settings(mbgl-test)
+
+xcode_create_scheme(
+ TARGET mbgl-test
+ OPTIONAL_ARGS
+ "--gtest_filter=Category.*"
+ "--gtest_repeat=0"
+ "--gtest_shuffle=0"
+ "--gtest_break_on_failure=0"
+ "--gtest_throw_on_failure=0"
+ "--gtest_catch_exceptions=0"
+ )
diff --git a/cmake/xcode.cmake b/cmake/xcode.cmake
new file mode 100644
index 0000000000..3537009330
--- /dev/null
+++ b/cmake/xcode.cmake
@@ -0,0 +1,75 @@
+function(get_target_filename OUTPUT TARGET)
+ get_target_property(_TYPE "${TARGET}" TYPE)
+ get_target_property(_PREFIX "${TARGET}" PREFIX)
+ if(NOT _PREFIX AND NOT _PREFIX STREQUAL "")
+ set(_PREFIX "${CMAKE_${_TYPE}_PREFIX}")
+ endif()
+ get_target_property(_BASENAME "${TARGET}" OUTPUT_NAME)
+ if(NOT _BASENAME)
+ get_target_property(_BASENAME "${TARGET}" NAME)
+ endif()
+ get_target_property(_SUFFIX "${TARGET}" SUFFIX)
+ if(NOT _SUFFIX AND NOT _SUFFIX STREQUAL "")
+ set(_SUFFIX "${CMAKE_${_TYPE}_SUFFIX}")
+ endif()
+ set(${OUTPUT} "${_PREFIX}${_BASENAME}${_SUFFIX}" PARENT_SCOPE)
+endfunction()
+
+function(xcode_create_scheme)
+ if (NOT CMAKE_GENERATOR STREQUAL "Xcode")
+ return()
+ endif()
+
+ cmake_parse_arguments(XCSCHEME "" "TARGET;TYPE;NAME" "ARGS;OPTIONAL_ARGS" ${ARGN})
+
+ if(XCSCHEME_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "xcode_create_scheme() called with unrecognized arguments: ${XCSCHEME_UNPARSED_ARGUMENTS}")
+ endif()
+
+ if(NOT XCSCHEME_TARGET)
+ message(FATAL_ERROR "xcode_create_scheme() called without required argument TARGET")
+ endif()
+
+ if(NOT XCSCHEME_TYPE)
+ get_target_property(_TYPE "${XCSCHEME_TARGET}" TYPE)
+ if (_TYPE MATCHES "^.*_LIBRARY$")
+ set(XCSCHEME_TYPE "library")
+ elseif(_TYPE STREQUAL "EXECUTABLE")
+ set(XCSCHEME_TYPE "executable")
+ else()
+ message(FATAL_ERROR "xcode_create_scheme() could not determine type of ${XCSCHEME_TARGET}")
+ endif()
+ endif()
+
+ if(NOT XCSCHEME_NAME)
+ set(XCSCHEME_NAME "${XCSCHEME_TARGET}")
+ endif()
+
+ set(XCODEPROJ_PATH "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.xcodeproj")
+ set(XCSCHEME_OUTPUT_FILE "${XCODEPROJ_PATH}/xcshareddata/xcschemes/${XCSCHEME_NAME}.xcscheme")
+
+ # Prevent overwriting of the scheme file on every CMake rerun.
+ if (EXISTS "${XCSCHEME_OUTPUT_FILE}")
+ return()
+ endif()
+
+ file(RELATIVE_PATH XCSCHEME_CONTAINER "${CMAKE_SOURCE_DIR}" "${XCODEPROJ_PATH}")
+ string(RANDOM LENGTH 24 ALPHABET "0123456789ABCDEF" XCSCHEME_BLUEPRINT_ID)
+ get_target_filename(XCSCHEME_BUILDABLE_NAME "${XCSCHEME_TARGET}")
+ set(XCSCHEME_BLUEPRINT_NAME "${XCSCHEME_TARGET}")
+ set(XCSCHEME_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
+ set(XCSCHEME_NODE_EXECUTABLE "${NodeJS_EXECUTABLE}")
+ get_filename_component(XCSCHEME_NODE_PATH "${NodeJS_EXECUTABLE}" DIRECTORY)
+
+ set(XCSCHEME_COMMAND_LINE_ARGS "")
+ foreach(_ARG IN LISTS XCSCHEME_ARGS)
+ set(XCSCHEME_COMMAND_LINE_ARGS "${XCSCHEME_COMMAND_LINE_ARGS}\n <CommandLineArgument\n argument = \"${_ARG}\"\n isEnabled = \"YES\">\n </CommandLineArgument>")
+ endforeach()
+ foreach(_ARG IN LISTS XCSCHEME_OPTIONAL_ARGS)
+ set(XCSCHEME_COMMAND_LINE_ARGS "${XCSCHEME_COMMAND_LINE_ARGS}\n <CommandLineArgument\n argument = \"${_ARG}\"\n isEnabled = \"NO\">\n </CommandLineArgument>")
+ endforeach()
+
+ configure_file(
+ "${CMAKE_SOURCE_DIR}/cmake/${XCSCHEME_TYPE}.xcscheme"
+ "${XCSCHEME_OUTPUT_FILE}")
+endfunction()