diff --git a/.gitmodules b/.gitmodules index ba7433b9e..9cf14d70e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -37,9 +37,6 @@ [submodule "vendor/cpp-httplib"] path = vendor/cpp-httplib url = https://github.com/yhirose/cpp-httplib.git -[submodule "vendor/mapbox-gl-native-curl"] - path = vendor/mapbox-gl-native-curl - url = https://github.com/mapbox/mapbox-gl-native-curl.git [submodule "platform/android/vendor/maplibre-java"] path = platform/android/vendor/maplibre-java url = https://github.com/maplibre/maplibre-java diff --git a/platform/android/android.cmake b/platform/android/android.cmake index dc2433eb7..555b89d35 100644 --- a/platform/android/android.cmake +++ b/platform/android/android.cmake @@ -139,24 +139,11 @@ target_link_libraries( -Wl,--no-whole-archive ) -if(ANDROID_NATIVE_API_LEVEL VERSION_LESS 24) - target_sources( - mbgl-test-runner - PRIVATE ${PROJECT_SOURCE_DIR}/platform/android/src/test/http_file_source_test_stub.cpp - ) -else() - target_sources( - mbgl-test-runner - PRIVATE ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/http_file_source.cpp - ) - include(${PROJECT_SOURCE_DIR}/vendor/curl.cmake) - - target_link_libraries( - mbgl-test-runner - PRIVATE mbgl-vendor-curl - ) -endif() +target_sources( + mbgl-test-runner + PRIVATE ${PROJECT_SOURCE_DIR}/platform/android/MapboxGLAndroidSDK/src/cpp/http_file_source.cpp +) add_custom_command( TARGET mbgl-test-runner PRE_BUILD @@ -189,7 +176,7 @@ add_library( ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp ${PROJECT_SOURCE_DIR}/platform/android/src/test/collator_test_stub.cpp ${PROJECT_SOURCE_DIR}/platform/android/src/test/number_format_test_stub.cpp - ${PROJECT_SOURCE_DIR}/platform/android/src/test/http_file_source_test_stub.cpp + ${PROJECT_SOURCE_DIR}/platform/android/MapboxGLAndroidSDK/src/cpp/http_file_source.cpp ) target_include_directories( @@ -238,7 +225,7 @@ add_library( ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp ${PROJECT_SOURCE_DIR}/platform/android/src/test/collator_test_stub.cpp ${PROJECT_SOURCE_DIR}/platform/android/src/test/number_format_test_stub.cpp - ${PROJECT_SOURCE_DIR}/platform/android/src/test/http_file_source_test_stub.cpp + ${PROJECT_SOURCE_DIR}/platform/android/MapboxGLAndroidSDK/src/cpp/http_file_source.cpp ) target_include_directories( diff --git a/platform/android/src/test/http_file_source_test_stub.cpp b/platform/android/src/test/http_file_source_test_stub.cpp deleted file mode 100644 index 2ab1855c8..000000000 --- a/platform/android/src/test/http_file_source_test_stub.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include -#include -#include - -namespace mbgl { - -class HTTPFileSource::Impl {}; - -HTTPFileSource::HTTPFileSource(const ResourceOptions& /*resourceOptions*/, const ClientOptions& /*clientOptions*/) - : impl(std::make_unique()) {} - -HTTPFileSource::~HTTPFileSource() = default; - -void HTTPFileSource::setResourceOptions(ResourceOptions /*options*/) {} - -ResourceOptions HTTPFileSource::getResourceOptions() { - return ResourceOptions::Default(); -} - -void HTTPFileSource::setClientOptions(ClientOptions /*options*/) {} - -ClientOptions HTTPFileSource::getClientOptions() { - return ClientOptions(); -} - -std::unique_ptr HTTPFileSource::request(const Resource&, Callback) { - return std::make_unique(); -} - -} // namespace mbgl diff --git a/vendor/curl.cmake b/vendor/curl.cmake deleted file mode 100644 index 97ee9d4e7..000000000 --- a/vendor/curl.cmake +++ /dev/null @@ -1,221 +0,0 @@ -if(TARGET mbgl-vendor-curl) - return() -endif() - -# Use prebuilt libraries by dedault -if(NOT BUILD_ANDROID_CURL) - add_library( - mbgl-vendor-curl INTERFACE - ) - - set(CURL_BIN_DIR ${CMAKE_CURRENT_LIST_DIR}/mapbox-gl-native-curl/prebuilt/android) - set(CURL_STATIC_LIB ${CURL_BIN_DIR}/${ANDROID_ABI}/libcurl.a) - set(SSL_STATIC_LIB ${CURL_BIN_DIR}/${ANDROID_ABI}/libssl.a) - set(CRYPTO_STATIC_LIB ${CURL_BIN_DIR}/${ANDROID_ABI}/libcrypto.a) - - target_link_libraries( - mbgl-vendor-curl - INTERFACE - $<$:${CURL_STATIC_LIB}> $<$:${SSL_STATIC_LIB}> - $<$:${CRYPTO_STATIC_LIB}> - ) - - target_include_directories( - mbgl-vendor-curl SYSTEM - INTERFACE ${CMAKE_CURRENT_LIST_DIR}/mapbox-gl-native-curl/include - ) - return() -endif() - -# Build Curl with OpenSSL support - -include(ExternalProject) - -include(ProcessorCount) -processorcount(NPROC) - -# Check if Android NDK path is defined in the environment -if(DEFINED ENV{ANDROID_HOME}) - set(ANDROID_NDK_HOME $ENV{ANDROID_HOME}/ndk-bundle) -elseif(DEFINED ENV{ANDROID_SDK_ROOT}) - set(ANDROID_NDK_HOME $ENV{ANDROID_SDK_ROOT}/ndk-bundle) -elseif(DEFINED ANDROID_HOME) - set(ANDROID_NDK_HOME ${ANDROID_HOME}/ndk-bundle) -elseif(DEFINED ANDROID_SDK_ROOT) - set(ANDROID_NDK_HOME ${ANDROID_SDK_ROOT}/ndk-bundle) -else() - message(FATAL_ERROR "Must set either ANDROID_HOME or ANDROID_SDK_ROOT variable") -endif() - -if(CMAKE_HOST_SYSTEM_NAME STREQUAL Linux) - set(HOST_TAG linux-x86_64) -elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin) - set(HOST_TAG darwin-x86_64) -else() - message(FATAL_ERROR "Unsupported host: " ${CMAKE_SYSTEM_NAME}) -endif() - -if(${ANDROID_ABI} STREQUAL arm64-v8a) - set(TRIPLE aarch64-linux-android) - set(SSL_TARGET_ARCH android-arm64) -elseif(${ANDROID_ABI} STREQUAL x86_64) - set(TRIPLE x86_64-linux-android) - set(SSL_TARGET_ARCH android-x86_64) -else() - message(FATAL_ERROR "-- Unsupported Android ABI: " ${ANDROID_ABI}) -endif() - -set(TOOLCHAIN ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/${HOST_TAG}) -set(PATH ${TOOLCHAIN}/bin:$ENV{PATH}) - -set(CC ${TOOLCHAIN}/bin/${TRIPLE}${ANDROID_NATIVE_API_LEVEL}-clang) -set(CXX ${TOOLCHAIN}/bin/${TRIPLE}${ANDROID_NATIVE_API_LEVEL}-clang++) -set(AR ${TOOLCHAIN}/bin/${TRIPLE}-ar) -set(RANLIB ${TOOLCHAIN}/bin/${TRIPLE}-ranlib) - -# Build OpenSSL -set(SSL_SRC_DIR ${CMAKE_CURRENT_LIST_DIR}/mapbox-gl-native-curl/openssl) -set(SSL_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -set(SSL_INCLUDES ${SSL_BIN_DIR}/include) -file(MAKE_DIRECTORY ${SSL_INCLUDES}) - -set(SSL_STATIC_LIB ${SSL_BIN_DIR}/lib/libssl.a) -set(CRYPTO_STATIC_LIB ${SSL_BIN_DIR}/lib/libcrypto.a) - -ExternalProject_Add( - libssl - PREFIX ${SSL_BIN_DIR} - SOURCE_DIR ${SSL_SRC_DIR} - DOWNLOAD_COMMAND - GIT_REPOSITORY https://github.com/openssl/openssl.git - GIT_TAG OpenSSL_1_1_1d - GIT_SHALLOW true - GIT_PROGRESS true - CONFIGURE_COMMAND - echo - "Configuring openssl $-${ANDROID_ABI}" - && - ${CMAKE_COMMAND} - -E - env - ANDROID_NDK_HOME=${ANDROID_NDK_HOME} - PATH=${PATH} - ${SSL_SRC_DIR}/Configure - ${SSL_TARGET_ARCH} - no-asm - no-shared - no-tests - no-unit-test - zlib - -static - --prefix=${SSL_BIN_DIR} - BUILD_COMMAND - echo - "Building openssl $-${ANDROID_ABI}" - && - ${CMAKE_COMMAND} - -E - env - ANDROID_NDK_HOME=${ANDROID_NDK_HOME} - PATH=${PATH} - make - -j${NPROC} - INSTALL_COMMAND - echo - "Installing openssl $-${ANDROID_ABI}" - && - make - install - BUILD_BYPRODUCTS ${SSL_STATIC_LIB} ${CRYPTO_STATIC_LIB} -) - -add_library( - android-ssl STATIC IMPORTED -) -add_dependencies(android-ssl libssl) -set_target_properties(android-ssl PROPERTIES IMPORTED_LOCATION ${SSL_STATIC_LIB}) -set_target_properties(android-ssl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${SSL_INCLUDES}) - -add_library( - android-crypto STATIC IMPORTED -) -add_dependencies(android-crypto libssl) -set_target_properties(android-crypto PROPERTIES IMPORTED_LOCATION ${CRYPTO_STATIC_LIB}) -set_target_properties(android-crypto PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${SSL_INCLUDES}) - -# Build CURL -set(CURL_DIR ${CMAKE_CURRENT_LIST_DIR}/mapbox-gl-native-curl/curl) -set(CURL_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) -set(CURL_INCLUDES ${CURL_BIN_DIR}/include) -file(MAKE_DIRECTORY ${CURL_INCLUDES}) -set(CURL_STATIC_LIB ${CURL_BIN_DIR}/lib/libcurl.a) - -ExternalProject_Add( - libcurl - PREFIX ${CURL_BIN_DIR} - DEPENDS libssl - SOURCE_DIR ${CURL_DIR} - DOWNLOAD_COMMAND - GIT_REPOSITORY https://github.com/curl/curl.git - GIT_TAG curl-7_69_0 - GIT_SHALLOW true - GIT_PROGRESS true - UPDATE_COMMAND - cd - ${CURL_DIR} - && - echo - "Starting curl $-${ANDROID_ABI} build" - && - ${CURL_DIR}/buildconf - CONFIGURE_COMMAND - echo - "Configuring curl $-${ANDROID_ABI}" - && - CC=${CC} - CXX=${CXX} - AR=${AR} - RANLIB=${RANLIB} - ${CURL_DIR}/configure - --host=${TRIPLE} - --target=${TRIPLE} - --with-sysroot=${TOOLCHAIN}/sysroot - --with-ssl=${SSL_BIN_DIR} - --enable-static - --disable-shared - --disable-verbose - --enable-threaded-resolver - --enable-libgcc - --enable-ipv6 - --disable-manual - --with-pic - --prefix=${CURL_BIN_DIR} - BUILD_COMMAND - echo - "Building curl $-${ANDROID_ABI}" - && - make - -j${NPROC} - INSTALL_COMMAND - echo - "Installing curl $-${ANDROID_ABI}" - && - make - install - BUILD_BYPRODUCTS ${CURL_STATIC_LIB} -) - -add_library( - mbgl-vendor-curl STATIC IMPORTED -) -add_dependencies(libcurl libssl) -add_dependencies( - mbgl-vendor-curl - libcurl - android-ssl - android-crypto -) -set_target_properties(mbgl-vendor-curl PROPERTIES IMPORTED_LOCATION ${CURL_STATIC_LIB}) -set_target_properties(mbgl-vendor-curl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CURL_INCLUDES}) -set_target_properties(mbgl-vendor-curl PROPERTIES INTERFACE_COMPILE_DEFINITIONS CURL_STATICLIB) -set_target_properties(mbgl-vendor-curl PROPERTIES INTERFACE_LINK_LIBRARIES "-l${SSL_STATIC_LIB} -l${CRYPTO_STATIC_LIB}") diff --git a/vendor/mapbox-gl-native-curl b/vendor/mapbox-gl-native-curl deleted file mode 160000 index 674a741b1..000000000 --- a/vendor/mapbox-gl-native-curl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 674a741b1bfa6f7c6e8bb694ba0295365c8e2096