60 lines
1.9 KiB
CMake
60 lines
1.9 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.7.1)
|
|
|
|
FUNCTION(READ_REVISION _var _regex _file)
|
|
IF(EXISTS "${_file}")
|
|
FILE(READ "${_file}" content)
|
|
STRING(REGEX MATCH "${_regex}" _unused "${content}")
|
|
SET(${_var} ${CMAKE_MATCH_1} PARENT_SCOPE)
|
|
ENDIF()
|
|
ENDFUNCTION()
|
|
|
|
IF(NOT CMAKE_ANDROID_NDK)
|
|
SET(CMAKE_ANDROID_NDK $ENV{ANDROID_NDK})
|
|
ENDIF()
|
|
|
|
SET(ANDROID_SDK $ENV{ANDROID_HOME})
|
|
SET(ANDROID_BUILD_TOOLS_REVISION $ENV{ANDROID_BUILD_TOOLS_REVISION})
|
|
|
|
IF(NOT EXISTS "${ANDROID_SDK}")
|
|
MESSAGE(FATAL_ERROR "Environment variable ANDROID_HOME is undefined")
|
|
ENDIF()
|
|
|
|
IF(NOT ANDROID_BUILD_TOOLS_REVISION)
|
|
SET(_android_build_tools_dir "${ANDROID_SDK}/build-tools")
|
|
FILE(GLOB build_tools ${_android_build_tools_dir}/*)
|
|
LIST(LENGTH build_tools build_tools_len)
|
|
IF(NOT build_tools_len EQUAL 1)
|
|
MESSAGE(FATAL_ERROR "Cannot determine ANDROID_BUILD_TOOLS_REVISION: ${_android_build_tools_dir}")
|
|
ENDIF()
|
|
|
|
GET_FILENAME_COMPONENT(ANDROID_BUILD_TOOLS_REVISION "${build_tools}" NAME)
|
|
ENDIF()
|
|
|
|
READ_REVISION(ANDROID_NDK_REVISION ".*Revision = ([0-9|\\.]+)" "${CMAKE_ANDROID_NDK}/source.properties")
|
|
READ_REVISION(ANDROID_SDK_REVISION ".*Revision=([0-9|\\.]+)" "${ANDROID_SDK}/tools/source.properties")
|
|
|
|
IF(NOT CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION AND ANDROID_NDK_REVISION VERSION_GREATER_EQUAL "11")
|
|
SET(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang)
|
|
ENDIF()
|
|
SET(ANDROID_NDK_TOOLCHAIN_VERSION 4.9)
|
|
|
|
SET(CMAKE_SYSTEM_NAME Android)
|
|
SET(CMAKE_SYSTEM_VERSION 21)
|
|
|
|
IF(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION MATCHES "clang")
|
|
SET(CMAKE_ANDROID_STL_TYPE c++_shared)
|
|
ELSE()
|
|
SET(CMAKE_ANDROID_STL_TYPE gnustl_shared)
|
|
ENDIF()
|
|
|
|
IF(NOT CMAKE_ANDROID_ARCH_ABI)
|
|
SET(CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
|
|
ENDIF()
|
|
|
|
|
|
OPTION(ANDROID_BUILD_AAR "Build AAR file instead of APK" OFF)
|
|
|
|
SET(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} CACHE string "android find search path root")
|
|
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|