From 52b6effd817ae44577f86df4f382b0c98df7402a Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 2 Jun 2016 11:16:21 -0400 Subject: [PATCH] Android: Detect and save the NDK directory Add a new CMakeSystem.cmake entry for the NDK location. --- Modules/Platform/Android-Determine.cmake | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Modules/Platform/Android-Determine.cmake b/Modules/Platform/Android-Determine.cmake index 6a332905d..7e7acd408 100644 --- a/Modules/Platform/Android-Determine.cmake +++ b/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}\") +")