Android: allow NDK to control cflags / ldflags

This commit is contained in:
Haibo Huang
2020-10-29 17:49:04 -07:00
parent 85e5139aba
commit 94d87afece

View File

@@ -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")