From 05974e2a7fde35771f31ba279765d32966968fb8 Mon Sep 17 00:00:00 2001 From: Igor Tarasov Date: Wed, 13 May 2020 18:21:07 +0300 Subject: [PATCH] Fix binary size. (#382) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add compiler and linker options to reduce binary size for release build: - reduce symbol visibility: `-fvisibility=hidden`, `-fvisibility-inlines=hidden`; - link time optimization `-flto` and enable gold plugin; - remove duplicated code: `–icf=all`; - size optimization for compilation (`-Oz`); - garbage collect unused sections: `-Wl,--gc-sections` --- MapboxGLAndroidSDK/src/cpp/CMakeLists.txt | 398 +++++++++++----------- 1 file changed, 201 insertions(+), 197 deletions(-) diff --git a/MapboxGLAndroidSDK/src/cpp/CMakeLists.txt b/MapboxGLAndroidSDK/src/cpp/CMakeLists.txt index 2107533ea..15d8c1b0f 100644 --- a/MapboxGLAndroidSDK/src/cpp/CMakeLists.txt +++ b/MapboxGLAndroidSDK/src/cpp/CMakeLists.txt @@ -1,208 +1,212 @@ cmake_minimum_required(VERSION 3.10) -add_subdirectory(../../../vendor/mapbox-gl-native ../../../vendor/mapbox-gl-native/${ANDROID_ABI}) +add_subdirectory(../../../vendor/mapbox-gl-native + ../../../vendor/mapbox-gl-native/${ANDROID_ABI}) -add_library( - mapbox-gl SHARED - ${PROJECT_SOURCE_DIR}/main.cpp - ${PROJECT_SOURCE_DIR}/jni_native.cpp - ${PROJECT_SOURCE_DIR}/jni_native.hpp - ${PROJECT_SOURCE_DIR}/file_source.cpp - ${PROJECT_SOURCE_DIR}/file_source.hpp - ${PROJECT_SOURCE_DIR}/http_file_source.cpp - ${PROJECT_SOURCE_DIR}/i18n/collator.cpp - ${PROJECT_SOURCE_DIR}/i18n/collator_jni.hpp - ${PROJECT_SOURCE_DIR}/i18n/number_format.cpp - ${PROJECT_SOURCE_DIR}/i18n/number_format_jni.hpp - ${PROJECT_SOURCE_DIR}/logger.cpp - ${PROJECT_SOURCE_DIR}/logger.hpp - ${PROJECT_SOURCE_DIR}/logging_android.cpp - ${PROJECT_SOURCE_DIR}/text/local_glyph_rasterizer.cpp - ${PROJECT_SOURCE_DIR}/text/local_glyph_rasterizer_jni.hpp - ${PROJECT_SOURCE_DIR}/android_renderer_backend.cpp - ${PROJECT_SOURCE_DIR}/android_renderer_backend.hpp - ${PROJECT_SOURCE_DIR}/android_renderer_frontend.cpp - ${PROJECT_SOURCE_DIR}/android_renderer_frontend.hpp - ${PROJECT_SOURCE_DIR}/annotation/marker.cpp - ${PROJECT_SOURCE_DIR}/annotation/marker.hpp - ${PROJECT_SOURCE_DIR}/annotation/multi_point.hpp - ${PROJECT_SOURCE_DIR}/annotation/polygon.cpp - ${PROJECT_SOURCE_DIR}/annotation/polygon.hpp - ${PROJECT_SOURCE_DIR}/annotation/polyline.cpp - ${PROJECT_SOURCE_DIR}/annotation/polyline.hpp - ${PROJECT_SOURCE_DIR}/asset_manager.hpp - ${PROJECT_SOURCE_DIR}/asset_manager_file_source.cpp - ${PROJECT_SOURCE_DIR}/asset_manager_file_source.hpp - ${PROJECT_SOURCE_DIR}/connectivity_listener.cpp - ${PROJECT_SOURCE_DIR}/connectivity_listener.hpp - ${PROJECT_SOURCE_DIR}/conversion/collection.cpp - ${PROJECT_SOURCE_DIR}/conversion/collection.hpp - ${PROJECT_SOURCE_DIR}/conversion/color.cpp - ${PROJECT_SOURCE_DIR}/conversion/color.hpp - ${PROJECT_SOURCE_DIR}/conversion/constant.cpp - ${PROJECT_SOURCE_DIR}/conversion/constant.hpp - ${PROJECT_SOURCE_DIR}/conversion/conversion.hpp - ${PROJECT_SOURCE_DIR}/geojson/feature.cpp - ${PROJECT_SOURCE_DIR}/geojson/feature.hpp - ${PROJECT_SOURCE_DIR}/geojson/feature_collection.cpp - ${PROJECT_SOURCE_DIR}/geojson/feature_collection.hpp - ${PROJECT_SOURCE_DIR}/geojson/geometry.cpp - ${PROJECT_SOURCE_DIR}/geojson/geometry.hpp - ${PROJECT_SOURCE_DIR}/geojson/geometry_collection.cpp - ${PROJECT_SOURCE_DIR}/geojson/geometry_collection.hpp - ${PROJECT_SOURCE_DIR}/geojson/line_string.cpp - ${PROJECT_SOURCE_DIR}/geojson/line_string.hpp - ${PROJECT_SOURCE_DIR}/geojson/multi_line_string.cpp - ${PROJECT_SOURCE_DIR}/geojson/multi_line_string.hpp - ${PROJECT_SOURCE_DIR}/geojson/multi_point.cpp - ${PROJECT_SOURCE_DIR}/geojson/multi_point.hpp - ${PROJECT_SOURCE_DIR}/geojson/multi_polygon.cpp - ${PROJECT_SOURCE_DIR}/geojson/multi_polygon.hpp - ${PROJECT_SOURCE_DIR}/geojson/point.cpp - ${PROJECT_SOURCE_DIR}/geojson/point.hpp - ${PROJECT_SOURCE_DIR}/geojson/polygon.cpp - ${PROJECT_SOURCE_DIR}/geojson/polygon.hpp - ${PROJECT_SOURCE_DIR}/geojson/util.hpp - ${PROJECT_SOURCE_DIR}/geometry/lat_lng.cpp - ${PROJECT_SOURCE_DIR}/geometry/lat_lng.hpp - ${PROJECT_SOURCE_DIR}/geometry/lat_lng_bounds.cpp - ${PROJECT_SOURCE_DIR}/geometry/lat_lng_bounds.hpp - ${PROJECT_SOURCE_DIR}/geometry/lat_lng_quad.cpp - ${PROJECT_SOURCE_DIR}/geometry/lat_lng_quad.hpp - ${PROJECT_SOURCE_DIR}/geometry/projected_meters.cpp - ${PROJECT_SOURCE_DIR}/geometry/projected_meters.hpp - ${PROJECT_SOURCE_DIR}/graphics/pointf.cpp - ${PROJECT_SOURCE_DIR}/graphics/pointf.hpp - ${PROJECT_SOURCE_DIR}/graphics/rectf.cpp - ${PROJECT_SOURCE_DIR}/graphics/rectf.hpp - ${PROJECT_SOURCE_DIR}/gson/json_array.cpp - ${PROJECT_SOURCE_DIR}/gson/json_array.hpp - ${PROJECT_SOURCE_DIR}/gson/json_element.cpp - ${PROJECT_SOURCE_DIR}/gson/json_element.hpp - ${PROJECT_SOURCE_DIR}/gson/json_object.cpp - ${PROJECT_SOURCE_DIR}/gson/json_object.hpp - ${PROJECT_SOURCE_DIR}/gson/json_primitive.cpp - ${PROJECT_SOURCE_DIR}/gson/json_primitive.hpp - ${PROJECT_SOURCE_DIR}/java/util.cpp - ${PROJECT_SOURCE_DIR}/java/util.hpp - ${PROJECT_SOURCE_DIR}/java_types.cpp - ${PROJECT_SOURCE_DIR}/java_types.hpp - ${PROJECT_SOURCE_DIR}/java/util.cpp - ${PROJECT_SOURCE_DIR}/java/util.hpp - ${PROJECT_SOURCE_DIR}/java_types.cpp - ${PROJECT_SOURCE_DIR}/java_types.hpp - ${PROJECT_SOURCE_DIR}/mapbox.cpp - ${PROJECT_SOURCE_DIR}/mapbox.hpp - ${PROJECT_SOURCE_DIR}/map/camera_position.cpp - ${PROJECT_SOURCE_DIR}/map/camera_position.hpp - ${PROJECT_SOURCE_DIR}/map/image.cpp - ${PROJECT_SOURCE_DIR}/map/image.hpp - ${PROJECT_SOURCE_DIR}/map_renderer.cpp - ${PROJECT_SOURCE_DIR}/map_renderer.hpp - ${PROJECT_SOURCE_DIR}/map_renderer_runnable.cpp - ${PROJECT_SOURCE_DIR}/map_renderer_runnable.hpp - ${PROJECT_SOURCE_DIR}/native_map_view.cpp - ${PROJECT_SOURCE_DIR}/native_map_view.hpp - ${PROJECT_SOURCE_DIR}/offline/offline_manager.cpp - ${PROJECT_SOURCE_DIR}/offline/offline_manager.hpp - ${PROJECT_SOURCE_DIR}/offline/offline_region.cpp - ${PROJECT_SOURCE_DIR}/offline/offline_region.hpp - ${PROJECT_SOURCE_DIR}/offline/offline_region_definition.cpp - ${PROJECT_SOURCE_DIR}/offline/offline_region_definition.hpp - ${PROJECT_SOURCE_DIR}/offline/offline_region_error.cpp - ${PROJECT_SOURCE_DIR}/offline/offline_region_error.hpp - ${PROJECT_SOURCE_DIR}/offline/offline_region_status.cpp - ${PROJECT_SOURCE_DIR}/offline/offline_region_status.hpp - ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshot.cpp - ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshot.hpp - ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshotter.cpp - ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshotter.hpp - ${PROJECT_SOURCE_DIR}/style/android_conversion.hpp - ${PROJECT_SOURCE_DIR}/style/conversion/filter.cpp - ${PROJECT_SOURCE_DIR}/style/conversion/filter.hpp - ${PROJECT_SOURCE_DIR}/style/conversion/position.cpp - ${PROJECT_SOURCE_DIR}/style/conversion/position.hpp - ${PROJECT_SOURCE_DIR}/style/conversion/property_expression.hpp - ${PROJECT_SOURCE_DIR}/style/conversion/property_value.hpp - ${PROJECT_SOURCE_DIR}/style/conversion/transition_options.cpp - ${PROJECT_SOURCE_DIR}/style/conversion/transition_options.hpp - ${PROJECT_SOURCE_DIR}/style/conversion/url_or_tileset.cpp - ${PROJECT_SOURCE_DIR}/style/conversion/url_or_tileset.hpp - ${PROJECT_SOURCE_DIR}/style/formatted.cpp - ${PROJECT_SOURCE_DIR}/style/formatted.hpp - ${PROJECT_SOURCE_DIR}/style/formatted_section.cpp - ${PROJECT_SOURCE_DIR}/style/formatted_section.hpp - ${PROJECT_SOURCE_DIR}/style/layers/background_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/background_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/circle_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/circle_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/custom_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/custom_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/fill_extrusion_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/fill_extrusion_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/fill_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/fill_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/heatmap_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/heatmap_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/hillshade_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/hillshade_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/layer_manager.cpp - ${PROJECT_SOURCE_DIR}/style/layers/layer_manager.hpp - ${PROJECT_SOURCE_DIR}/style/layers/line_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/line_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/raster_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/raster_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/symbol_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/symbol_layer.hpp - ${PROJECT_SOURCE_DIR}/style/layers/location_indicator_layer.cpp - ${PROJECT_SOURCE_DIR}/style/layers/location_indicator_layer.hpp - ${PROJECT_SOURCE_DIR}/style/light.cpp - ${PROJECT_SOURCE_DIR}/style/light.hpp - ${PROJECT_SOURCE_DIR}/style/position.cpp - ${PROJECT_SOURCE_DIR}/style/position.hpp - ${PROJECT_SOURCE_DIR}/style/sources/custom_geometry_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/custom_geometry_source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/geojson_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/geojson_source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/image_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/image_source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/raster_dem_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/raster_dem_source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/raster_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/raster_source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/unknown_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/unknown_source.hpp - ${PROJECT_SOURCE_DIR}/style/sources/vector_source.cpp - ${PROJECT_SOURCE_DIR}/style/sources/vector_source.hpp - ${PROJECT_SOURCE_DIR}/style/transition_options.cpp - ${PROJECT_SOURCE_DIR}/style/transition_options.hpp - ${PROJECT_SOURCE_DIR}/style/value.cpp - ${PROJECT_SOURCE_DIR}/style/value.hpp -) +target_compile_options(mbgl-compiler-options INTERFACE -frtti) +add_library(mapbox-gl SHARED + ${PROJECT_SOURCE_DIR}/main.cpp + ${PROJECT_SOURCE_DIR}/jni_native.cpp + ${PROJECT_SOURCE_DIR}/jni_native.hpp + ${PROJECT_SOURCE_DIR}/file_source.cpp + ${PROJECT_SOURCE_DIR}/file_source.hpp + ${PROJECT_SOURCE_DIR}/http_file_source.cpp + ${PROJECT_SOURCE_DIR}/i18n/collator.cpp + ${PROJECT_SOURCE_DIR}/i18n/collator_jni.hpp + ${PROJECT_SOURCE_DIR}/i18n/number_format.cpp + ${PROJECT_SOURCE_DIR}/i18n/number_format_jni.hpp + ${PROJECT_SOURCE_DIR}/logger.cpp + ${PROJECT_SOURCE_DIR}/logger.hpp + ${PROJECT_SOURCE_DIR}/logging_android.cpp + ${PROJECT_SOURCE_DIR}/text/local_glyph_rasterizer.cpp + ${PROJECT_SOURCE_DIR}/text/local_glyph_rasterizer_jni.hpp + ${PROJECT_SOURCE_DIR}/android_renderer_backend.cpp + ${PROJECT_SOURCE_DIR}/android_renderer_backend.hpp + ${PROJECT_SOURCE_DIR}/android_renderer_frontend.cpp + ${PROJECT_SOURCE_DIR}/android_renderer_frontend.hpp + ${PROJECT_SOURCE_DIR}/annotation/marker.cpp + ${PROJECT_SOURCE_DIR}/annotation/marker.hpp + ${PROJECT_SOURCE_DIR}/annotation/multi_point.hpp + ${PROJECT_SOURCE_DIR}/annotation/polygon.cpp + ${PROJECT_SOURCE_DIR}/annotation/polygon.hpp + ${PROJECT_SOURCE_DIR}/annotation/polyline.cpp + ${PROJECT_SOURCE_DIR}/annotation/polyline.hpp + ${PROJECT_SOURCE_DIR}/asset_manager.hpp + ${PROJECT_SOURCE_DIR}/asset_manager_file_source.cpp + ${PROJECT_SOURCE_DIR}/asset_manager_file_source.hpp + ${PROJECT_SOURCE_DIR}/connectivity_listener.cpp + ${PROJECT_SOURCE_DIR}/connectivity_listener.hpp + ${PROJECT_SOURCE_DIR}/conversion/collection.cpp + ${PROJECT_SOURCE_DIR}/conversion/collection.hpp + ${PROJECT_SOURCE_DIR}/conversion/color.cpp + ${PROJECT_SOURCE_DIR}/conversion/color.hpp + ${PROJECT_SOURCE_DIR}/conversion/constant.cpp + ${PROJECT_SOURCE_DIR}/conversion/constant.hpp + ${PROJECT_SOURCE_DIR}/conversion/conversion.hpp + ${PROJECT_SOURCE_DIR}/geojson/feature.cpp + ${PROJECT_SOURCE_DIR}/geojson/feature.hpp + ${PROJECT_SOURCE_DIR}/geojson/feature_collection.cpp + ${PROJECT_SOURCE_DIR}/geojson/feature_collection.hpp + ${PROJECT_SOURCE_DIR}/geojson/geometry.cpp + ${PROJECT_SOURCE_DIR}/geojson/geometry.hpp + ${PROJECT_SOURCE_DIR}/geojson/geometry_collection.cpp + ${PROJECT_SOURCE_DIR}/geojson/geometry_collection.hpp + ${PROJECT_SOURCE_DIR}/geojson/line_string.cpp + ${PROJECT_SOURCE_DIR}/geojson/line_string.hpp + ${PROJECT_SOURCE_DIR}/geojson/multi_line_string.cpp + ${PROJECT_SOURCE_DIR}/geojson/multi_line_string.hpp + ${PROJECT_SOURCE_DIR}/geojson/multi_point.cpp + ${PROJECT_SOURCE_DIR}/geojson/multi_point.hpp + ${PROJECT_SOURCE_DIR}/geojson/multi_polygon.cpp + ${PROJECT_SOURCE_DIR}/geojson/multi_polygon.hpp + ${PROJECT_SOURCE_DIR}/geojson/point.cpp + ${PROJECT_SOURCE_DIR}/geojson/point.hpp + ${PROJECT_SOURCE_DIR}/geojson/polygon.cpp + ${PROJECT_SOURCE_DIR}/geojson/polygon.hpp + ${PROJECT_SOURCE_DIR}/geojson/util.hpp + ${PROJECT_SOURCE_DIR}/geometry/lat_lng.cpp + ${PROJECT_SOURCE_DIR}/geometry/lat_lng.hpp + ${PROJECT_SOURCE_DIR}/geometry/lat_lng_bounds.cpp + ${PROJECT_SOURCE_DIR}/geometry/lat_lng_bounds.hpp + ${PROJECT_SOURCE_DIR}/geometry/lat_lng_quad.cpp + ${PROJECT_SOURCE_DIR}/geometry/lat_lng_quad.hpp + ${PROJECT_SOURCE_DIR}/geometry/projected_meters.cpp + ${PROJECT_SOURCE_DIR}/geometry/projected_meters.hpp + ${PROJECT_SOURCE_DIR}/graphics/pointf.cpp + ${PROJECT_SOURCE_DIR}/graphics/pointf.hpp + ${PROJECT_SOURCE_DIR}/graphics/rectf.cpp + ${PROJECT_SOURCE_DIR}/graphics/rectf.hpp + ${PROJECT_SOURCE_DIR}/gson/json_array.cpp + ${PROJECT_SOURCE_DIR}/gson/json_array.hpp + ${PROJECT_SOURCE_DIR}/gson/json_element.cpp + ${PROJECT_SOURCE_DIR}/gson/json_element.hpp + ${PROJECT_SOURCE_DIR}/gson/json_object.cpp + ${PROJECT_SOURCE_DIR}/gson/json_object.hpp + ${PROJECT_SOURCE_DIR}/gson/json_primitive.cpp + ${PROJECT_SOURCE_DIR}/gson/json_primitive.hpp + ${PROJECT_SOURCE_DIR}/java/util.cpp + ${PROJECT_SOURCE_DIR}/java/util.hpp + ${PROJECT_SOURCE_DIR}/java_types.cpp + ${PROJECT_SOURCE_DIR}/java_types.hpp + ${PROJECT_SOURCE_DIR}/java/util.cpp + ${PROJECT_SOURCE_DIR}/java/util.hpp + ${PROJECT_SOURCE_DIR}/java_types.cpp + ${PROJECT_SOURCE_DIR}/java_types.hpp + ${PROJECT_SOURCE_DIR}/mapbox.cpp + ${PROJECT_SOURCE_DIR}/mapbox.hpp + ${PROJECT_SOURCE_DIR}/map/camera_position.cpp + ${PROJECT_SOURCE_DIR}/map/camera_position.hpp + ${PROJECT_SOURCE_DIR}/map/image.cpp + ${PROJECT_SOURCE_DIR}/map/image.hpp + ${PROJECT_SOURCE_DIR}/map_renderer.cpp + ${PROJECT_SOURCE_DIR}/map_renderer.hpp + ${PROJECT_SOURCE_DIR}/map_renderer_runnable.cpp + ${PROJECT_SOURCE_DIR}/map_renderer_runnable.hpp + ${PROJECT_SOURCE_DIR}/native_map_view.cpp + ${PROJECT_SOURCE_DIR}/native_map_view.hpp + ${PROJECT_SOURCE_DIR}/offline/offline_manager.cpp + ${PROJECT_SOURCE_DIR}/offline/offline_manager.hpp + ${PROJECT_SOURCE_DIR}/offline/offline_region.cpp + ${PROJECT_SOURCE_DIR}/offline/offline_region.hpp + ${PROJECT_SOURCE_DIR}/offline/offline_region_definition.cpp + ${PROJECT_SOURCE_DIR}/offline/offline_region_definition.hpp + ${PROJECT_SOURCE_DIR}/offline/offline_region_error.cpp + ${PROJECT_SOURCE_DIR}/offline/offline_region_error.hpp + ${PROJECT_SOURCE_DIR}/offline/offline_region_status.cpp + ${PROJECT_SOURCE_DIR}/offline/offline_region_status.hpp + ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshot.cpp + ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshot.hpp + ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshotter.cpp + ${PROJECT_SOURCE_DIR}/snapshotter/map_snapshotter.hpp + ${PROJECT_SOURCE_DIR}/style/android_conversion.hpp + ${PROJECT_SOURCE_DIR}/style/conversion/filter.cpp + ${PROJECT_SOURCE_DIR}/style/conversion/filter.hpp + ${PROJECT_SOURCE_DIR}/style/conversion/position.cpp + ${PROJECT_SOURCE_DIR}/style/conversion/position.hpp + ${PROJECT_SOURCE_DIR}/style/conversion/property_expression.hpp + ${PROJECT_SOURCE_DIR}/style/conversion/property_value.hpp + ${PROJECT_SOURCE_DIR}/style/conversion/transition_options.cpp + ${PROJECT_SOURCE_DIR}/style/conversion/transition_options.hpp + ${PROJECT_SOURCE_DIR}/style/conversion/url_or_tileset.cpp + ${PROJECT_SOURCE_DIR}/style/conversion/url_or_tileset.hpp + ${PROJECT_SOURCE_DIR}/style/formatted.cpp + ${PROJECT_SOURCE_DIR}/style/formatted.hpp + ${PROJECT_SOURCE_DIR}/style/formatted_section.cpp + ${PROJECT_SOURCE_DIR}/style/formatted_section.hpp + ${PROJECT_SOURCE_DIR}/style/layers/background_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/background_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/circle_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/circle_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/custom_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/custom_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/fill_extrusion_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/fill_extrusion_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/fill_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/fill_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/heatmap_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/heatmap_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/hillshade_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/hillshade_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/layer_manager.cpp + ${PROJECT_SOURCE_DIR}/style/layers/layer_manager.hpp + ${PROJECT_SOURCE_DIR}/style/layers/line_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/line_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/raster_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/raster_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/symbol_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/symbol_layer.hpp + ${PROJECT_SOURCE_DIR}/style/layers/location_indicator_layer.cpp + ${PROJECT_SOURCE_DIR}/style/layers/location_indicator_layer.hpp + ${PROJECT_SOURCE_DIR}/style/light.cpp + ${PROJECT_SOURCE_DIR}/style/light.hpp + ${PROJECT_SOURCE_DIR}/style/position.cpp + ${PROJECT_SOURCE_DIR}/style/position.hpp + ${PROJECT_SOURCE_DIR}/style/sources/custom_geometry_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/custom_geometry_source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/geojson_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/geojson_source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/image_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/image_source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/raster_dem_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/raster_dem_source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/raster_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/raster_source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/unknown_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/unknown_source.hpp + ${PROJECT_SOURCE_DIR}/style/sources/vector_source.cpp + ${PROJECT_SOURCE_DIR}/style/sources/vector_source.hpp + ${PROJECT_SOURCE_DIR}/style/transition_options.cpp + ${PROJECT_SOURCE_DIR}/style/transition_options.hpp + ${PROJECT_SOURCE_DIR}/style/value.cpp + ${PROJECT_SOURCE_DIR}/style/value.hpp) target_include_directories( mapbox-gl - PRIVATE - ${PROJECT_SOURCE_DIR} - ../../../vendor/mapbox-gl-native/src - ../../../vendor/mapbox-gl-native/platform/android/src - ../../../vendor/mapbox-gl-native/platform/default/include + PRIVATE ${PROJECT_SOURCE_DIR} + ../../../vendor/mapbox-gl-native/src + ../../../vendor/mapbox-gl-native/platform/android/src + ../../../vendor/mapbox-gl-native/platform/default/include) -) +target_compile_options(mapbox-gl + PRIVATE $<$:-Oz> + $<$:-Qunused-arguments> + $<$:-flto> + $<$:-fvisibility=hidden> + $<$:-fvisibility-inlines-hidden>) -target_link_libraries( - mapbox-gl - PRIVATE - mbgl-compiler-options - Mapbox::Base::jni.hpp - mbgl-core - mbgl-vendor-unique_resource - -) +target_link_libraries(mapbox-gl + PRIVATE $<$:-Oz> + $<$:-Wl,--icf=all> + $<$:-Wl,--gc-sections> + $<$:-flto> + $<$:-fuse-ld=gold> + Mapbox::Base::jni.hpp + mbgl-core + mbgl-vendor-unique_resource) install(TARGETS mapbox-gl LIBRARY DESTINATION lib)