Jelajahi Sumber

Android: Add `ANDROID` variable to indicate the target

Allow projects to use `if(ANDROID)` to condition their Android-specific
code paths.
Brad King 9 tahun lalu
induk
melakukan
7b637ebdc9

+ 1 - 0
Help/manual/cmake-variables.7.rst

@@ -173,6 +173,7 @@ Variables that Describe the System
 .. toctree::
    :maxdepth: 1
 
+   /variable/ANDROID
    /variable/APPLE
    /variable/BORLAND
    /variable/CMAKE_CL_64

+ 5 - 0
Help/variable/ANDROID.rst

@@ -0,0 +1,5 @@
+ANDROID
+-------
+
+Set to ``1`` when the target system (:variable:`CMAKE_SYSTEM_NAME`) is
+``Android``.

+ 2 - 0
Modules/Platform/Android.cmake

@@ -1,5 +1,7 @@
 include(Platform/Linux)
 
+set(ANDROID 1)
+
 # Android has soname, but binary names must end in ".so" so we cannot append
 # a version number.  Also we cannot portably represent symlinks on the host.
 set(CMAKE_PLATFORM_NO_VERSIONED_SONAME 1)

+ 4 - 0
Tests/RunCMake/Android/common.cmake

@@ -1,6 +1,10 @@
 enable_language(C)
 enable_language(CXX)
 
+if(NOT ANDROID)
+  message(SEND_ERROR "CMake variable 'ANDROID' is not set to a true value.")
+endif()
+
 foreach(f
     "${CMAKE_C_ANDROID_TOOLCHAIN_PREFIX}gcc${CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX}"
     "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}g++${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}"