summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <tmpsantos@gmail.com>2019-07-23 17:40:30 +0300
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2019-09-05 18:01:03 +0300
commit25332f3ff50f5634e94709fcfb3d5156fcac6f92 (patch)
tree68dde89f7e838ece4c910bad6b87ec6b40741a9f
parentef704de47a2c40d253b03e2f663b346c29583c6f (diff)
downloadqtlocation-mapboxgl-25332f3ff50f5634e94709fcfb3d5156fcac6f92.tar.gz
[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.
-rw-r--r--CMakeLists.txt1024
-rw-r--r--benchmark/CMakeLists.txt42
-rw-r--r--platform/android/android.cmake298
-rw-r--r--platform/gfx/gl/gl.cmake91
-rw-r--r--platform/glfw/CMakeLists.txt34
-rw-r--r--platform/ios/ios.cmake563
-rw-r--r--platform/linux/linux.cmake116
-rw-r--r--platform/macos/macos.cmake178
-rw-r--r--platform/node/CMakeLists.txt36
-rw-r--r--platform/qt/qt.cmake319
-rw-r--r--render-test/CMakeLists.txt35
-rw-r--r--test/CMakeLists.txt163
12 files changed, 2539 insertions, 360 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d8881f4a1c..8ec2fc5081 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,218 +1,848 @@
-cmake_minimum_required(VERSION 3.9)
-project(mbgl LANGUAGES CXX C)
-
-set(CMAKE_CONFIGURATION_TYPES Debug Release RelWithDebInfo Sanitize)
-
-# Compiler configuration
-set(CMAKE_CXX_EXTENSIONS OFF)
-set(CMAKE_CXX_STANDARD 14)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_C_EXTENSIONS OFF)
-set(CMAKE_C_STANDARD 99)
-set(CMAKE_C_STANDARD_REQUIRED ON)
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
-
-# Required to avoid warnings when setting visibility
-cmake_policy(SET CMP0063 NEW)
-set(CMAKE_CXX_VISIBILITY_PRESET hidden)
-set(CMAKE_C_VISIBILITY_PRESET hidden)
-
-set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
-
-set(CMAKE_OSX_DEPLOYMENT_TARGET 10.11)
-
-option(WITH_CXX11ABI "Use the C++11 ABI" ON)
-option(WITH_COVERAGE "Enable coverage reports" OFF)
-option(WITH_OSMESA "Use OSMesa headless backend" OFF)
-option(WITH_EGL "Use EGL backend" OFF)
-option(WITH_NODEJS "Download test dependencies like NPM and Node.js" ON)
-option(WITH_ERROR "Add -Werror flag to build (turns warnings into errors)" ON)
-
-if (WITH_ERROR)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
-endif()
-
-include(cmake/mbgl.cmake)
-include(cmake/vendor.cmake)
-include(cmake/mason.cmake)
-include(cmake/xcode.cmake)
-include(cmake/doxygen.cmake)
-
-if(WITH_CXX11ABI)
- set(MASON_CXXABI_SUFFIX -cxx11abi)
- add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
-else()
- add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
-endif()
-
-if(WITH_OSMESA AND WITH_EGL)
- message(FATAL_ERROR "WITH_OSMESA and WITH_EGL are mutually exclusive.")
-endif()
-
-if(WITH_EGL)
- set(USE_GLES2 ON)
-endif()
-
-if($ENV{CI})
- add_compile_options(-DCI_BUILD=1)
-endif()
+cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
+project("Mapbox GL Native" LANGUAGES CXX C)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER Core)
-if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
- exec_program(
- "git"
- ${CMAKE_SOURCE_DIR}
- ARGS "rev-parse --short=8 HEAD"
- OUTPUT_VARIABLE MBGL_VERSION_REV )
-else()
- set(MBGL_VERSION_REV 00000000)
-endif()
-
-set_source_files_properties(src/mbgl/util/version.cpp PROPERTIES COMPILE_DEFINITIONS MBGL_VERSION_REV="${MBGL_VERSION_REV}")
+enable_testing()
-include(cmake/mason-dependencies.cmake)
+set(CMAKE_CONFIGURATION_TYPES Debug Release MinSizeRel DebugCoverage Sanitize)
-if(WITH_COVERAGE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage")
-endif(WITH_COVERAGE)
-
-if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-backtrace-limit=0 -w")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
-else()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024 -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wno-variadic-macros -Wno-unknown-pragmas")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow -Wno-variadic-macros -Wno-unknown-pragmas")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
endif()
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
+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)
+option(MBGL_WITH_TIDY "Enables clang tidy for static analysis" OFF)
-if(APPLE AND CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
- # -Wno-error=unused-command-line-argument is required due to https://llvm.org/bugs/show_bug.cgi?id=7798
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-command-line-argument")
-endif()
+set(CMAKE_CXX_FLAGS_DEBUGCOVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage")
+set(CMAKE_C_FLAGS_DEBUGCOVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage")
-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Os -DNDEBUG")
-set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -DNDEBUG")
-if(APPLE)
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Os -DNDEBUG")
- set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -Os -DNDEBUG")
-else()
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -DNDEBUG")
- set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -DNDEBUG")
-endif()
-set(CMAKE_CXX_FLAGS_SANITIZE "${CMAKE_CXX_FLAGS_SANITIZE} -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls")
-set(CMAKE_C_FLAGS_SANITIZE "${CMAKE_C_FLAGS_SANITIZE} -O1 -g -fno-omit-frame-pointer -fno-optimize-sibling-calls")
-
-if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unknown-warning-option")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unknown-warning-option")
-elseif(CMAKE_COMPILER_IS_GNUCXX)
- # https://svn.boost.org/trac/boost/ticket/9240
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals")
-endif()
-
-set(CMAKE_SHARED_LINKER_FLAGS_SANITIZE "${CMAKE_SHARED_LINKER_FLAGS}")
-set(CMAKE_EXE_LINKER_FLAGS_SANITIZE "${CMAKE_EXE_LINKER_FLAGS}")
-
-# Technique from https://crascit.com/2016/04/09/using-ccache-with-cmake/
-find_program(CCACHE_PROGRAM ccache)
-if(CCACHE_PROGRAM)
- set(C_LAUNCHER "${CCACHE_PROGRAM}")
- set(CXX_LAUNCHER "${CCACHE_PROGRAM}")
-
- if(CMAKE_GENERATOR STREQUAL "Xcode")
- # Set Xcode project attributes to route compilation and linking through our scripts
- # Xcode doesn't include the path to the compiler/linker by default, so we'll have to add it.
- configure_file(scripts/launch-c-xcode.in launch-c @ONLY)
- configure_file(scripts/launch-cxx-xcode.in launch-cxx @ONLY)
-
- set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c")
- set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
- set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
- set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
- else()
- # Support Unix Makefiles and Ninja
- configure_file(scripts/launch-c.in launch-c @ONLY)
- configure_file(scripts/launch-cxx.in launch-cxx @ONLY)
-
- set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-c")
- set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-cxx")
- endif()
-
- execute_process(COMMAND chmod a+rx "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
-
- if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
- # ccache splits up the compile steps, so we end up with unused arguments in some steps.
- # Clang also thinks that ccache isn't interactive, so we explicitly need to enable color.
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics")
- endif()
-elseif(WIN32)
- find_program(CLCACHE_PROGRAM clcache)
- if(CLCACHE_PROGRAM)
- # clcache doesn't work with external pdb files
- # https://github.com/frerich/clcache/issues/30
- string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
- string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
- endif()
-else()
- message(STATUS "Can't find ccache — consider installing ccache to improve recompilation performance")
-endif()
+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(NOT EXISTS ${CMAKE_SOURCE_DIR}/platform/${MBGL_PLATFORM}/config.cmake)
- message(ERROR "Can't find config.cmake file for platform ${MBGL_PLATFORM}")
+if(MBGL_WITH_QT)
+ set(CMAKE_AUTOMOC ON)
+ set(CMAKE_AUTORCC ON)
endif()
-include(platform/${MBGL_PLATFORM}/config.cmake)
-
-if(WITH_EGL)
- add_definitions(-DMBGL_WITH_EGL=1)
-endif()
-
-if(USE_GLES2)
- add_definitions(-DMBGL_USE_GLES2=1)
-endif()
-
-if (COMMAND mbgl_filesource)
- include(cmake/filesource.cmake)
-endif()
-
-include(cmake/core.cmake)
-
-if(COMMAND mbgl_platform_test)
- include(cmake/test.cmake)
- include(cmake/render-test.cmake)
- include(cmake/expression-test.cmake)
-endif()
+if(${MBGL_WITH_TIDY})
+ find_program(MBGL_CLANG_TIDY NAMES clang-tidy)
-if(COMMAND mbgl_platform_benchmark)
- include(cmake/benchmark.cmake)
+ if(NOT MBGL_CLANG_TIDY)
+ message(FATAL "clang-tidy not found")
+ endif()
endif()
-if(COMMAND mbgl_platform_glfw)
- include(cmake/glfw.cmake)
+# Force libc++ when building with Clang targeting Linux
+if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -stdlib=libc++)
endif()
-if(COMMAND mbgl_platform_render)
- include(cmake/render.cmake)
-endif()
+# Avoid warnings when setting visibility
+cmake_policy(SET CMP0063 NEW)
-if(COMMAND mbgl_platform_offline)
- include(cmake/offline.cmake)
-endif()
+# 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)
-if(WITH_NODEJS AND COMMAND mbgl_platform_node)
- include(cmake/node.cmake)
+add_library(mbgl-core STATIC
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/actor.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/actor_ref.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/aspiring_actor.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/established_actor.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/mailbox.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/message.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/actor/scheduler.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/annotation/annotation.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/gfx/backend.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/gfx/backend_scope.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/gfx/renderable.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/gfx/renderer_backend.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/background_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/circle_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/custom_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/fill_extrusion_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/fill_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/heatmap_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/hillshade_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/layer_manager.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/line_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/raster_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/symbol_layer_factory.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/bound_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/camera.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/change.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/map.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/map_observer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/map_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/mode.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/map/projection_mode.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/math/clamp.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/math/log2.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/math/minmax.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/math/wrap.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/platform/thread.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/query.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer_frontend.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer_observer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/renderer/renderer_state.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/default_file_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/file_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/network_status.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/offline.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/online_file_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/resource.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/resource_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/resource_transform.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/storage/response.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/color_ramp_property_value.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/color_ramp_property_value.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/constant.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/coordinate.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/custom_geometry_source_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/filter.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/function.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/geojson.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/geojson_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/get_json_type.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/light.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/position.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/property_value.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/tileset.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion/transition_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/conversion_impl.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/assertion.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/at.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/boolean_operator.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/case.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/check_subtype.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/coalesce.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/coercion.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/collator.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/collator_expression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/comparison.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/compound_expression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/dsl.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/error.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/expression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/find_zoom_curve.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/format_expression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/format_section_override.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/formatted.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/get_covering_stops.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/interpolate.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/interpolator.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/is_constant.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/is_expression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/length.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/let.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/literal.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/match.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/number_format.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/parsing_context.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/step.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/type.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/value.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/filter.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/image.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/background_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/circle_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/custom_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/fill_extrusion_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/fill_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/heatmap_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/hillshade_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/line_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/raster_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/symbol_layer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/light.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/position.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/property_expression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/property_value.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/sources/custom_geometry_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/sources/geojson_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/sources/image_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/sources/raster_dem_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/sources/raster_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/sources/vector_source.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/style.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/transition_options.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/types.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/style/undefined.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/tile/tile_id.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/tile/tile_necessity.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/async_request.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/async_task.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/char_array_buffer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/chrono.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/color.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/compression.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/constants.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/convert.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/enum.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/event.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/exception.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/expected.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/feature.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/font_stack.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/geo.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/geojson.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/geometry.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/ignore.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/image.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/immutable.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/indexed_tuple.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/interpolate.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/logging.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/noncopyable.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/optional.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/peer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/platform.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/premultiply.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/projection.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/range.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/run_loop.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/size.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/string.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/thread.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/tileset.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/timer.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/traits.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/type_list.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/unitbezier.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/util.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/variant.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/work_request.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/work_task.hpp
+ ${PROJECT_SOURCE_DIR}/include/mbgl/util/work_task_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/csscolorparser/csscolorparser.cpp
+ ${PROJECT_SOURCE_DIR}/src/csscolorparser/csscolorparser.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/actor/mailbox.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/actor/scheduler.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/algorithm/update_renderables.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/algorithm/update_tile_masks.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/annotation_manager.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/annotation_manager.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/annotation_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/annotation_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/annotation_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/annotation_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/fill_annotation_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/fill_annotation_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/line_annotation_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/line_annotation_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/render_annotation_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/render_annotation_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/shape_annotation_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/shape_annotation_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/symbol_annotation_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/annotation/symbol_annotation_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/anchor.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/debug_font_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/dem_data.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/dem_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/feature_index.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/feature_index.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/line_atlas.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/geometry/line_atlas.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/attribute.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/attribute.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/color_mode.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/command_encoder.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/context.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/cull_face_mode.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/debug_group.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/depth_mode.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/draw_mode.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/draw_scope.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/index_buffer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/index_vector.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/offscreen_texture.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/render_pass.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/renderbuffer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/renderer_backend.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/stencil_mode.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/texture.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/types.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/uniform.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/upload_pass.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/vertex_buffer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/gfx/vertex_vector.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/background_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/circle_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/custom_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/fill_extrusion_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/fill_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/heatmap_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/hillshade_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/layer_manager.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/line_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/raster_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/symbol_layer_factory.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/clip_lines.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/clip_lines.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/layout.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/merge_lines.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/merge_lines.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/pattern_layout.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_feature.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_instance.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_instance.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_layout.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_layout.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_projection.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/layout/symbol_projection.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/map.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/map_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/map_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/map_options.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/transform.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/transform.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/transform_state.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/transform_state.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/map/zoom_history.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/math/log2.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/attributes.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/background_pattern_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/background_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/background_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/circle_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/circle_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/clipping_mask_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/clipping_mask_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/collision_box_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/collision_box_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/collision_circle_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/debug_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/debug_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_extrusion_pattern_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_extrusion_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_extrusion_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_outline_pattern_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_outline_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_pattern_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/fill_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/heatmap_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/heatmap_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/heatmap_texture_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/heatmap_texture_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/hillshade_prepare_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/hillshade_prepare_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/hillshade_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/hillshade_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/line_gradient_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/line_pattern_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/line_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/line_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/line_sdf_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/program_parameters.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/program_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/programs.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/programs.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/raster_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/raster_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/segment.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/symbol_icon_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/symbol_program.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/symbol_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/symbol_sdf_icon_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/symbol_sdf_text_program.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/textures.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/programs/uniforms.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/backend_scope.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/bucket_parameters.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/bucket_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/circle_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/circle_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/debug_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/debug_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/fill_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/fill_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/heatmap_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/heatmap_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/hillshade_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/hillshade_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/line_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/line_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/raster_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/raster_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/symbol_bucket.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/buckets/symbol_bucket.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/cross_faded_property_evaluator.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/cross_faded_property_evaluator.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/data_driven_property_evaluator.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/group_by_layout.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/group_by_layout.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/image_atlas.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/image_atlas.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/image_manager.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/image_manager.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/image_manager_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_background_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_background_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_circle_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_circle_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_custom_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_fill_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_fill_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_heatmap_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_heatmap_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_hillshade_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_hillshade_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_line_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_line_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_raster_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_raster_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_symbol_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_symbol_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/paint_parameters.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/paint_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/paint_property_binder.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/paint_property_statistics.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/pattern_atlas.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/pattern_atlas.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/possibly_evaluated_property_value.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/property_evaluation_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/property_evaluator.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_layer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_light.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_light.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_orchestrator.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_orchestrator.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_pass.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_source_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_static_data.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_static_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/render_tree.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/renderer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/renderer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/renderer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/renderer_state.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_custom_geometry_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_geojson_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_geojson_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_image_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_image_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_raster_dem_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_raster_dem_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_raster_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_raster_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_tile_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_tile_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_vector_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/sources/render_vector_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/style_diff.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/style_diff.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/tile_mask.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/tile_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/tile_pyramid.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/tile_pyramid.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/tile_render_data.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/tile_render_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/transition_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/update_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/upload_parameters.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader_worker.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_loader_worker.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_parser.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/sprite/sprite_parser.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/asset_file_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/file_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/http_file_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/local_file_source.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/network_status.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/resource.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/resource_options.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/resource_transform.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/storage/response.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/collection.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/color_ramp_property_value.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/constant.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/coordinate.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/custom_geometry_source_options.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/filter.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/function.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/geojson.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/geojson_options.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/get_json_type.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/json.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/light.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/position.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/property_value.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/stringify.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/tileset.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/transition_options.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/custom_tile_loader.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/custom_tile_loader.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/assertion.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/at.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/boolean_operator.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/case.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/check_subtype.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/coalesce.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/coercion.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/collator_expression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/comparison.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/compound_expression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/dsl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/dsl_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/expression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/find_zoom_curve.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/format_expression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/formatted.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/get_covering_stops.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/interpolate.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/is_constant.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/is_expression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/length.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/let.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/literal.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/match.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/number_format.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/parsing_context.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/step.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/util.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/util.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/value.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/filter.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/image.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/image_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/image_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layer_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/background_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/background_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/background_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/background_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/background_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/circle_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/circle_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/circle_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/circle_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/circle_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_extrusion_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_extrusion_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_extrusion_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_extrusion_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_extrusion_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/fill_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/heatmap_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/heatmap_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/heatmap_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/heatmap_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/heatmap_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/raster_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/raster_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/raster_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/raster_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/raster_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/symbol_layer.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/symbol_layer_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/symbol_layer_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/symbol_layer_properties.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/symbol_layer_properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/layout_property.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/light.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/light_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/light_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/light_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/paint_property.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/parser.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/parser.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/properties.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/property_expression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/rapidjson_conversion.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/source_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/source_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/source_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/custom_geometry_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/custom_geometry_source_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/custom_geometry_source_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/geojson_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/geojson_source_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/geojson_source_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/image_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/image_source_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/image_source_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/raster_dem_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/raster_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/raster_source_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/raster_source_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/vector_source.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/vector_source_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/sources/vector_source_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/style.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/style_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/style_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/style/types.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/bidi.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/check_max_angle.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/check_max_angle.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/collision_feature.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/collision_feature.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/collision_index.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/collision_index.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/cross_tile_symbol_index.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/cross_tile_symbol_index.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/get_anchors.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/get_anchors.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_atlas.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_atlas.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_manager.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_manager.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_manager_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_pbf.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_pbf.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/glyph_range.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/language_tag.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/language_tag.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/local_glyph_rasterizer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/placement.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/placement.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/quads.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/quads.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/shaping.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/shaping.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/tagged_string.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/text/tagged_string.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/custom_geometry_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/custom_geometry_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geojson_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geojson_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geojson_tile_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geometry_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geometry_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geometry_tile_data.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geometry_tile_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geometry_tile_worker.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/geometry_tile_worker.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_dem_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_dem_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_dem_tile_worker.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_dem_tile_worker.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_tile_worker.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/raster_tile_worker.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_cache.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_cache.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_id_hash.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_id_io.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_loader.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_loader_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/tile_observer.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/vector_tile.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/vector_tile.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/vector_tile_data.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/tile/vector_tile_data.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/chrono.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/color.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/compression.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/constants.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/convert.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/dtoa.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/dtoa.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/event.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/font_stack.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/geo.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/geojson_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/grid_index.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/grid_index.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/hash.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/http_header.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/http_header.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/http_timeout.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/http_timeout.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/i18n.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/i18n.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/id.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/id.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/interpolate.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/intersection_tests.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/intersection_tests.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/io.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/io.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/literal.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/logging.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/longest_common_subsequence.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mapbox.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mapbox.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mat2.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mat2.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mat3.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mat3.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mat4.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/mat4.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/math.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/premultiply.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/rapidjson.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/rapidjson.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/rect.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/std.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/stopwatch.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/stopwatch.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/string.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/thread_local.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/thread_pool.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/thread_pool.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tile_coordinate.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tile_cover.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tile_cover.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tile_cover_impl.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tile_cover_impl.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tile_range.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tiny_sdf.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/tiny_sdf.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/token.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/url.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/url.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/utf.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/version.cpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/version.hpp
+ ${PROJECT_SOURCE_DIR}/src/mbgl/util/work_request.cpp
+ ${PROJECT_SOURCE_DIR}/src/parsedate/parsedate.cpp
+ ${PROJECT_SOURCE_DIR}/src/parsedate/parsedate.hpp
+)
+
+set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/src/mbgl/util/version.cpp
+ PROPERTIES COMPILE_DEFINITIONS MBGL_VERSION_REV="FIXME"
+)
+
+target_include_directories(mbgl-core PRIVATE
+ ${PROJECT_SOURCE_DIR}/src
+)
+
+target_include_directories(mbgl-core PUBLIC
+ ${PROJECT_SOURCE_DIR}/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
+)
+
+# FIXME: Rapidjson should not leak
+# to the public interface
+target_link_libraries(mbgl-core PUBLIC
+ Mapbox::Base::Extras::rapidjson
+ Mapbox::Base::geojson.hpp
+ Mapbox::Base::geometry.hpp
+ Mapbox::Base::optional
+ Mapbox::Base::variant
+ mbgl-vendor-expected
+)
+
+set_property(TARGET mbgl-core PROPERTY FOLDER Core)
+set_property(TARGET mbgl-core PROPERTY CXX_CLANG_TIDY ${MBGL_CLANG_TIDY})
+
+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()
-if(CMAKE_GENERATOR STREQUAL "Xcode")
- set_xcconfig_target_properties(mbgl-core)
- set_xcconfig_target_properties(mbgl-filesource)
- file(GENERATE
- OUTPUT "${CMAKE_BINARY_DIR}/config.xcconfig"
- INPUT "${CMAKE_SOURCE_DIR}/scripts/config.xcconfig.in"
- )
-endif()
+add_subdirectory(${PROJECT_SOURCE_DIR}/test)
+add_subdirectory(${PROJECT_SOURCE_DIR}/benchmark)
diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt
new file mode 100644
index 0000000000..cfa6254fb1
--- /dev/null
+++ b/benchmark/CMakeLists.txt
@@ -0,0 +1,42 @@
+add_library(mbgl-benchmark SHARED EXCLUDE_FROM_ALL
+ ${CMAKE_CURRENT_LIST_DIR}/api/query.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/render.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/function/camera_function.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/function/composite_function.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/function/source_function.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/parse/filter.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/parse/tile_mask.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/parse/vector_tile.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/benchmark/benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/offline_database.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/dtoa.benchmark.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/tilecover.benchmark.cpp
+)
+
+target_include_directories(mbgl-benchmark PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src
+ ${PROJECT_SOURCE_DIR}/platform/default/include
+ ${PROJECT_SOURCE_DIR}/src
+)
+
+target_include_directories(mbgl-benchmark PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/include
+ ${PROJECT_SOURCE_DIR}/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)
diff --git a/platform/android/android.cmake b/platform/android/android.cmake
new file mode 100644
index 0000000000..6401246fad
--- /dev/null
+++ b/platform/android/android.cmake
@@ -0,0 +1,298 @@
+if(NOT ANDROID_NDK_TOOLCHAIN_INCLUDED)
+ message(FATAL_ERROR "-- Toolchain file not included, see https://developer.android.com/ndk/guides/cmake")
+endif()
+
+include(${PROJECT_SOURCE_DIR}/platform/gfx/gl/gl.cmake)
+
+target_compile_definitions(mbgl-core PUBLIC
+ MBGL_USE_GLES2
+)
+
+target_sources(mbgl-core PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src/android_renderer_backend.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/android_renderer_backend.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/android_renderer_frontend.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/android_renderer_frontend.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/marker.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/marker.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/multi_point.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/polygon.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/polygon.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/polyline.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/annotation/polyline.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/asset_manager.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/asset_manager_file_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/asset_manager_file_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/async_task.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/attach_env.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/attach_env.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/bitmap.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/bitmap.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/bitmap_factory.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/bitmap_factory.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/connectivity_listener.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/connectivity_listener.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/collection.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/collection.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/color.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/color.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/constant.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/constant.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/conversion/conversion.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/file_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/file_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/feature.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/feature.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/feature_collection.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/feature_collection.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/geometry.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/geometry.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/geometry_collection.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/geometry_collection.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/line_string.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/line_string.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/multi_line_string.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/multi_line_string.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/multi_point.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/multi_point.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/multi_polygon.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/multi_polygon.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/point.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/point.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/polygon.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/polygon.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geojson/util.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/lat_lng.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/lat_lng.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/lat_lng_bounds.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/lat_lng_bounds.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/lat_lng_quad.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/lat_lng_quad.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/projected_meters.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/geometry/projected_meters.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gl_functions.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/graphics/pointf.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/graphics/pointf.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/graphics/rectf.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/graphics/rectf.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_array.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_array.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_element.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_element.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_object.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_object.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_primitive.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gson/json_primitive.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/http_file_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/image.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/java/util.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/java/util.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/java_types.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/java_types.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/jni.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/jni.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/jni_native.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/jni_native.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/logger.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/logger.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/logging_android.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map/camera_position.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map/camera_position.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map/image.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map/image.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map_renderer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map_renderer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map_renderer_runnable.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/map_renderer_runnable.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/native_map_view.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/native_map_view.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_manager.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_manager.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region_definition.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region_definition.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region_error.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region_error.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region_status.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/offline/offline_region_status.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/run_loop.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/run_loop_impl.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/snapshotter/map_snapshot.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/snapshotter/map_snapshot.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/snapshotter/map_snapshotter.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/snapshotter/map_snapshotter.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/string_util.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/android_conversion.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/filter.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/filter.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/position.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/position.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/property_expression.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/property_value.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/transition_options.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/transition_options.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/url_or_tileset.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/conversion/url_or_tileset.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/formatted.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/formatted.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/formatted_section.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/formatted_section.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/background_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/background_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/circle_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/circle_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/custom_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/custom_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/fill_extrusion_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/fill_extrusion_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/fill_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/fill_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/heatmap_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/heatmap_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/hillshade_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/hillshade_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/layer_manager.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/layer_manager.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/line_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/line_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/raster_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/raster_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/symbol_layer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/layers/symbol_layer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/light.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/light.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/position.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/position.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/custom_geometry_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/custom_geometry_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/geojson_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/geojson_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/image_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/image_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/raster_dem_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/raster_dem_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/raster_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/raster_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/unknown_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/unknown_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/vector_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/sources/vector_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/transition_options.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/transition_options.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/value.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/style/value.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/text/collator.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/text/collator_jni.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/text/format_number.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/text/format_number_jni.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/text/local_glyph_rasterizer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/text/local_glyph_rasterizer_jni.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/thread.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/timer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/unaccent.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/default_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
+ ${PROJECT_SOURCE_DIR}/platform/linux/src/headless_backend_egl.cpp
+)
+
+target_include_directories(mbgl-core PRIVATE
+ ${PROJECT_SOURCE_DIR}/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
+ ${CMAKE_CURRENT_LIST_DIR}/src/main.cpp
+)
+
+target_link_libraries(mapbox-gl PRIVATE
+ Mapbox::Base::jni.hpp
+ mbgl-core
+)
+
+add_library(example-custom-layer MODULE
+ ${CMAKE_CURRENT_LIST_DIR}/src/example_custom_layer.cpp
+)
+
+target_include_directories(example-custom-layer PRIVATE
+ ${PROJECT_SOURCE_DIR}/include
+)
+
+target_link_libraries(example-custom-layer PRIVATE
+ GLESv2
+ log
+ mapbox-base-optional
+)
+
+add_executable(mbgl-test-runner
+ ${CMAKE_CURRENT_LIST_DIR}/src/test/test_runner.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/test/runtime.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/test/runtime.hpp
+)
+
+target_link_libraries(mbgl-test-runner PRIVATE
+ Mapbox::Base::jni.hpp
+ mapbox-gl
+ mbgl-test
+)
+
+add_executable(mbgl-benchmark-runner
+ ${CMAKE_CURRENT_LIST_DIR}/src/test/benchmark_runner.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/test/runtime.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/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>)
diff --git a/platform/gfx/gl/gl.cmake b/platform/gfx/gl/gl.cmake
new file mode 100644
index 0000000000..54d70e9066
--- /dev/null
+++ b/platform/gfx/gl/gl.cmake
@@ -0,0 +1,91 @@
+if(__MBGL_GFX__)
+ message("Graphics backend already defined, not building OpenGL GFX")
+ return()
+endif()
+
+set(__MBGL_GFX__ TRUE)
+
+target_sources(mbgl-core PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/include/mbgl/gl/renderable_resource.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/include/mbgl/gl/renderer_backend.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/include/mbgl/platform/gl_functions.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/attribute.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/attribute.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/command_encoder.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/command_encoder.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/context.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/context.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/debugging_extension.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/debugging_extension.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/defines.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/draw_scope_resource.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/enum.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/enum.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/extension.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/framebuffer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/index_buffer_resource.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/object.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/object.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/offscreen_texture.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/offscreen_texture.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/program.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/render_pass.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/render_pass.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/renderbuffer_resource.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/renderer_backend.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/state.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/texture.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/texture.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/texture_resource.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/types.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/uniform.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/uniform.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/upload_pass.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/upload_pass.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/value.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/value.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/vertex_array.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/vertex_array.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/vertex_array_extension.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/gl/vertex_buffer_resource.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/platform/gl_functions.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/background.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/background_pattern.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/circle.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/clipping_mask.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/collision_box.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/collision_circle.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/debug.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/fill.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/fill_extrusion.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/fill_extrusion_pattern.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/fill_outline.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/fill_outline_pattern.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/fill_pattern.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/heatmap.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/heatmap_texture.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/hillshade.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/hillshade_prepare.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/line.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/line_gradient.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/line_pattern.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/line_sdf.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/preludes.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/raster.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/shader_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/shader_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/shaders.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/shaders.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/symbol_icon.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/symbol_sdf_icon.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/programs/gl/symbol_sdf_text.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/renderer/layers/render_custom_layer.cpp
+)
+
+target_include_directories(mbgl-core PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src
+)
+
+target_include_directories(mbgl-core PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/include
+)
diff --git a/platform/glfw/CMakeLists.txt b/platform/glfw/CMakeLists.txt
new file mode 100644
index 0000000000..7fd7c2194d
--- /dev/null
+++ b/platform/glfw/CMakeLists.txt
@@ -0,0 +1,34 @@
+find_package(OpenGL REQUIRED)
+find_package(PkgConfig REQUIRED)
+
+pkg_search_module(GLFW glfw3 REQUIRED)
+
+add_executable(mbgl-glfw
+ ${CMAKE_CURRENT_LIST_DIR}/main.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/glfw_view.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/glfw_gl_backend.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/glfw_renderer_frontend.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/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)
diff --git a/platform/ios/ios.cmake b/platform/ios/ios.cmake
new file mode 100644
index 0000000000..ed25a93942
--- /dev/null
+++ b/platform/ios/ios.cmake
@@ -0,0 +1,563 @@
+if (NOT CMAKE_GENERATOR STREQUAL Xcode)
+ message(FATAL_ERROR "-- iOS build only supported with '-G Xcode'")
+endif()
+
+macro(initialize_ios_target target)
+ set_target_properties(${target} PROPERTIES
+ XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode
+ XCODE_ATTRIBUTE_CLANG_ENABLE_MODULES YES
+ XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES
+ XCODE_ATTRIBUTE_ENABLE_BITCODE YES
+ XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 9.0
+ XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH $<$<CONFIG:Debug>:YES>
+ )
+endmacro()
+
+include(${PROJECT_SOURCE_DIR}/platform/gfx/gl/gl.cmake)
+
+target_compile_definitions(mbgl-core PUBLIC
+ MBGL_USE_GLES2
+)
+
+target_sources(mbgl-core PRIVATE
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/async_task.cpp
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/collator.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/gl_functions.cpp
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/headless_backend_eagl.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/http_file_source.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/image.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/local_glyph_rasterizer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/logging_nslog.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/nsthread.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/reachability.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/run_loop.cpp
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/string_nsstring.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/timer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/default_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
+)
+
+initialize_ios_target(mbgl-core)
+
+target_include_directories(mbgl-core PRIVATE
+ ${PROJECT_SOURCE_DIR}/platform/default/include
+ ${PROJECT_SOURCE_DIR}/platform/darwin/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
+)
+
+set(MBGL_MAPBOX_RESOURCES
+ ${CMAKE_CURRENT_LIST_DIR}/framework/Info.plist
+ ${CMAKE_CURRENT_LIST_DIR}/resources/Base.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/Images.xcassets
+ ${CMAKE_CURRENT_LIST_DIR}/resources/ar.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/bg.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/ca.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/cs.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/da.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/de.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/en.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/es.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/fr.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/gl.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/he.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/hu.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/ja.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/ko.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/lt.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/pt-BR.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/pt-PT.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/ru.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/sv.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/uk.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/vi.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/zh-Hans.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/resources/zh-Hant.lproj
+)
+
+set(MBGL_MAPBOX_PUBLIC_HEADERS
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationContainerView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationImage.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCalloutView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCameraChangeReason.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCompactCalloutView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCompassButton.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLFaux3DUserLocationAnnotationView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapAccessibilityElement.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+IBAdditions.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+Impl.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+OpenGL.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapViewDelegate.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapboxEvents.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLSDKUpdateChecker.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLScaleBar.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLTelemetryConfig.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocation.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationAnnotationView.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationHeadingArrowLayer.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationHeadingBeamLayer.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationHeadingIndicator.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/Mapbox.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/NSOrthography+MGLAdditions.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIColor+MGLAdditions.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIDevice+MGLAdditions.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIImage+MGLAdditions.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIView+MGLAdditions.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIViewController+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAccountManager.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAnnotation.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributedExpression.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributionInfo.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLBackgroundStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCircleStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLClockDirectionFormatter.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCluster.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCompassDirectionFormatter.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLComputedShapeSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLConversion.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCoordinateFormatter.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLDistanceFormatter.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFeature.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillExtrusionStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLForegroundStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFoundation.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLGeometry.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHeatmapStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHillshadeStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLImageSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLight.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLineStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLocationManager.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLoggingConfiguration.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapCamera.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapSnapshotter.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMultiPoint.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLNetworkConfiguration.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflinePack.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineRegion.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineStorage.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOpenGLStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOverlay.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointAnnotation.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointCollection.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolygon.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolyline.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterDEMSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterTileSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRendererConfiguration.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRendererFrontend.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSDKMetricsManager.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShape.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeCollection.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeOfflineRegion.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyle.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayerManager.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleValue.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSymbolStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTilePyramidOfflineRegion.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTileSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTypes.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLValueEvaluator.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorTileSource.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSArray+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSBundle+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCoder+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSComparisonPredicate+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCompoundPredicate+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDate+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDictionary+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSException+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSExpression+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSExpression+MGLPrivateAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSPredicate+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSPredicate+MGLPrivateAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSString+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSURL+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLAdditions.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLStyleAttributeAdditions.h
+)
+
+add_library(Mapbox SHARED
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationContainerView.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationContainerView_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationImage.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationImage_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationView.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationView_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCompactCalloutView.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCompassButton.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCompassButton_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLFaux3DUserLocationAnnotationView.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapAccessibilityElement.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapboxEvents.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+Impl.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+OpenGL.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLScaleBar.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLSDKUpdateChecker.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLTelemetryConfig.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationAnnotationView.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationAnnotationView_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationHeadingArrowLayer.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocationHeadingBeamLayer.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocation.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLUserLocation_Private.h
+ ${CMAKE_CURRENT_LIST_DIR}/src/NSOrthography+MGLAdditions.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIColor+MGLAdditions.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIDevice+MGLAdditions.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIImage+MGLAdditions.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIViewController+MGLAdditions.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/UIView+MGLAdditions.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-accounts-ios/MBXSKUToken.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocationManager+MMEMobileEvents.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocationManager+MMEMobileEvents.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocation+MMEMobileEvents.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocation+MMEMobileEvents.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/MMECategoryLoader.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/MMECategoryLoader.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/NSData+MMEGZIP.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/NSData+MMEGZIP.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/UIKit+MMEMobileEvents.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/UIKit+MMEMobileEvents.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MapboxMobileEvents.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEAPIClient.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEAPIClient.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMECertPin.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMECertPin.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMECommonEventData.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMECommonEventData.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConfigurator.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConfigurator.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConstants.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConstants.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDate.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDate.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDependencyManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDependencyManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDispatchManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDispatchManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEvent.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogger.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogger.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogReportViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogReportViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEvent.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsConfiguration.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsConfiguration.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMELocationManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMELocationManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetrics.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetrics.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetricsManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetricsManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMENamespacedDependencies.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMENSURLSessionWrapper.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMENSURLSessionWrapper.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEPinningConfigurationProvider.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEPinningConfigurationProvider.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMETimerManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMETimerManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMETypes.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUIApplicationWrapper.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUIApplicationWrapper.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUINavigation.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUINavigation.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUniqueIdentifier.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUniqueIdentifier.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Reachability/MMEReachability.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Reachability/MMEReachability.m
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/SMCalloutView/SMCalloutView.h
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/SMCalloutView/SMCalloutView.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAccountManager.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAccountManager_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributedExpression.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributionInfo.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributionInfo_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLBackgroundStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLBackgroundStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCircleStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCircleStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLClockDirectionFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCompassDirectionFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLComputedShapeSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLComputedShapeSource_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCoordinateFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLDistanceFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFeature.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFeature_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillExtrusionStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLForegroundStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFoundation.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFoundation_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLGeometry.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLGeometry_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHeatmapStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHeatmapStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHillshadeStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHillshadeStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLImageSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLight.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLight_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLineStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLineStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLocationManager.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLocationManager_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLoggingConfiguration.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLoggingConfiguration_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapCamera.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapSnapshotter.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMultiPoint.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMultiPoint_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLNetworkConfiguration.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLNetworkConfiguration_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflinePack.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflinePack_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineRegion_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineStorage.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineStorage_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOpenGLStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOpenGLStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointAnnotation.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointCollection.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointCollection_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolygon.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolygon_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolyline.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolyline_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterDEMSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterTileSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterTileSource_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRendererConfiguration.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSDKMetricsManager.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSDKMetricsManager_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeCollection.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShape.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeOfflineRegion.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeOfflineRegion_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShape_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeSource_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSource_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayerManager.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyle.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyle_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleValue.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleValue_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSymbolStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSymbolStyleLayer_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTilePyramidOfflineRegion.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTilePyramidOfflineRegion_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTileSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTileSource_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTypes.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorStyleLayer.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorTileSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorTileSource_Private.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSArray+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSBundle+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCoder+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDictionary+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSExpression+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSPredicate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSString+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSURL+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLStyleAttributeAdditions.mm
+ ${MBGL_MAPBOX_PUBLIC_HEADERS}
+ ${MBGL_MAPBOX_RESOURCES}
+)
+
+initialize_ios_target(Mapbox)
+
+set_target_properties(Mapbox PROPERTIES
+ FRAMEWORK TRUE
+ MACOSX_FRAMEWORK_IDENTIFIER com.mapbox.core
+ MACOSX_FRAMEWORK_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/framework/Info.plist
+ RESOURCE "${MBGL_MAPBOX_RESOURCES}"
+)
+
+# Setting as PUBLIC_HEADER target property will copy the
+# headers to the framework but won't add the Mapbox/ prefix.
+set_source_files_properties(${MBGL_MAPBOX_PUBLIC_HEADERS} PROPERTIES MACOSX_PACKAGE_LOCATION Headers/Mapbox)
+
+target_include_directories(Mapbox PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/SMCalloutView
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-accounts-ios
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Categories
+ ${CMAKE_CURRENT_LIST_DIR}/vendor/mapbox-events-ios/MapboxMobileEvents/Reachability
+ ${PROJECT_SOURCE_DIR}/platform/darwin/include
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src
+ ${PROJECT_SOURCE_DIR}/platform/default/include
+)
+
+target_include_directories(Mapbox INTERFACE
+ $<TARGET_BUNDLE_DIR:Mapbox>/Headers
+)
+
+include(${PROJECT_SOURCE_DIR}/vendor/polylabel.cmake)
+
+target_link_libraries(Mapbox PRIVATE
+ mbgl-core
+ mbgl-vendor-polylabel
+)
+
+set(MBGL_MAPBOXAPP_RESOURCES
+ ${CMAKE_CURRENT_LIST_DIR}/app/Assets.xcassets
+ ${CMAKE_CURRENT_LIST_DIR}/app/Base.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/Info.plist
+ ${CMAKE_CURRENT_LIST_DIR}/app/LaunchScreen.storyboard
+ ${CMAKE_CURRENT_LIST_DIR}/app/Main.storyboard
+ ${CMAKE_CURRENT_LIST_DIR}/app/Settings.bundle
+ ${CMAKE_CURRENT_LIST_DIR}/app/ar.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/bg.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/ca.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/cs.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/da.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/de.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/es.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/fi.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/fill_filter_style.json
+ ${CMAKE_CURRENT_LIST_DIR}/app/fr.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/gl.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/he.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/hu.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/ja.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/ko.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/line_filter_style.json
+ ${CMAKE_CURRENT_LIST_DIR}/app/lt.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/missing_icon.json
+ ${CMAKE_CURRENT_LIST_DIR}/app/nl.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/numeric_filter_style.json
+ ${CMAKE_CURRENT_LIST_DIR}/app/pl.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/points.geojson
+ ${CMAKE_CURRENT_LIST_DIR}/app/polyline.geojson
+ ${CMAKE_CURRENT_LIST_DIR}/app/pt-BR.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/pt-PT.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/ru.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/simple_route.json
+ ${CMAKE_CURRENT_LIST_DIR}/app/sv.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/threestates.geojson
+ ${CMAKE_CURRENT_LIST_DIR}/app/uk.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/vi.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/zh-Hans.lproj
+ ${CMAKE_CURRENT_LIST_DIR}/app/zh-Hant.lproj
+)
+
+add_executable(MapboxApp
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXAnnotationView.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXAnnotationView.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXAppDelegate.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXAppDelegate.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXCustomCalloutView.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXCustomCalloutView.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXCustomLocationViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXCustomLocationViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXEmbeddedMapViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXEmbeddedMapViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXFrameTimeGraphView.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXFrameTimeGraphView.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXOfflinePacksTableViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXOfflinePacksTableViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXOrnamentsViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXOrnamentsViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXSnapshotsViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXSnapshotsViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXState.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXState.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXStateManager.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXStateManager.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXUserLocationAnnotationView.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXUserLocationAnnotationView.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXViewController.h
+ ${CMAKE_CURRENT_LIST_DIR}/app/MBXViewController.m
+ ${CMAKE_CURRENT_LIST_DIR}/app/main.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/app/LimeGreenStyleLayer.h
+ ${PROJECT_SOURCE_DIR}/platform/darwin/app/LimeGreenStyleLayer.m
+ ${MBGL_MAPBOXAPP_RESOURCES}
+)
+
+initialize_ios_target(MapboxApp)
+
+set_target_properties(MapboxApp PROPERTIES
+ MACOSX_BUNDLE TRUE
+ MACOSX_BUNDLE_IDENTIFIER com.mapbox.MapboxGL
+ MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/app/Info.plist
+ RESOURCE "${MBGL_MAPBOXAPP_RESOURCES}"
+)
+
+target_include_directories(MapboxApp PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src
+ ${PROJECT_SOURCE_DIR}/platform/darwin/app
+)
+
+target_link_libraries(MapboxApp PRIVATE
+ "-framework CoreGraphics"
+ "-framework CoreLocation"
+ "-framework Foundation"
+ "-framework OpenGLES"
+ "-framework QuartzCore"
+ "-framework UIKit"
+ Mapbox
+)
diff --git a/platform/linux/linux.cmake b/platform/linux/linux.cmake
new file mode 100644
index 0000000000..eb645d7561
--- /dev/null
+++ b/platform/linux/linux.cmake
@@ -0,0 +1,116 @@
+find_package(CURL REQUIRED)
+find_package(ICU REQUIRED i18n 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)
+
+include(${PROJECT_SOURCE_DIR}/platform/gfx/gl/gl.cmake)
+
+target_sources(mbgl-core PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src/gl_functions.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/headless_backend_glx.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/default_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/http_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/collator.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/unaccent.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/async_task.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/format_number.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/image.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/jpeg_reader.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/logging_stderr.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_reader.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/run_loop.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/string_stdlib.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/timer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
+)
+
+# FIXME: Should not be needed, but now needed by
+# node because of the headless frontend.
+target_include_directories(mbgl-core PUBLIC
+ ${PROJECT_SOURCE_DIR}/platform/default/include
+)
+
+target_include_directories(mbgl-core PRIVATE
+ ${CURL_INCLUDE_DIRS}
+ ${EGL_INCLUDE_DIRS}
+ ${GLES_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}
+ ${EGL_LIBRARIES}
+ ${GLES_LIBRARIES}
+ ${JPEG_LIBRARIES}
+ ${LIBUV_LIBRARIES}
+ ${X11_LIBRARIES}
+ ICU::i18n
+ ICU::uc
+ PNG::PNG
+ OpenGL::GL
+ 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 ${PROJECT_SOURCE_DIR}/misc/ca-bundle.crt ${CMAKE_BINARY_DIR}
+)
+
+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
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/test/main.cpp
+)
+
+target_compile_definitions(mbgl-test-runner PRIVATE
+ WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
+)
+
+target_link_libraries(mbgl-test-runner PRIVATE
+ mbgl-test
+)
+
+add_executable(mbgl-benchmark-runner
+ ${PROJECT_SOURCE_DIR}/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 ${PROJECT_SOURCE_DIR})
+add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner)
diff --git a/platform/macos/macos.cmake b/platform/macos/macos.cmake
new file mode 100644
index 0000000000..c82f401cb9
--- /dev/null
+++ b/platform/macos/macos.cmake
@@ -0,0 +1,178 @@
+find_package(OpenGL REQUIRED)
+
+include(${PROJECT_SOURCE_DIR}/platform/gfx/gl/gl.cmake)
+
+target_sources(mbgl-core PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAnnotationImage.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLAttributionButton.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLCompassCell.m
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+IBAdditions.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+Impl.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView+OpenGL.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLMapView.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/MGLOpenGLLayer.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/NSColor+MGLAdditions.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/NSImage+MGLAdditions.mm
+ ${CMAKE_CURRENT_LIST_DIR}/src/NSProcessInfo+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAccountManager.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributedExpression.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLAttributionInfo.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLBackgroundStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCircleStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLClockDirectionFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCompassDirectionFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLComputedShapeSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLCoordinateFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLDistanceFormatter.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFeature.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillExtrusionStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFillStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLForegroundStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLFoundation.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLGeometry.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHeatmapStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLHillshadeStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLImageSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLight.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLineStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLLoggingConfiguration.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapCamera.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMapSnapshotter.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLMultiPoint.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLNetworkConfiguration.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflinePack.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOfflineStorage.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLOpenGLStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointAnnotation.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPointCollection.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolygon.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLPolyline.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterDEMSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRasterTileSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLRendererConfiguration.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSDKMetricsManager.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShape.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeCollection.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeOfflineRegion.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLShapeSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyle.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleLayerManager.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLStyleValue.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLSymbolStyleLayer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTilePyramidOfflineRegion.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTileSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLTypes.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorStyleLayer.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/MGLVectorTileSource.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSArray+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSBundle+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCoder+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSComparisonPredicate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSCompoundPredicate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSDictionary+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSExpression+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSPredicate+MGLAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSString+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSURL+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLAdditions.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/NSValue+MGLStyleAttributeAdditions.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/async_task.cpp
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/collator.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/gl_functions.cpp
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/headless_backend_cgl.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/http_file_source.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/image.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/local_glyph_rasterizer.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/logging_nslog.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/nsthread.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/reachability.m
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/run_loop.cpp
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/string_nsstring.mm
+ ${PROJECT_SOURCE_DIR}/platform/darwin/src/timer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/default_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
+)
+
+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
+ ${PROJECT_SOURCE_DIR}/platform/default/include
+)
+
+target_include_directories(mbgl-core PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src
+ ${PROJECT_SOURCE_DIR}/platform/darwin/include
+ ${PROJECT_SOURCE_DIR}/platform/darwin/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}/platform/glfw)
+add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
+add_subdirectory(${PROJECT_SOURCE_DIR}/render-test)
+
+add_executable(mbgl-test-runner
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/test/main.cpp
+)
+
+target_compile_definitions(mbgl-test-runner PRIVATE
+ WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
+)
+
+target_link_libraries(mbgl-test-runner PRIVATE
+ mbgl-test
+)
+
+add_executable(mbgl-benchmark-runner
+ ${PROJECT_SOURCE_DIR}/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 ${PROJECT_SOURCE_DIR})
+add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner)
diff --git a/platform/node/CMakeLists.txt b/platform/node/CMakeLists.txt
new file mode 100644
index 0000000000..a601df269f
--- /dev/null
+++ b/platform/node/CMakeLists.txt
@@ -0,0 +1,36 @@
+if(NOT EXISTS ${PROJECT_SOURCE_DIR}/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(${PROJECT_SOURCE_DIR}/node_modules/@mapbox/cmake-node-module/module.cmake)
+
+add_node_module(mbgl-node
+ INSTALL_PATH ${PROJECT_SOURCE_DIR}/lib/{node_abi}/mbgl.node
+ NAN_VERSION 2.10.0
+
+ # Build only for ABI 64.
+ # See https://nodejs.org/en/download/releases/ for mapping of Node version to ABI number.
+ EXCLUDE_NODE_ABIS 46 47 48 51 59 67 72
+)
+
+target_sources(mbgl-node INTERFACE
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_conversion.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_expression.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_expression.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_feature.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_feature.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_logging.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_logging.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_map.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_map.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_mapbox_gl_native.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_request.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/node_request.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/util/async_queue.hpp
+)
+
+target_link_libraries(mbgl-node INTERFACE
+ Mapbox::Map
+)
diff --git a/platform/qt/qt.cmake b/platform/qt/qt.cmake
index 33acb7a030..b44b5515e0 100644
--- a/platform/qt/qt.cmake
+++ b/platform/qt/qt.cmake
@@ -1,187 +1,180 @@
-# This file is to be reused by target platforms that don't
-# support `mason` (i.e. Yocto). Do not add any `mason` macro.
-
-option(WITH_QT_DECODERS "Use builtin Qt image decoders" OFF)
-option(WITH_QT_I18N "Use builtin Qt i18n support" OFF)
-
-add_definitions("-D__QT__")
-
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-
-set(MBGL_QT_CORE_FILES
- # Headless view
- PRIVATE platform/default/src/mbgl/gfx/headless_frontend.cpp
- PRIVATE platform/default/include/mbgl/gfx/headless_frontend.hpp
- PRIVATE platform/default/src/mbgl/gfx/headless_backend.cpp
- PRIVATE platform/default/include/mbgl/gfx/headless_backend.hpp
- PRIVATE platform/default/src/mbgl/gl/headless_backend.cpp
- PRIVATE platform/default/include/mbgl/gl/headless_backend.hpp
- PRIVATE platform/qt/src/headless_backend_qt.cpp
-
- # Thread
- PRIVATE platform/qt/src/thread_local.cpp
-
- # Platform integration
- PRIVATE platform/qt/src/async_task.cpp
- PRIVATE platform/qt/src/async_task_impl.hpp
- PRIVATE platform/qt/src/local_glyph_rasterizer.cpp
- PRIVATE platform/qt/src/qt_logging.cpp
- PRIVATE platform/qt/src/qt_image.cpp
- PRIVATE platform/qt/src/run_loop.cpp
- PRIVATE platform/qt/src/run_loop_impl.hpp
- PRIVATE platform/qt/src/string_stdlib.cpp
- PRIVATE platform/qt/src/timer.cpp
- PRIVATE platform/qt/src/timer_impl.hpp
- PRIVATE platform/qt/src/utf.cpp
- PRIVATE platform/qt/src/gl_functions.cpp
- PRIVATE platform/qt/src/format_number.cpp
-
- PRIVATE platform/default/src/mbgl/text/collator.cpp
- PRIVATE platform/default/src/mbgl/text/unaccent.cpp
- PRIVATE platform/default/include/mbgl/text/unaccent.hpp
-
- #Layer manager
- PRIVATE platform/default/src/mbgl/layermanager/layer_manager.cpp
-)
-
-set(MBGL_QT_FILESOURCE_FILES
- # File source
- PRIVATE platform/default/src/mbgl/storage/file_source.cpp
- PRIVATE platform/qt/src/http_file_source.cpp
- PRIVATE platform/qt/src/http_file_source.hpp
- PRIVATE platform/qt/src/http_request.cpp
- PRIVATE platform/qt/src/http_request.hpp
-
- # Database
- PRIVATE platform/qt/src/sqlite3.cpp
-)
-
-# Shared library
-add_library(qmapboxgl SHARED
- platform/qt/include/qmapbox.hpp
- platform/qt/include/qmapboxgl.hpp
- platform/qt/src/qt_conversion.hpp
- platform/qt/src/qt_geojson.cpp
- platform/qt/src/qt_geojson.hpp
- platform/qt/src/qmapbox.cpp
- platform/qt/src/qmapboxgl.cpp
- platform/qt/src/qmapboxgl_p.hpp
- platform/qt/src/qmapboxgl_map_observer.cpp
- platform/qt/src/qmapboxgl_map_observer.hpp
- platform/qt/src/qmapboxgl_map_renderer.cpp
- platform/qt/src/qmapboxgl_map_renderer.hpp
- platform/qt/src/qmapboxgl_renderer_backend.cpp
- platform/qt/src/qmapboxgl_renderer_backend.hpp
- platform/qt/src/qmapboxgl_scheduler.cpp
- platform/qt/src/qmapboxgl_scheduler.hpp
- platform/default/include/mbgl/util/default_styles.hpp
-)
-
-target_include_directories(qmapboxgl
- PUBLIC platform/qt/include
- PRIVATE src
-)
-
-target_compile_definitions(qmapboxgl
- PRIVATE "-DQT_BUILD_MAPBOXGL_LIB"
+include(${PROJECT_SOURCE_DIR}/platform/gfx/gl/gl.cmake)
+
+target_compile_definitions(mbgl-core PUBLIC
+ MBGL_USE_GLES2
)
-target_link_libraries(qmapboxgl
- PRIVATE mbgl-core
- PRIVATE mbgl-filesource
- ${MBGL_QT_CORE_LIBRARIES}
- ${MBGL_QT_FILESOURCE_LIBRARIES}
+find_package(Qt5Core REQUIRED)
+find_package(Qt5Gui REQUIRED)
+find_package(Qt5Network REQUIRED)
+find_package(Qt5OpenGL REQUIRED)
+find_package(Qt5Widgets REQUIRED)
+find_package(Qt5Sql REQUIRED)
+
+if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ add_definitions("-DQT_COMPILING_QIMAGE_COMPAT_CPP")
+ add_definitions("-DRAPIDJSON_HAS_CXX11_RVALUE_REFS")
+ 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
+ ${CMAKE_CURRENT_LIST_DIR}/src/async_task.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/async_task_impl.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/bidi.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/format_number.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/gl_functions.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/headless_backend_qt.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/http_file_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/http_file_source.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/http_request.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/http_request.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/local_glyph_rasterizer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qt_image.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qt_logging.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/run_loop.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/run_loop_impl.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/sqlite3.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/string_stdlib.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/thread.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/thread_local.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/timer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/timer_impl.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/utf.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/gfx/headless_backend.hpp
+ ${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/gfx/headless_frontend.hpp
+ ${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/gl/headless_backend.hpp
+ ${PROJECT_SOURCE_DIR}/platform/default/include/mbgl/text/unaccent.hpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/default_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/collator.cpp
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/unaccent.cpp
)
-# C++ app
-add_executable(mbgl-qt
- platform/qt/app/main.cpp
- platform/qt/app/mapwindow.cpp
- platform/qt/app/mapwindow.hpp
- platform/qt/resources/common.qrc
+target_compile_definitions(mbgl-core PRIVATE
+ QT_IMAGE_DECODERS
)
-target_compile_options(qmapboxgl
- PRIVATE -std=c++03
+target_compile_definitions(mbgl-core PUBLIC
+ __QT__
)
-target_link_libraries(mbgl-qt
- PRIVATE qmapboxgl
+target_include_directories(mbgl-core PRIVATE
+ ${PROJECT_SOURCE_DIR}/platform/default/include
)
-find_package(Qt5Core REQUIRED)
-find_package(Qt5Gui REQUIRED)
-find_package(Qt5Network REQUIRED)
-find_package(Qt5OpenGL REQUIRED)
-find_package(Qt5Widgets REQUIRED)
-find_package(Qt5Sql REQUIRED)
+include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
-# Qt5 always build OpenGL ES2 which is the compatibility
-# mode. Qt5 will take care of translating the desktop
-# version of OpenGL to ES2.
-add_definitions("-DMBGL_USE_GLES2")
+target_link_libraries(mbgl-core PRIVATE
+ $<$<NOT:$<PLATFORM_ID:Windows>>:z>
+ Qt5::Core
+ Qt5::Gui
+ Qt5::Network
+ Qt5::OpenGL
+ Qt5::Sql
+ mbgl-vendor-nunicode
+)
-set(MBGL_QT_CORE_LIBRARIES
- PUBLIC Qt5::Core
- PUBLIC Qt5::Gui
- PUBLIC Qt5::OpenGL
+add_library(qmapboxgl SHARED
+ ${CMAKE_CURRENT_LIST_DIR}/include/qmapbox.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/include/qmapboxgl.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapbox.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_map_observer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_map_observer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_map_renderer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_map_renderer.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_p.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_renderer_backend.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_renderer_backend.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_scheduler.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qmapboxgl_scheduler.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qt_conversion.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qt_geojson.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/qt_geojson.hpp
)
-set(MBGL_QT_FILESOURCE_LIBRARIES
- PUBLIC Qt5::Network
- PUBLIC Qt5::Sql
+# FIXME: Because of rapidjson conversion
+target_include_directories(qmapboxgl PRIVATE
+ ${PROJECT_SOURCE_DIR}/src
)
-target_link_libraries(mbgl-qt
- PRIVATE Qt5::Widgets
+target_include_directories(qmapboxgl PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/include
)
-xcode_create_scheme(TARGET mbgl-qt)
+target_compile_definitions(qmapboxgl PRIVATE
+ QT_BUILD_MAPBOXGL_LIB
+)
-# OS specific configurations
-if (MASON_PLATFORM STREQUAL "osx" OR MASON_PLATFORM STREQUAL "ios")
- list(APPEND MBGL_QT_CORE_FILES
- PRIVATE platform/darwin/src/nsthread.mm
- )
- list(APPEND MBGL_QT_CORE_LIBRARIES
- PRIVATE "-framework Foundation"
- )
-elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
- list(APPEND MBGL_QT_CORE_FILES
- PRIVATE platform/default/src/mbgl/util/thread.cpp
- )
-elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- add_definitions("-DQT_COMPILING_QIMAGE_COMPAT_CPP")
- add_definitions("-DRAPIDJSON_HAS_CXX11_RVALUE_REFS")
- add_definitions("-D_USE_MATH_DEFINES")
+target_link_libraries(qmapboxgl
+ Qt5::Core
+ Qt5::Gui
+ mbgl-core
+)
- add_definitions("-Wno-deprecated-declarations")
- 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")
- add_definitions("-Wno-inconsistent-missing-override")
+add_executable(mbgl-qt
+ ${CMAKE_CURRENT_LIST_DIR}/app/main.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/app/mapwindow.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/app/mapwindow.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/resources/common.qrc
+)
- list(APPEND MBGL_QT_CORE_FILES
- PRIVATE platform/qt/src/thread.cpp
- )
-elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "QNX")
- list(APPEND MBGL_QT_CORE_FILES
- PRIVATE platform/qt/src/thread.cpp
- )
- add_definitions("-Wno-narrowing")
-endif()
+# 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
+ ${CMAKE_CURRENT_LIST_DIR}/test/main.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/test/qmapboxgl.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/test/qmapboxgl.test.hpp
+)
+
+target_compile_definitions(mbgl-test-runner PRIVATE
+ WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
+)
+
+target_link_libraries(mbgl-test-runner PRIVATE
+ Qt5::Gui
+ Qt5::OpenGL
+ qmapboxgl
+ mbgl-test
+ pthread
+)
+
+add_executable(mbgl-benchmark-runner
+ ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/benchmark/main.cpp
+)
-add_custom_command(
- TARGET qmapboxgl
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${CMAKE_SOURCE_DIR}/platform/qt/include
- ${CMAKE_CURRENT_BINARY_DIR}/platform/qt/include
+target_link_libraries(mbgl-benchmark-runner PRIVATE
+ mbgl-benchmark
)
-xcode_create_scheme(TARGET qmapboxgl)
+add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
+add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner)
diff --git a/render-test/CMakeLists.txt b/render-test/CMakeLists.txt
new file mode 100644
index 0000000000..526a031bab
--- /dev/null
+++ b/render-test/CMakeLists.txt
@@ -0,0 +1,35 @@
+add_executable(mbgl-render-test
+ ${CMAKE_CURRENT_LIST_DIR}/allocation_index.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/allocation_index.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/filesystem.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/main.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/metadata.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/parser.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/parser.hpp
+ ${CMAKE_CURRENT_LIST_DIR}/runner.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/runner.hpp
+)
+
+target_compile_definitions(mbgl-render-test PRIVATE
+ TEST_RUNNER_ROOT_PATH="${PROJECT_SOURCE_DIR}"
+)
+
+# FIXME: Should not use core private interface
+target_include_directories(mbgl-render-test PRIVATE
+ ${PROJECT_SOURCE_DIR}/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})
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 0000000000..a8c5a2ccd9
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +1,163 @@
+add_library(mbgl-test SHARED EXCLUDE_FROM_ALL
+ ${CMAKE_CURRENT_LIST_DIR}/actor/actor.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/actor/actor_ref.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/algorithm/update_renderables.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/algorithm/update_tile_masks.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/annotations.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/api_misuse.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/custom_geometry_source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/custom_layer.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/query.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/api/recycle_map.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/geometry/dem_data.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/geometry/line_atlas.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gl/bucket.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gl/context.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gl/gl_functions.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/gl/object.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/map/map.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/map/prefetch.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/map/transform.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/math/clamp.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/math/minmax.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/math/wrap.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/programs/symbol_program.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/renderer/backend_scope.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/renderer/image_manager.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/renderer/pattern_atlas.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/sprite/sprite_loader.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/sprite/sprite_parser.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/test/fixture_log_observer.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/test/getrss.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/test/sqlite3_test_fs.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/test/stub_file_source.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/test/test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/src/mbgl/test/util.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/asset_file_source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/default_file_source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/headers.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/http_file_source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/local_file_source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/offline.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/offline_database.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/offline_download.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/online_file_source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/resource.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/storage/sqlite.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/conversion_impl.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/function.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/geojson_options.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/layer.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/light.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/property_value.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/stringify.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/conversion/tileset.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/expression/expression.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/expression/util.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/filter.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/properties.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/property_expression.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/source.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/style.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/style_image.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/style_layer.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/style/style_parser.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/bidi.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/cross_tile_symbol_index.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/glyph_manager.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/glyph_pbf.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/language_tag.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/local_glyph_rasterizer.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/quads.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/shaping.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/text/tagged_string.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/custom_geometry_tile.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/geojson_tile.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/geometry_tile_data.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/raster_dem_tile.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/raster_tile.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/tile_coordinate.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/tile_id.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/tile/vector_tile.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/async_task.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/dtoa.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/geo.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/grid_index.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/http_timeout.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/image.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/mapbox.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/memory.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/merge_lines.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/number_conversions.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/offscreen_texture.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/peer.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/position.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/projection.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/run_loop.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/string.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/text_conversions.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/thread.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/thread_local.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/tile_cover.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/tile_range.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/timer.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/util/token.test.cpp
+ ${CMAKE_CURRENT_LIST_DIR}/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
+ ${CMAKE_CURRENT_LIST_DIR}/src
+ ${PROJECT_SOURCE_DIR}/platform/default/include
+ ${PROJECT_SOURCE_DIR}/platform/gfx/gl/src
+ ${PROJECT_SOURCE_DIR}/src
+)
+
+target_include_directories(mbgl-test PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/include
+ ${PROJECT_SOURCE_DIR}/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)