aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/scripts/toolchains/android.cmake
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/scripts/toolchains/android.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/scripts/toolchains/android.cmake')
-rw-r--r--vcpkg/scripts/toolchains/android.cmake78
1 files changed, 78 insertions, 0 deletions
diff --git a/vcpkg/scripts/toolchains/android.cmake b/vcpkg/scripts/toolchains/android.cmake
new file mode 100644
index 0000000..3ec3391
--- /dev/null
+++ b/vcpkg/scripts/toolchains/android.cmake
@@ -0,0 +1,78 @@
+set(ANDROID_CPP_FEATURES "rtti exceptions" CACHE STRING "")
+set(CMAKE_SYSTEM_NAME Android CACHE STRING "")
+set(ANDROID_TOOLCHAIN clang CACHE STRING "")
+set(ANDROID_NATIVE_API_LEVEL ${CMAKE_SYSTEM_VERSION} CACHE STRING "")
+if(CMAKE_SYSTEM_VERSION MATCHES "^[0-9]+$")
+ set(ANDROID_PLATFORM android-${CMAKE_SYSTEM_VERSION} CACHE STRING "")
+else()
+ set(ANDROID_PLATFORM ${CMAKE_SYSTEM_VERSION} CACHE STRING "")
+endif()
+set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang CACHE STRING "")
+
+if (VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ set(ANDROID_STL c++_shared CACHE STRING "")
+else()
+ set(ANDROID_STL c++_static CACHE STRING "")
+endif()
+
+if(DEFINED ENV{ANDROID_NDK_HOME})
+ set(ANDROID_NDK_HOME $ENV{ANDROID_NDK_HOME})
+else()
+ set(ANDROID_NDK_HOME "$ENV{ProgramData}/Microsoft/AndroidNDK64/android-ndk-r13b/")
+ if(NOT EXISTS "${ANDROID_NDK_HOME}")
+ # Use Xamarin default installation folder
+ set(ANDROID_NDK_HOME "$ENV{ProgramFiles\(x86\)}/Android/android-sdk/ndk-bundle")
+ endif()
+endif()
+
+if(NOT EXISTS "${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake")
+ message(FATAL_ERROR "Could not find android ndk. Searched at ${ANDROID_NDK_HOME}")
+endif()
+
+include("${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake")
+
+# find_library must ignore host libs
+if(ANDROID_TOOLCHAIN_ROOT AND EXISTS "${ANDROID_TOOLCHAIN_ROOT}/lib")
+ list(APPEND CMAKE_SYSTEM_IGNORE_PATH "${ANDROID_TOOLCHAIN_ROOT}/lib")
+endif()
+
+if(NOT _VCPKG_ANDROID_TOOLCHAIN)
+ set(_VCPKG_ANDROID_TOOLCHAIN 1)
+
+ if(POLICY CMP0056)
+ cmake_policy(SET CMP0056 NEW)
+ endif()
+ if(POLICY CMP0066)
+ cmake_policy(SET CMP0066 NEW)
+ endif()
+ if(POLICY CMP0067)
+ cmake_policy(SET CMP0067 NEW)
+ endif()
+ if(POLICY CMP0137)
+ cmake_policy(SET CMP0137 NEW)
+ endif()
+ list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
+ VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE
+ VCPKG_C_FLAGS VCPKG_CXX_FLAGS
+ VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG
+ VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE
+ VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG
+ )
+
+ string(APPEND CMAKE_C_FLAGS " -fPIC ${VCPKG_C_FLAGS} ")
+ string(APPEND CMAKE_CXX_FLAGS " -fPIC ${VCPKG_CXX_FLAGS} ")
+ string(APPEND CMAKE_C_FLAGS_DEBUG " ${VCPKG_C_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${VCPKG_CXX_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_C_FLAGS_RELEASE " ${VCPKG_C_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_CXX_FLAGS_RELEASE " ${VCPKG_CXX_FLAGS_RELEASE} ")
+
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS " ${VCPKG_LINKER_FLAGS} ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${VCPKG_LINKER_FLAGS} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS " ${VCPKG_LINKER_FLAGS} ")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG " ${VCPKG_LINKER_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG " ${VCPKG_LINKER_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG " ${VCPKG_LINKER_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE " ${VCPKG_LINKER_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE " ${VCPKG_LINKER_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE " ${VCPKG_LINKER_FLAGS_RELEASE} ")
+endif()