Browse Source

Android: Detect and save the NDK directory

Add a new CMakeSystem.cmake entry for the NDK location.
Brad King 9 years ago
parent
commit
52b6effd81
1 changed files with 27 additions and 0 deletions
  1. 27 0
      Modules/Platform/Android-Determine.cmake

+ 27 - 0
Modules/Platform/Android-Determine.cmake

@@ -12,6 +12,8 @@
 #  License text for the above reference.)
 
 # When CMAKE_SYSTEM_NAME is "Android", CMakeDetermineSystem loads this module.
+# This module detects platform-wide information about the Android target
+# in order to store it in "CMakeSystem.cmake".
 
 # Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
 # implemented in the CMake VS IDE generators.  Avoid interfering with
@@ -19,3 +21,28 @@
 if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
   return()
 endif()
+
+# Find the Android NDK.
+if(CMAKE_ANDROID_NDK)
+  if(NOT IS_DIRECTORY "${CMAKE_ANDROID_NDK}")
+    message(FATAL_ERROR
+      "Android: The NDK root directory specified by CMAKE_ANDROID_NDK:\n"
+      "  ${CMAKE_ANDROID_NDK}\n"
+      "does not exist."
+      )
+  endif()
+else()
+  if(IS_DIRECTORY "$ENV{ANDROID_NDK_ROOT}")
+    file(TO_CMAKE_PATH "$ENV{ANDROID_NDK_ROOT}" CMAKE_ANDROID_NDK)
+  endif()
+  # TODO: Search harder for the NDK.
+endif()
+
+if(NOT CMAKE_ANDROID_NDK)
+  message(FATAL_ERROR "Android: The NDK root directory was not found.")
+endif()
+
+# Save the Android-specific information in CMakeSystem.cmake.
+set(CMAKE_SYSTEM_CUSTOM_CODE "
+set(CMAKE_ANDROID_NDK \"${CMAKE_ANDROID_NDK}\")
+")