if(NOT MLN_WITH_METAL) return() endif() message(STATUS "Configuring Metal renderer backend") target_compile_definitions( mbgl-core PUBLIC MLN_RENDER_BACKEND_METAL=1 "MLN_USE_UNORDERED_DENSE=$" ) list(APPEND INCLUDE_FILES ${PROJECT_SOURCE_DIR}/include/mln/mtl/buffer_resource.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/command_encoder.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/context.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/drawable.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/drawable_builder.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/dynamic_texture.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/index_buffer_resource.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/layer_group.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/mtl_fwd.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/offscreen_texture.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/render_pass.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/renderer_backend.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/renderable_resource.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/texture2d.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/tile_layer_group.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/uniform_buffer.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/upload_pass.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/vertex_attribute.hpp ${PROJECT_SOURCE_DIR}/include/mln/mtl/vertex_buffer_resource.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/background.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/circle.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/clipping_mask.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/common.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/collision.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/custom_geometry.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/custom_symbol_icon.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/debug.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/fill.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/fill_extrusion.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/heatmap.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/heatmap_texture.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/hillshade.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/hillshade_prepare.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/color_relief.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/line.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/location_indicator.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/particle_gpu_validation.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/retained_underlay_composite.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/raster.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/shader_group.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/shader_program.hpp ${PROJECT_SOURCE_DIR}/include/mln/shaders/mtl/symbol.hpp ) list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mln/mtl/buffer_resource.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/command_encoder.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/context.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/drawable.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/drawable_impl.hpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/drawable_builder.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/dynamic_texture.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/index_buffer_resource.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/layer_group.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/mtl.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/offscreen_texture.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/renderer_backend.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/texture2d.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/render_pass.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/tile_layer_group.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/uniform_buffer.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/upload_pass.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/vertex_attribute.cpp ${PROJECT_SOURCE_DIR}/src/mln/mtl/vertex_buffer_resource.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/shader_program.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/background.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/circle.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/collision.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/clipping_mask.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/custom_geometry.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/custom_symbol_icon.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/debug.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/fill.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/fill_extrusion.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/heatmap.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/heatmap_texture.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/hillshade.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/hillshade_prepare.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/color_relief.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/line.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/location_indicator.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/particle_gpu_validation.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/retained_underlay_composite.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/raster.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/symbol.cpp ${PROJECT_SOURCE_DIR}/src/mln/shaders/mtl/widevector.cpp ${PROJECT_SOURCE_DIR}/src/mln/style/layers/mtl/custom_layer_render_parameters.cpp ) target_link_libraries(mbgl-core PRIVATE "-framework Metal")