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