Android: Set CMAKE_SYSROOT automatically

Compute CMAKE_SYSROOT automatically for the current API and architecture
selection.  This causes the --sysroot option to be passed to GNU and
Clang compilers.
This commit is contained in:
Brad King 2016-06-02 14:46:49 -04:00
parent 9e032304ea
commit 328191f65f
1 changed files with 19 additions and 0 deletions

View File

@ -20,3 +20,22 @@
if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android") if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
return() return()
endif() endif()
if(NOT CMAKE_SYSROOT)
if(CMAKE_ANDROID_NDK)
set(CMAKE_SYSROOT "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-${CMAKE_ANDROID_ARCH}")
endif()
endif()
if(CMAKE_SYSROOT)
if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}")
message(FATAL_ERROR
"Android: The system root directory needed for the selected Android version and architecture does not exist:\n"
" ${CMAKE_SYSROOT}\n"
)
endif()
else()
message(FATAL_ERROR
"Android: No CMAKE_SYSROOT was selected."
)
endif()