diff --git a/cmake/toolchains/android-ndk-common.cmake b/cmake/toolchains/android-ndk-common.cmake new file mode 100644 index 0000000..58b27a6 --- /dev/null +++ b/cmake/toolchains/android-ndk-common.cmake @@ -0,0 +1,11 @@ +if(DRACO_CMAKE_TOOLCHAINS_ANDROID_NDK_COMMON_CMAKE_) + return() +endif() +set(DRACO_CMAKE_TOOLCHAINS_ANDROID_NDK_COMMON_CMAKE_ 1) + +include("${CMAKE_CURRENT_LIST_DIR}/../util.cmake") + +require_variable(CMAKE_ANDROID_NDK) +set(CMAKE_SYSTEM_NAME Android) +set_variable_if_unset(CMAKE_ANDROID_STL_TYPE c++_static) +set_variable_if_unset(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang) diff --git a/cmake/toolchains/arm64-android-ndk-libcpp.cmake b/cmake/toolchains/arm64-android-ndk-libcpp.cmake index 293e029..efc9cd1 100644 --- a/cmake/toolchains/arm64-android-ndk-libcpp.cmake +++ b/cmake/toolchains/arm64-android-ndk-libcpp.cmake @@ -4,9 +4,7 @@ endif() set(DRACO_CMAKE_TOOLCHAINS_ARM64_ANDROID_NDK_LIBCPP_CMAKE_ 1) include("${CMAKE_CURRENT_LIST_DIR}/../util.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/android-ndk-common.cmake") -set(CMAKE_SYSTEM_NAME Android) set(CMAKE_ANDROID_ARCH_ABI arm64-v8a) -require_variable(CMAKE_ANDROID_NDK) set_variable_if_unset(CMAKE_SYSTEM_VERSION 21) -set_variable_if_unset(CMAKE_ANDROID_STL_TYPE c++_static) diff --git a/cmake/toolchains/armv7-android-ndk-libcpp.cmake b/cmake/toolchains/armv7-android-ndk-libcpp.cmake index b4b517c..a1b0a6b 100644 --- a/cmake/toolchains/armv7-android-ndk-libcpp.cmake +++ b/cmake/toolchains/armv7-android-ndk-libcpp.cmake @@ -4,9 +4,7 @@ endif() set(DRACO_CMAKE_TOOLCHAINS_ARMV7_ANDROID_NDK_LIBCPP_CMAKE_ 1) include("${CMAKE_CURRENT_LIST_DIR}/../util.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/android-ndk-common.cmake") -set(CMAKE_SYSTEM_NAME Android) set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a) -require_variable(CMAKE_ANDROID_NDK) set_variable_if_unset(CMAKE_SYSTEM_VERSION 18) -set_variable_if_unset(CMAKE_ANDROID_STL_TYPE c++_static) diff --git a/cmake/toolchains/default-android-ndk-libcpp.cmake b/cmake/toolchains/default-android-ndk-libcpp.cmake new file mode 100644 index 0000000..cd1d7ca --- /dev/null +++ b/cmake/toolchains/default-android-ndk-libcpp.cmake @@ -0,0 +1,7 @@ +if(DRACO_CMAKE_TOOLCHAINS_DEFAULT_ANDROID_NDK_LIBCPP_CMAKE_) + return() +endif() +set(DRACO_CMAKE_TOOLCHAINS_DEFAULT_ANDROID_NDK_LIBCPP_CMAKE_ 1) + +include("${CMAKE_CURRENT_LIST_DIR}/../util.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/android-ndk-common.cmake") diff --git a/cmake/toolchains/x86-android-ndk-libcpp.cmake b/cmake/toolchains/x86-android-ndk-libcpp.cmake index ba0778d..38e7d31 100644 --- a/cmake/toolchains/x86-android-ndk-libcpp.cmake +++ b/cmake/toolchains/x86-android-ndk-libcpp.cmake @@ -4,9 +4,7 @@ endif() set(DRACO_CMAKE_TOOLCHAINS_X86_ANDROID_NDK_LIBCPP_CMAKE_ 1) include("${CMAKE_CURRENT_LIST_DIR}/../util.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/android-ndk-common.cmake") -set(CMAKE_SYSTEM_NAME Android) set(CMAKE_ANDROID_ARCH_ABI x86) -require_variable(CMAKE_ANDROID_NDK) set_variable_if_unset(CMAKE_SYSTEM_VERSION 18) -set_variable_if_unset(CMAKE_ANDROID_STL_TYPE c++_static) diff --git a/cmake/toolchains/x86_64-android-ndk-libcpp.cmake b/cmake/toolchains/x86_64-android-ndk-libcpp.cmake index 18bba4f..2230e50 100644 --- a/cmake/toolchains/x86_64-android-ndk-libcpp.cmake +++ b/cmake/toolchains/x86_64-android-ndk-libcpp.cmake @@ -4,9 +4,7 @@ endif() set(DRACO_CMAKE_TOOLCHAINS_X86_64_ANDROID_NDK_LIBCPP_CMAKE_ 1) include("${CMAKE_CURRENT_LIST_DIR}/../util.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/android-ndk-common.cmake") -set(CMAKE_SYSTEM_NAME Android) set(CMAKE_ANDROID_ARCH_ABI x86_64) -require_variable(CMAKE_ANDROID_NDK) set_variable_if_unset(CMAKE_SYSTEM_VERSION 21) -set_variable_if_unset(CMAKE_ANDROID_STL_TYPE c++_static) diff --git a/cmake/util.cmake b/cmake/util.cmake index d5333ef..8c82f46 100644 --- a/cmake/util.cmake +++ b/cmake/util.cmake @@ -63,11 +63,11 @@ macro(require_variable var_name) set_variable_if_unset(${var_name} "") endmacro() -# Sets $var_name to $default_value if not already set in the environment. +# Sets $var_name to $default_value if not already set. macro(set_variable_if_unset var_name default_value) if(NOT "$ENV{${var_name}}" STREQUAL "") set(${var_name} $ENV{${var_name}}) - else() + elseif(NOT ${var_name}) set(${var_name} ${default_value}) endif() endmacro()