diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/benchmark-files.cmake | 14 | ||||
-rw-r--r-- | cmake/benchmark.cmake | 12 | ||||
-rw-r--r-- | cmake/core-files.cmake | 176 | ||||
-rw-r--r-- | cmake/core.cmake | 6 | ||||
-rw-r--r-- | cmake/executable.xcscheme | 102 | ||||
-rw-r--r-- | cmake/glfw.cmake | 32 | ||||
-rw-r--r-- | cmake/library.xcscheme | 80 | ||||
-rw-r--r-- | cmake/loop-darwin.cmake | 2 | ||||
-rw-r--r-- | cmake/loop-uv.cmake | 6 | ||||
-rw-r--r-- | cmake/mbgl.cmake | 32 | ||||
-rw-r--r-- | cmake/node.cmake | 47 | ||||
-rw-r--r-- | cmake/node.xcscheme | 95 | ||||
-rw-r--r-- | cmake/offline.cmake | 15 | ||||
-rw-r--r-- | cmake/render.cmake | 21 | ||||
-rw-r--r-- | cmake/test-files.cmake | 21 | ||||
-rw-r--r-- | cmake/test.cmake | 14 | ||||
-rw-r--r-- | cmake/xcode.cmake | 75 |
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() |