소스 검색

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.
Brad King 9 년 전
부모
커밋
328191f65f
1개의 변경된 파일19개의 추가작업 그리고 0개의 파일을 삭제
  1. 19 0
      Modules/Platform/Android-Initialize.cmake

+ 19 - 0
Modules/Platform/Android-Initialize.cmake

@@ -20,3 +20,22 @@
 if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
   return()
 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()