Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
e640985e
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e640985e
编写于
4月 01, 2013
作者:
A
Andrey Kamaev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update Android toolchain to the latest version supporting NDK r8e
上级
2a1cf23f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
111 addition
and
46 deletion
+111
-46
android/android.toolchain.cmake
android/android.toolchain.cmake
+111
-46
未找到文件。
android/android.toolchain.cmake
浏览文件 @
e640985e
# Copyright (c) 2010-2011, Ethan Rublee
# Copyright (c) 2011-201
2
, Andrey Kamaev
# Copyright (c) 2011-201
3
, Andrey Kamaev
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
...
...
@@ -281,8 +281,14 @@
# [+] updated for NDK r8c
# [+] added support for clang compiler
# - December 2012
# [+] suppress warning about unused CMAKE_TOOLCHAIN_FILE variable
# [+] adjust API level to closest compatible as NDK does
# [~] fixed ccache full path search
# [+] updated for NDK r8d
# [~] compiler options are aligned with NDK r8d
# - March 2013
# [+] updated for NDK r8e (x86 version)
# [+] support x86_64 version of NDK
# ------------------------------------------------------------------------------
cmake_minimum_required
(
VERSION 2.6.3
)
...
...
@@ -292,6 +298,10 @@ if( DEFINED CMAKE_CROSSCOMPILING )
return
()
endif
()
if
(
CMAKE_TOOLCHAIN_FILE
)
# touch toolchain variable only to suppress "unused variable" warning
endif
()
get_property
(
_CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE
)
if
(
_CMAKE_IN_TRY_COMPILE
)
include
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/../android.toolchain.config.cmake"
OPTIONAL
)
...
...
@@ -305,7 +315,7 @@ set( CMAKE_SYSTEM_VERSION 1 )
# rpath makes low sence for Android
set
(
CMAKE_SKIP_RPATH TRUE CACHE BOOL
"If set, runtime paths are not added when using shared libraries."
)
set
(
ANDROID_SUPPORTED_NDK_VERSIONS
${
ANDROID_EXTRA_NDK_VERSIONS
}
-r8d -r8c -r8b -r8 -r7c -r7b -r7 -r6b -r6 -r5c -r5b -r5
""
)
set
(
ANDROID_SUPPORTED_NDK_VERSIONS
${
ANDROID_EXTRA_NDK_VERSIONS
}
-r8
e -r8
d -r8c -r8b -r8 -r7c -r7b -r7 -r6b -r6 -r5c -r5b -r5
""
)
if
(
NOT DEFINED ANDROID_NDK_SEARCH_PATHS
)
if
(
CMAKE_HOST_WIN32
)
file
(
TO_CMAKE_PATH
"$ENV{PROGRAMFILES}"
ANDROID_NDK_SEARCH_PATHS
)
...
...
@@ -449,19 +459,32 @@ if( ANDROID_FORBID_SYGWIN )
endif
()
endif
()
# detect current host platform
if
(
NOT DEFINED ANDROID_NDK_HOST_X64 AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES
"amd64|x86_64|AMD64"
)
set
(
ANDROID_NDK_HOST_X64 1 CACHE BOOL
"Try to use 64-bit compiler toolchain"
)
mark_as_advanced
(
ANDROID_NDK_HOST_X64
)
endif
()
set
(
TOOL_OS_SUFFIX
""
)
if
(
CMAKE_HOST_APPLE
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
"darwin-x86"
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
"darwin-x86_64"
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME2
"darwin-x86"
)
elseif
(
CMAKE_HOST_WIN32
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
"windows"
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
"windows-x86_64"
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME2
"windows"
)
set
(
TOOL_OS_SUFFIX
".exe"
)
elseif
(
CMAKE_HOST_UNIX
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
"linux-x86"
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
"linux-x86_64"
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME2
"linux-x86"
)
else
()
message
(
FATAL_ERROR
"Cross-compilation on your platform is not supported by this cmake toolchain"
)
endif
()
if
(
NOT ANDROID_NDK_HOST_X64
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
${
ANDROID_NDK_HOST_SYSTEM_NAME2
}
)
endif
()
# see if we have path to Android NDK
__INIT_VARIABLE
(
ANDROID_NDK PATH ENV_ANDROID_NDK
)
if
(
NOT ANDROID_NDK
)
...
...
@@ -509,7 +532,8 @@ if( ANDROID_NDK )
endif
()
set
(
ANDROID_NDK
"
${
ANDROID_NDK
}
"
CACHE INTERNAL
"Path of the Android NDK"
FORCE
)
set
(
BUILD_WITH_ANDROID_NDK True
)
file
(
STRINGS
"
${
ANDROID_NDK
}
/RELEASE.TXT"
ANDROID_NDK_RELEASE LIMIT_COUNT 1 REGEX r[0-9]+[a-z]?
)
file
(
STRINGS
"
${
ANDROID_NDK
}
/RELEASE.TXT"
ANDROID_NDK_RELEASE_FULL LIMIT_COUNT 1 REGEX r[0-9]+[a-z]?
)
string
(
REGEX MATCH r[0-9]+[a-z]? ANDROID_NDK_RELEASE
"
${
ANDROID_NDK_RELEASE_FULL
}
"
)
elseif
(
ANDROID_STANDALONE_TOOLCHAIN
)
get_filename_component
(
ANDROID_STANDALONE_TOOLCHAIN
"
${
ANDROID_STANDALONE_TOOLCHAIN
}
"
ABSOLUTE
)
# try to detect change
...
...
@@ -563,22 +587,21 @@ if( BUILD_WITH_STANDALONE_TOOLCHAIN )
endif
()
endif
()
macro
(
__GLOB_NDK_TOOLCHAINS __availableToolchainsVar
)
foreach
(
__toolchain
${${
__availableToolchains
Var
}}
)
macro
(
__GLOB_NDK_TOOLCHAINS __availableToolchainsVar
__availableToolchainsLst __host_system_name
)
foreach
(
__toolchain
${${
__availableToolchains
Lst
}}
)
if
(
"
${
__toolchain
}
"
MATCHES
"-clang3[.][0-9]$"
AND NOT EXISTS
"
${
ANDROID_NDK
}
/toolchains/
${
__toolchain
}
/prebuilt/"
)
string
(
REGEX REPLACE
"-clang3[.][0-9]$"
"-4.6"
__gcc_toolchain
"
${
__toolchain
}
"
)
else
()
set
(
__gcc_toolchain
"
${
__toolchain
}
"
)
endif
()
__DETECT_TOOLCHAIN_MACHINE_NAME
(
__machine
"
${
ANDROID_NDK
}
/toolchains/
${
__gcc_toolchain
}
/prebuilt/
${
ANDROID_NDK_HOST_SYSTEM_NAME
}
"
)
__DETECT_TOOLCHAIN_MACHINE_NAME
(
__machine
"
${
ANDROID_NDK
}
/toolchains/
${
__gcc_toolchain
}
/prebuilt/
${
__host_system_name
}
"
)
if
(
__machine
)
string
(
REGEX MATCH
"[0-9]+[.][0-9]+([.][0-9]+)?$"
__version
"
${
__gcc_toolchain
}
"
)
string
(
REGEX MATCH
"^[^-]+"
__arch
"
${
__gcc_toolchain
}
"
)
list
(
APPEND __availableToolchainMachines
"
${
__machine
}
"
)
list
(
APPEND __availableToolchainArchs
"
${
__arch
}
"
)
list
(
APPEND __availableToolchainCompilerVersions
"
${
__version
}
"
)
else
()
list
(
REMOVE_ITEM
${
__availableToolchainsVar
}
"
${
__toolchain
}
"
)
list
(
APPEND
${
__availableToolchainsVar
}
"
${
__toolchain
}
"
)
endif
()
unset
(
__gcc_toolchain
)
endforeach
()
...
...
@@ -594,17 +617,29 @@ if( BUILD_WITH_ANDROID_NDK )
set
(
__availableToolchainCompilerVersions
""
)
if
(
ANDROID_TOOLCHAIN_NAME AND EXISTS
"
${
ANDROID_NDK
}
/toolchains/
${
ANDROID_TOOLCHAIN_NAME
}
/"
)
# do not go through all toolchains if we know the name
set
(
__availableToolchains
"
${
ANDROID_TOOLCHAIN_NAME
}
"
)
__GLOB_NDK_TOOLCHAINS
(
__availableToolchains
)
set
(
__availableToolchainsLst
"
${
ANDROID_TOOLCHAIN_NAME
}
"
)
__GLOB_NDK_TOOLCHAINS
(
__availableToolchains __availableToolchainsLst
${
ANDROID_NDK_HOST_SYSTEM_NAME
}
)
if
(
NOT __availableToolchains AND NOT ANDROID_NDK_HOST_SYSTEM_NAME STREQUAL ANDROID_NDK_HOST_SYSTEM_NAME2
)
__GLOB_NDK_TOOLCHAINS
(
__availableToolchains __availableToolchainsLst
${
ANDROID_NDK_HOST_SYSTEM_NAME2
}
)
if
(
__availableToolchains
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
${
ANDROID_NDK_HOST_SYSTEM_NAME2
}
)
endif
()
endif
()
endif
()
if
(
NOT __availableToolchains
)
file
(
GLOB __availableToolchains RELATIVE
"
${
ANDROID_NDK
}
/toolchains"
"
${
ANDROID_NDK
}
/toolchains/*"
)
file
(
GLOB __availableToolchains
Lst
RELATIVE
"
${
ANDROID_NDK
}
/toolchains"
"
${
ANDROID_NDK
}
/toolchains/*"
)
if
(
__availableToolchains
)
list
(
SORT __availableToolchains
)
# we need clang to go after gcc
list
(
SORT __availableToolchainsLst
)
# we need clang to go after gcc
endif
()
__LIST_FILTER
(
__availableToolchainsLst
"^[.]"
)
__LIST_FILTER
(
__availableToolchainsLst
"llvm"
)
__GLOB_NDK_TOOLCHAINS
(
__availableToolchains __availableToolchainsLst
${
ANDROID_NDK_HOST_SYSTEM_NAME
}
)
if
(
NOT __availableToolchains AND NOT ANDROID_NDK_HOST_SYSTEM_NAME STREQUAL ANDROID_NDK_HOST_SYSTEM_NAME2
)
__GLOB_NDK_TOOLCHAINS
(
__availableToolchains __availableToolchainsLst
${
ANDROID_NDK_HOST_SYSTEM_NAME2
}
)
if
(
__availableToolchains
)
set
(
ANDROID_NDK_HOST_SYSTEM_NAME
${
ANDROID_NDK_HOST_SYSTEM_NAME2
}
)
endif
()
endif
()
__LIST_FILTER
(
__availableToolchains
"^[.]"
)
__LIST_FILTER
(
__availableToolchains
"llvm"
)
__GLOB_NDK_TOOLCHAINS
(
__availableToolchains
)
endif
()
if
(
NOT __availableToolchains
)
message
(
FATAL_ERROR
"Could not find any working toolchain in the NDK. Probably your Android NDK is broken."
)
...
...
@@ -617,11 +652,11 @@ set( __uniqToolchainArchNames ${__availableToolchainArchs} )
list
(
REMOVE_DUPLICATES __uniqToolchainArchNames
)
list
(
SORT __uniqToolchainArchNames
)
foreach
(
__arch
${
__uniqToolchainArchNames
}
)
list
(
APPEND ANDROID_SUPPORTED_ABIS
${
ANDROID_SUPPORTED_ABIS_
${
__arch
}}
)
list
(
APPEND ANDROID_SUPPORTED_ABIS
${
ANDROID_SUPPORTED_ABIS_
${
__arch
}}
)
endforeach
()
unset
(
__uniqToolchainArchNames
)
if
(
NOT ANDROID_SUPPORTED_ABIS
)
message
(
FATAL_ERROR
"No one of known Android ABIs is supported by this cmake toolchain."
)
message
(
FATAL_ERROR
"No one of known Android ABIs is supported by this cmake toolchain."
)
endif
()
# choose target ABI
...
...
@@ -760,11 +795,22 @@ unset( __availableToolchainCompilerVersions )
# choose native API level
__INIT_VARIABLE
(
ANDROID_NATIVE_API_LEVEL ENV_ANDROID_NATIVE_API_LEVEL ANDROID_API_LEVEL ENV_ANDROID_API_LEVEL ANDROID_STANDALONE_TOOLCHAIN_API_LEVEL ANDROID_DEFAULT_NDK_API_LEVEL_
${
ANDROID_ARCH_NAME
}
ANDROID_DEFAULT_NDK_API_LEVEL
)
string
(
REGEX MATCH
"[0-9]+"
ANDROID_NATIVE_API_LEVEL
"
${
ANDROID_NATIVE_API_LEVEL
}
"
)
# TODO: filter out unsupported levels
# adjust API level
set
(
__real_api_level
${
ANDROID_DEFAULT_NDK_API_LEVEL_
${
ANDROID_ARCH_NAME
}}
)
foreach
(
__level
${
ANDROID_SUPPORTED_NATIVE_API_LEVELS
}
)
if
(
NOT __level GREATER ANDROID_NATIVE_API_LEVEL AND NOT __level LESS __real_api_level
)
set
(
__real_api_level
${
__level
}
)
endif
()
endforeach
()
if
(
__real_api_level AND NOT ANDROID_NATIVE_API_LEVEL EQUAL __real_api_level
)
message
(
STATUS
"Adjusting Android API level 'android-
${
ANDROID_NATIVE_API_LEVEL
}
' to 'android-
${
__real_api_level
}
'"
)
set
(
ANDROID_NATIVE_API_LEVEL
${
__real_api_level
}
)
endif
()
unset
(
__real_api_level
)
# validate
list
(
FIND ANDROID_SUPPORTED_NATIVE_API_LEVELS
"
${
ANDROID_NATIVE_API_LEVEL
}
"
__levelIdx
)
if
(
__levelIdx EQUAL -1
)
message
(
SEND_ERROR
"Specified Android native API level
(
${
ANDROID_NATIVE_API_LEVEL
}
)
is not supported by your NDK/toolchain."
)
message
(
SEND_ERROR
"Specified Android native API level
'android-
${
ANDROID_NATIVE_API_LEVEL
}
'
is not supported by your NDK/toolchain."
)
else
()
if
(
BUILD_WITH_ANDROID_NDK
)
__DETECT_NATIVE_API_LEVEL
(
__realApiLevel
"
${
ANDROID_NDK
}
/platforms/android-
${
ANDROID_NATIVE_API_LEVEL
}
/arch-
${
ANDROID_ARCH_NAME
}
/usr/include/android/api-level.h"
)
...
...
@@ -926,7 +972,7 @@ elseif( "${ANDROID_TOOLCHAIN_NAME}" MATCHES "-clang3[.][0-9]?$" )
string
(
REGEX MATCH
"3[.][0-9]$"
ANDROID_CLANG_VERSION
"
${
ANDROID_TOOLCHAIN_NAME
}
"
)
string
(
REGEX REPLACE
"-clang
${
ANDROID_CLANG_VERSION
}
$"
"-4.6"
ANDROID_GCC_TOOLCHAIN_NAME
"
${
ANDROID_TOOLCHAIN_NAME
}
"
)
if
(
NOT EXISTS
"
${
ANDROID_NDK
}
/toolchains/llvm-
${
ANDROID_CLANG_VERSION
}
/prebuilt/
${
ANDROID_NDK_HOST_SYSTEM_NAME
}
/bin/clang
${
TOOL_OS_SUFFIX
}
"
)
message
(
FATAL_ERROR
"Could not find the "
)
message
(
FATAL_ERROR
"Could not find the
Clang compiler driver
"
)
endif
()
set
(
ANDROID_COMPILER_IS_CLANG 1
)
set
(
ANDROID_CLANG_TOOLCHAIN_ROOT
"
${
ANDROID_NDK
}
/toolchains/llvm-
${
ANDROID_CLANG_VERSION
}
/prebuilt/
${
ANDROID_NDK_HOST_SYSTEM_NAME
}
"
)
...
...
@@ -1140,38 +1186,52 @@ endif()
# NDK flags
if
(
ARMEABI OR ARMEABI_V7A
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fpic -
D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__
"
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fpic -
funwind-tables
"
)
if
(
NOT ANDROID_FORCE_ARM_BUILD AND NOT ARMEABI_V6
)
# It is recommended to use the -mthumb compiler flag to force the generation
# of 16-bit Thumb-1 instructions (the default being 32-bit ARM ones).
set
(
ANDROID_CXX_FLAGS_RELEASE
"-mthumb"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-marm -finline-limit=64"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
"-mthumb -fomit-frame-pointer -fno-strict-aliasing"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-marm -fno-omit-frame-pointer -fno-strict-aliasing"
)
if
(
NOT ANDROID_COMPILER_IS_CLANG
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-finline-limit=64"
)
endif
()
else
()
# always compile ARMEABI_V6 in arm mode; otherwise there is no difference from ARMEABI
# O3 instead of O2/Os in release mode - like cmake sets for desktop gcc
set
(
ANDROID_CXX_FLAGS_RELEASE
"-marm"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-marm -finline-limit=300"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
"-marm -fomit-frame-pointer -fstrict-aliasing"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-marm -fno-omit-frame-pointer -fno-strict-aliasing"
)
if
(
NOT ANDROID_COMPILER_IS_CLANG
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-funswitch-loops -finline-limit=300"
)
endif
()
endif
()
elseif
(
X86
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-funwind-tables"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
""
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-finline-limit=300"
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-funwind-tables"
)
if
(
NOT ANDROID_COMPILER_IS_CLANG
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-funswitch-loops -finline-limit=300"
)
else
()
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fPIC"
)
endif
()
set
(
ANDROID_CXX_FLAGS_RELEASE
"-fomit-frame-pointer -fstrict-aliasing"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-fno-omit-frame-pointer -fno-strict-aliasing"
)
elseif
(
MIPS
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fpic -funwind-tables -fmessage-length=0 -fno-inline-functions-called-once -frename-registers"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
"-finline-limit=300 -fno-strict-aliasing"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-finline-functions -fgcse-after-reload -frerun-cse-after-loop"
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fpic -fno-strict-aliasing -finline-functions -ffunction-sections -funwind-tables -fmessage-length=0"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
"-fomit-frame-pointer"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"-fno-omit-frame-pointer"
)
if
(
NOT ANDROID_COMPILER_IS_CLANG
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
"
${
ANDROID_CXX_FLAGS_RELEASE
}
-funswitch-loops -finline-limit=300"
)
endif
()
elseif
()
set
(
ANDROID_CXX_FLAGS_RELEASE
""
)
set
(
ANDROID_CXX_FLAGS_DEBUG
""
)
endif
()
if
(
NOT X86
)
set
(
ANDROID_CXX_FLAGS
"-Wno-psabi
${
ANDROID_CXX_FLAGS
}
"
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fsigned-char"
)
# good/necessary when porting desktop libraries
if
(
NOT X86 AND NOT ANDROID_COMPILER_IS_CLANG
)
set
(
ANDROID_CXX_FLAGS
"-Wno-psabi
${
ANDROID_CXX_FLAGS
}
"
)
endif
()
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-fsigned-char"
)
# good/necessary when porting desktop libraries
set
(
ANDROID_CXX_FLAGS_RELEASE
"
${
ANDROID_CXX_FLAGS_RELEASE
}
-fomit-frame-pointer"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"
${
ANDROID_CXX_FLAGS_DEBUG
}
-fno-strict-aliasing -fno-omit-frame-pointer"
)
if
(
NOT ANDROID_COMPILER_VERSION VERSION_LESS
"4.6"
)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
-no-canonical-prefixes"
)
# see https://android-review.googlesource.com/#/c/47564/
endif
(
)
# ABI-specific flags
if
(
ARMEABI_V7A
)
...
...
@@ -1308,9 +1368,6 @@ if( ANDROID_COMPILER_IS_CLANG )
set
(
ANDROID_CXX_FLAGS
"-target
${
ANDROID_LLVM_TRIPLE
}
${
ANDROID_CXX_FLAGS
}
"
)
endif
()
if
(
BUILD_WITH_ANDROID_NDK
)
if
(
ANDROID_ARCH_NAME STREQUAL
"arm"
)
set
(
ANDROID_CXX_FLAGS
"-isystem
${
ANDROID_CLANG_TOOLCHAIN_ROOT
}
/lib/clang/
${
ANDROID_CLANG_VERSION
}
/include
${
ANDROID_CXX_FLAGS
}
"
)
endif
()
set
(
ANDROID_CXX_FLAGS
"-gcc-toolchain
${
ANDROID_TOOLCHAIN_ROOT
}
${
ANDROID_CXX_FLAGS
}
"
)
endif
()
endif
()
...
...
@@ -1326,6 +1383,12 @@ set( CMAKE_SHARED_LINKER_FLAGS "" CACHE STRING "shared li
set
(
CMAKE_MODULE_LINKER_FLAGS
""
CACHE STRING
"module linker flags"
)
set
(
CMAKE_EXE_LINKER_FLAGS
"-Wl,-z,nocopyreloc"
CACHE STRING
"executable linker flags"
)
# put flags to cache (for debug purpose only)
set
(
ANDROID_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
"
CACHE INTERNAL
"Android specific c/c++ flags"
)
set
(
ANDROID_CXX_FLAGS_RELEASE
"
${
ANDROID_CXX_FLAGS_RELEASE
}
"
CACHE INTERNAL
"Android specific c/c++ Release flags"
)
set
(
ANDROID_CXX_FLAGS_DEBUG
"
${
ANDROID_CXX_FLAGS_DEBUG
}
"
CACHE INTERNAL
"Android specific c/c++ Debug flags"
)
set
(
ANDROID_LINKER_FLAGS
"
${
ANDROID_LINKER_FLAGS
}
"
CACHE INTERNAL
"Android specific c/c++ linker flags"
)
# finish flags
set
(
CMAKE_CXX_FLAGS
"
${
ANDROID_CXX_FLAGS
}
${
CMAKE_CXX_FLAGS
}
"
)
set
(
CMAKE_C_FLAGS
"
${
ANDROID_CXX_FLAGS
}
${
CMAKE_C_FLAGS
}
"
)
...
...
@@ -1456,6 +1519,7 @@ endmacro()
if
(
NOT PROJECT_NAME STREQUAL
"CMAKE_TRY_COMPILE"
)
set
(
__toolchain_config
""
)
foreach
(
__var NDK_CCACHE LIBRARY_OUTPUT_PATH_ROOT ANDROID_FORBID_SYGWIN ANDROID_SET_OBSOLETE_VARIABLES
ANDROID_NDK_HOST_X64
ANDROID_NDK
ANDROID_STANDALONE_TOOLCHAIN
ANDROID_TOOLCHAIN_NAME
...
...
@@ -1512,6 +1576,7 @@ endif()
# ANDROID_NDK
# ANDROID_STANDALONE_TOOLCHAIN
# ANDROID_TOOLCHAIN_NAME : the NDK name of compiler toolchain
# ANDROID_NDK_HOST_X64 : try to use x86_64 toolchain (default for x64 host systems)
# LIBRARY_OUTPUT_PATH_ROOT : <any valid path>
# NDK_CCACHE : <path to your ccache executable>
# Obsolete:
...
...
@@ -1536,7 +1601,7 @@ endif()
# BUILD_WITH_STANDALONE_TOOLCHAIN : TRUE if standalone toolchain is used
# ANDROID_NDK_HOST_SYSTEM_NAME : "windows", "linux-x86" or "darwin-x86" depending on host platform
# ANDROID_NDK_ABI_NAME : "armeabi", "armeabi-v7a", "x86" or "mips" depending on ANDROID_ABI
# ANDROID_NDK_RELEASE : one of r5, r5b, r5c, r6, r6b, r7, r7b, r7c, r8, r8b, r8c, r8d; set only for NDK
# ANDROID_NDK_RELEASE : one of r5, r5b, r5c, r6, r6b, r7, r7b, r7c, r8, r8b, r8c, r8d
, r8e
; set only for NDK
# ANDROID_ARCH_NAME : "arm" or "x86" or "mips" depending on ANDROID_ABI
# ANDROID_SYSROOT : path to the compiler sysroot
# TOOL_OS_SUFFIX : "" or ".exe" depending on host platform
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录