From 86f4d00f1c40a92c3ae2265f27be1568a8a54c81 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Thu, 23 May 2024 08:02:49 +0200 Subject: [PATCH 03/11] Update android ndk rename arm -> armv7a --- contrib/depends/hosts/android.mk | 18 ++++++++++++---- contrib/depends/packages/android_ndk.mk | 28 ++++++++++++++++++------- contrib/depends/packages/boost.mk | 1 + contrib/depends/packages/openssl.mk | 2 +- contrib/depends/toolchain.cmake.in | 13 ++++++------ 5 files changed, 44 insertions(+), 18 deletions(-) diff --git a/contrib/depends/hosts/android.mk b/contrib/depends/hosts/android.mk index d6f8b99dd..827103c36 100644 --- a/contrib/depends/hosts/android.mk +++ b/contrib/depends/hosts/android.mk @@ -1,12 +1,22 @@ ANDROID_API=21 - -ifeq ($(host_arch),arm) -host_toolchain=arm-linux-androideabi- +host_toolchain=nonexistent +ifeq ($(host_arch),armv7a) +host_toolchain=armv7a-linux-androideabi${ANDROID_API}- +endif +ifeq ($(host_arch),x86_64) +host_toolchain=x86_64-linux-android${ANDROID_API}- +endif +ifeq ($(host_arch),i686) +host_toolchain=i686-linux-android${ANDROID_API}- +endif +ifeq ($(host_arch),aarch64) +host_toolchain=aarch64-linux-android${ANDROID_API}- endif android_CC=$(host_toolchain)clang android_CXX=$(host_toolchain)clang++ -android_RANLIB=: +android_RANLIB=llvm-ranlib +android_AR=llvm-ar android_CFLAGS=-pipe android_CXXFLAGS=$(android_CFLAGS) diff --git a/contrib/depends/packages/android_ndk.mk b/contrib/depends/packages/android_ndk.mk index 9b8a5332f..2c2914ec2 100644 --- a/contrib/depends/packages/android_ndk.mk +++ b/contrib/depends/packages/android_ndk.mk @@ -1,12 +1,16 @@ package=android_ndk -$(package)_version=17b +$(package)_version=26d $(package)_download_path=https://dl.google.com/android/repository/ -$(package)_file_name=android-ndk-r$($(package)_version)-linux-x86_64.zip -$(package)_sha256_hash=5dfbbdc2d3ba859fed90d0e978af87c71a91a5be1f6e1c40ba697503d48ccecd +$(package)_file_name=android-ndk-r$($(package)_version)-linux.zip +$(package)_sha256_hash=eefeafe7ccf177de7cc57158da585e7af119bb7504a63604ad719e4b2a328b54 + +$(package)_version_apiversion=21 define $(package)_set_vars -$(package)_config_opts_arm=--arch arm +$(package)_config_opts_armv7a=--arch arm $(package)_config_opts_aarch64=--arch arm64 +$(package)_config_opts_x86_64=--arch x86_64 +$(package)_config_opts_i686=--arch x86 endef define $(package)_extract_cmds @@ -14,9 +18,19 @@ define $(package)_extract_cmds unzip -q $($(1)_source_dir)/$($(package)_file_name) endef +# arm-linux-androideabi-ar - openssl workaround + define $(package)_stage_cmds - android-ndk-r$($(package)_version)/build/tools/make_standalone_toolchain.py --api 21 \ - --install-dir $(build_prefix) --stl=libc++ $($(package)_config_opts) &&\ - mv $(build_prefix) $($(package)_staging_dir)/$(host_prefix) + mkdir -p $(build_prefix) &&\ + echo $(build_prefix)/toolchain && \ + android-ndk-r$($(package)_version)/build/tools/make_standalone_toolchain.py --api $($(package)_version_apiversion) \ + --install-dir $(build_prefix)/toolchain --stl=libc++ $($(package)_config_opts) &&\ + mv $(build_prefix)/toolchain $($(package)_staging_dir)/$(host_prefix)/native && \ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ranlib &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ranlib &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ranlib endef diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk index fd06c5393..c17e863cc 100644 --- a/contrib/depends/packages/boost.mk +++ b/contrib/depends/packages/boost.mk @@ -25,6 +25,7 @@ $(package)_archiver_darwin=$($(package)_libtool) $(package)_config_libraries=chrono,filesystem,program_options,system,thread,test,date_time,regex,serialization,locale $(package)_cxxflags=-std=c++11 $(package)_cxxflags_linux=-fPIC +$(package)_cxxflags_android=-fPIC $(package)_cxxflags_freebsd=-fPIC endef diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk index a157762c7..2430f6495 100644 --- a/contrib/depends/packages/openssl.mk +++ b/contrib/depends/packages/openssl.mk @@ -34,7 +34,7 @@ $(package)_config_opts_x86_64_linux=linux-x86_64 $(package)_config_opts_i686_linux=linux-generic32 $(package)_config_opts_arm_linux=linux-generic32 $(package)_config_opts_aarch64_linux=linux-generic64 -$(package)_config_opts_arm_android=--static android-arm +$(package)_config_opts_armv7a_android=--static android-arm $(package)_config_opts_aarch64_android=--static android-arm64 $(package)_config_opts_aarch64_darwin=darwin64-arm64-cc $(package)_config_opts_riscv64_linux=linux-generic64 diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index f118c754e..cc1d9b5c5 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -100,20 +100,21 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") SET(LLVM_ENABLE_PIE OFF) elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") SET(ANDROID TRUE) - if(ARCHITECTURE STREQUAL "arm") + if(ARCHITECTURE STREQUAL "armv7a") SET(CMAKE_ANDROID_ARCH_ABI "armeabi-v7a") SET(CMAKE_SYSTEM_PROCESSOR "armv7-a") SET(CMAKE_ANDROID_ARM_MODE ON) - SET(CMAKE_C_COMPILER_TARGET arm-linux-androideabi) - SET(CMAKE_CXX_COMPILER_TARGET arm-linux-androideabi) - SET(_CMAKE_TOOLCHAIN_PREFIX arm-linux-androideabi-) + SET(CMAKE_C_COMPILER_TARGET armv7a-linux-androideabi21) + SET(CMAKE_CXX_COMPILER_TARGET armv7a-linux-androideabi21) + SET(_CMAKE_TOOLCHAIN_PREFIX armv7a-linux-androideabi21-) elseif(ARCHITECTURE STREQUAL "aarch64") SET(CMAKE_ANDROID_ARCH_ABI "arm64-v8a") SET(CMAKE_SYSTEM_PROCESSOR "aarch64") endif() SET(CMAKE_ANDROID_STANDALONE_TOOLCHAIN @prefix@/native) - SET(CMAKE_C_COMPILER "${_CMAKE_TOOLCHAIN_PREFIX}clang") - SET(CMAKE_CXX_COMPILER "${_CMAKE_TOOLCHAIN_PREFIX}clang++") + SET(_ANDROID_STANDALONE_TOOLCHAIN_API 21) + SET(CMAKE_C_COMPILER @CC@) + SET(CMAKE_CXX_COMPILER @CXX@) else() SET(CMAKE_C_COMPILER @CC@) SET(CMAKE_CXX_COMPILER @CXX@) -- 2.39.5 (Apple Git-154)