Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
a089cf8d
Commit
a089cf8d
authored
Apr 03, 2013
by
Andrey Kamaev
Committed by
OpenCV Buildbot
Apr 03, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #728 from taka-no-me:ndk-r8e
parents
656594ad
e640985e
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
109 additions
and
44 deletions
+109
-44
android.toolchain.cmake
android/android.toolchain.cmake
+109
-44
No files found.
android/android.toolchain.cmake
View file @
a089cf8d
# 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"
)
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
"
${
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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment