diff options
author | Haibo Huang <hhb@google.com> | 2020-10-30 00:49:04 (GMT) |
---|---|---|
committer | Haibo Huang <hhb@google.com> | 2020-11-06 03:45:28 (GMT) |
commit | 94d87afece666aeb0b062de7d50490495a533980 (patch) | |
tree | 845a379ed159920fb998a69bf5ea071ca3716ed2 /Modules | |
parent | 85e5139abac3c3fc1aba2d796a4020e0a6e95115 (diff) | |
download | CMake-94d87afece666aeb0b062de7d50490495a533980.zip CMake-94d87afece666aeb0b062de7d50490495a533980.tar.gz CMake-94d87afece666aeb0b062de7d50490495a533980.tar.bz2 |
Android: allow NDK to control cflags / ldflags
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/Platform/Android-Clang.cmake | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/Modules/Platform/Android-Clang.cmake b/Modules/Platform/Android-Clang.cmake index 5c1fe87..3a279ca 100644 --- a/Modules/Platform/Android-Clang.cmake +++ b/Modules/Platform/Android-Clang.cmake @@ -13,6 +13,17 @@ if(CMAKE_ANDROID_NDK) include(${CMAKE_ANDROID_NDK}/build/cmake/hooks/pre/Android-Clang.cmake OPTIONAL) endif() +# Load flags from NDK. This file may provides the following variables: +# _ANDROID_NDK_INIT_CFLAGS +# _ANDROID_NDK_INIT_CFLAGS_DEBUG +# _ANDROID_NDK_INIT_CFLAGS_RELEASE +# _ANDROID_NDK_INIT_LDFLAGS +# _ANDROID_NDK_INIT_LDFLAGS_EXE +if(CMAKE_ANDROID_NDK) + include(${CMAKE_ANDROID_NDK}/build/cmake/flags.cmake OPTIONAL + RESULT_VARIABLE _INCLUDED_FLAGS) +endif() + # Support for NVIDIA Nsight Tegra Visual Studio Edition was previously # implemented in the CMake VS IDE generators. Avoid interfering with # that functionality for now. Later we may try to integrate this. @@ -40,13 +51,22 @@ endif() include(Platform/Android-Common) -# The NDK toolchain configuration files at: -# -# <ndk>/[build/core/]toolchains/*-clang*/setup.mk -# -# contain logic to set LLVM_TRIPLE for Clang-based toolchains for each target. -# We need to produce the same target here to produce compatible binaries. -include(Platform/Android/abi-${CMAKE_ANDROID_ARCH_ABI}-Clang) +if(_INCLUDED_FLAGS) + # NDK provides the flags. + set(_ANDROID_ABI_INIT_CFLAGS "${_ANDROID_NDK_INIT_CFLAGS}") + set(_ANDROID_ABI_INIT_CFLAGS_DEBUG "${_ANDROID_NDK_INIT_CFLAGS_DEBUG}") + set(_ANDROID_ABI_INIT_CFLAGS_RELEASE "${_ANDROID_NDK_INIT_CFLAGS_RELEASE}") + set(_ANDROID_ABI_INIT_LDFLAGS "${_ANDROID_NDK_INIT_LDFLAGS}") + set(_ANDROID_ABI_INIT_EXE_LDFLAGS "${_ANDROID_NDK_INIT_LDFLAGS_EXE}") +else() + # The NDK toolchain configuration files at: + # + # <ndk>/[build/core/]toolchains/*-clang*/setup.mk + # + # contain logic to set LLVM_TRIPLE for Clang-based toolchains for each target. + # We need to produce the same target here to produce compatible binaries. + include(Platform/Android/abi-${CMAKE_ANDROID_ARCH_ABI}-Clang) +endif() macro(__android_compiler_clang lang) if(NOT "x${lang}" STREQUAL "xASM") |