diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/scripts/toolchains/android.cmake | |
Diffstat (limited to 'vcpkg/scripts/toolchains/android.cmake')
| -rw-r--r-- | vcpkg/scripts/toolchains/android.cmake | 78 |
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()
|