diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-12-01 17:22:36 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-12-02 12:18:08 +0100 |
commit | 5c883092640a39840e08a800e7f569b26c7c803c (patch) | |
tree | a195afd0adf4f766eb7e6fe2ff4db2ac4c6626c1 | |
parent | d904ba66abc01bc727928ad3cebed3925eb755ea (diff) | |
download | qtlocation-mapboxgl-5c883092640a39840e08a800e7f569b26c7c803c.tar.gz |
[build] speedup Android packaging by not building unit tests
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | platform/android/config.cmake | 83 |
2 files changed, 50 insertions, 39 deletions
@@ -493,17 +493,17 @@ build/android-$1/$(BUILDTYPE)/Makefile: build/android-$1/$(BUILDTYPE)/toolchain. .PHONY: android-test-lib-$1 android-test-lib-$1: build/android-$1/$(BUILDTYPE)/Makefile - $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C build/android-$1/$(BUILDTYPE) mbgl-test-stripped + $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C build/android-$1/$(BUILDTYPE) mbgl-test .PHONY: android-lib-$1 android-lib-$1: build/android-$1/$(BUILDTYPE)/Makefile - $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C build/android-$1/$(BUILDTYPE) all + $(NINJA) $(NINJA_ARGS) -j$(JOBS) -C build/android-$1/$(BUILDTYPE) mapbox-gl example-custom-layer .PHONY: android-$1 android-$1: android-lib-$1 cd platform/android && ./gradlew --parallel --max-workers=$(JOBS) assemble$(BUILDTYPE) -run-android-core-test-$1: android-lib-$1 android-test-lib-$1 +run-android-core-test-$1: android-test-lib-$1 # Compile main sources and extract the classes (using the test app to get all transitive dependencies in one place) cd platform/android && ./gradlew assembleDebug unzip -o platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug.apk classes.dex -d build/android-$1/$(BUILDTYPE) diff --git a/platform/android/config.cmake b/platform/android/config.cmake index 3ab695e7e1..da0901ed9a 100644 --- a/platform/android/config.cmake +++ b/platform/android/config.cmake @@ -19,6 +19,31 @@ mason_use(nunicode VERSION 1.7.1) mason_use(sqlite VERSION 3.14.2) mason_use(gtest VERSION 1.7.0) +set(ANDROID_SDK_PROJECT_DIR ${CMAKE_SOURCE_DIR}/platform/android/MapboxGLAndroidSDK) +set(ANDROID_JNI_TARGET_DIR ${ANDROID_SDK_PROJECT_DIR}/src/main/jniLibs/${ANDROID_JNIDIR}) +set(ANDROID_ASSETS_TARGET_DIR ${ANDROID_SDK_PROJECT_DIR}/src/main/assets) +set(ANDROID_TEST_APP_JNI_TARGET_DIR ${CMAKE_SOURCE_DIR}/platform/android/MapboxGLAndroidSDKTestApp/src/main/jniLibs/${ANDROID_JNIDIR}) + +macro(mbgl_android_copy_asset source target) + add_custom_command( + OUTPUT ${ANDROID_ASSETS_TARGET_DIR}/${target} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${source} ${ANDROID_ASSETS_TARGET_DIR}/${target} + DEPENDS ${CMAKE_SOURCE_DIR}/${source} + ) +endmacro() + +mbgl_android_copy_asset(common/ca-bundle.crt ca-bundle.crt) +mbgl_android_copy_asset(platform/default/resources/api_mapbox_com-digicert.der api_mapbox_com-digicert.der) +mbgl_android_copy_asset(platform/default/resources/api_mapbox_com-geotrust.der api_mapbox_com-geotrust.der) +mbgl_android_copy_asset(platform/default/resources/star_tilestream_net.der star_tilestream_net.der) + +add_custom_target(mbgl-copy-android-assets + DEPENDS ${ANDROID_ASSETS_TARGET_DIR}/ca-bundle.crt + DEPENDS ${ANDROID_ASSETS_TARGET_DIR}/api_mapbox_com-digicert.der + DEPENDS ${ANDROID_ASSETS_TARGET_DIR}/api_mapbox_com-geotrust.der + DEPENDS ${ANDROID_ASSETS_TARGET_DIR}/star_tilestream_net.der +) + ## mbgl core ## macro(mbgl_platform_core) @@ -163,6 +188,10 @@ add_library(mapbox-gl SHARED platform/android/src/main.cpp ) +add_dependencies(mapbox-gl + mbgl-copy-android-assets +) + target_compile_options(mapbox-gl PRIVATE -fvisibility=hidden PRIVATE -ffunction-sections @@ -175,6 +204,11 @@ target_link_libraries(mapbox-gl PUBLIC -Wl,--gc-sections ) +# Create a stripped version of the library and copy it to the JNIDIR. +add_custom_command(TARGET mapbox-gl POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory ${ANDROID_JNI_TARGET_DIR} + COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mapbox-gl> -o ${ANDROID_JNI_TARGET_DIR}/$<TARGET_FILE_NAME:mapbox-gl>) + ## Test library ## add_library(mbgl-test SHARED @@ -186,6 +220,10 @@ add_library(mbgl-test SHARED ) +add_dependencies(mbgl-test + mapbox-gl +) + target_sources(mbgl-test # Headless view PRIVATE platform/default/mbgl/gl/headless_backend.cpp @@ -229,6 +267,11 @@ target_add_mason_package(mbgl-test PRIVATE boost) target_add_mason_package(mbgl-test PRIVATE geojson) target_add_mason_package(mbgl-test PRIVATE geojsonvt) +add_custom_command(TARGET mbgl-test POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/stripped + COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mapbox-gl> -o ${CMAKE_CURRENT_BINARY_DIR}/stripped/$<TARGET_FILE_NAME:mapbox-gl> + COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mbgl-test> -o ${CMAKE_CURRENT_BINARY_DIR}/stripped/$<TARGET_FILE_NAME:mbgl-test>) + ## Custom layer example ## add_library(example-custom-layer SHARED @@ -243,42 +286,10 @@ target_compile_options(example-custom-layer ) target_link_libraries(example-custom-layer - PRIVATE mbgl-core + PRIVATE mapbox-gl PUBLIC -Wl,--gc-sections ) -## Strip and copy ## - -set(ANDROID_SDK_PROJECT_DIR ${CMAKE_SOURCE_DIR}/platform/android/MapboxGLAndroidSDK) -set(ANDROID_JNI_TARGET_DIR ${ANDROID_SDK_PROJECT_DIR}/src/main/jniLibs/${ANDROID_JNIDIR}/) -set(ANDROID_ASSETS_TARGET_DIR ${ANDROID_SDK_PROJECT_DIR}/src/main/assets/) -set(ANDROID_TEST_APP_JNI_TARGET_DIR ${CMAKE_SOURCE_DIR}/platform/android/MapboxGLAndroidSDKTestApp/src/main/jniLibs/${ANDROID_JNIDIR}/) - -add_custom_target(copy-files - DEPENDS mapbox-gl - DEPENDS example-custom-layer - COMMAND ${CMAKE_COMMAND} -E make_directory ${ANDROID_JNI_TARGET_DIR} - COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mapbox-gl> -o ${ANDROID_JNI_TARGET_DIR}$<TARGET_FILE_NAME:mapbox-gl> - COMMAND ${CMAKE_COMMAND} -E make_directory ${ANDROID_ASSETS_TARGET_DIR} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/common/ca-bundle.crt ${ANDROID_ASSETS_TARGET_DIR} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/platform/default/resources/api_mapbox_com-digicert.der ${ANDROID_ASSETS_TARGET_DIR} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/platform/default/resources/api_mapbox_com-geotrust.der ${ANDROID_ASSETS_TARGET_DIR} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/platform/default/resources/star_tilestream_net.der ${ANDROID_ASSETS_TARGET_DIR} - COMMAND ${CMAKE_COMMAND} -E make_directory ${ANDROID_TEST_APP_JNI_TARGET_DIR} - COMMAND ${STRIP_COMMAND} $<TARGET_FILE:example-custom-layer> -o ${ANDROID_TEST_APP_JNI_TARGET_DIR}$<TARGET_FILE_NAME:example-custom-layer> -) - -add_custom_target(mbgl-test-stripped - DEPENDS mapbox-gl - DEPENDS mbgl-test - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/stripped - COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mapbox-gl> -o ${CMAKE_CURRENT_BINARY_DIR}/stripped/$<TARGET_FILE_NAME:mapbox-gl> - COMMAND ${STRIP_COMMAND} $<TARGET_FILE:mbgl-test> -o ${CMAKE_CURRENT_BINARY_DIR}/stripped/$<TARGET_FILE_NAME:mbgl-test> -) - -add_custom_target(_all ALL - DEPENDS mapbox-gl - DEPENDS mbgl-test - DEPENDS example-custom-layer - DEPENDS copy-files -) +add_custom_command(TARGET example-custom-layer POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory ${ANDROID_TEST_APP_JNI_TARGET_DIR} + COMMAND ${STRIP_COMMAND} $<TARGET_FILE:example-custom-layer> -o ${ANDROID_TEST_APP_JNI_TARGET_DIR}/$<TARGET_FILE_NAME:example-custom-layer>) |