Parcourir la source

Android: Do not pass sysroot include for standalone toolchain

The change in commit v3.8.0-rc1~60^2 (Android: Pass sysroot include
directory explicitly, 2017-01-20) does not make sense when compiling
with a standalone toolchain which is tied to a single API version.
Drop the explicit include directory so that the compiler uses its
default system include order.

Fixes: #16954
Brad King il y a 8 ans
Parent
commit
22f8a465d7
1 fichiers modifiés avec 7 ajouts et 2 suppressions
  1. 7 2
      Modules/Platform/Android-Common.cmake

+ 7 - 2
Modules/Platform/Android-Common.cmake

@@ -156,6 +156,11 @@ macro(__android_compiler_common lang)
   # necessary so that Android API-version-specific headers are preferred
   # over those in the toolchain's `include-fixed` directory (which cannot
   # possibly match all versions).
-  list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_SYSROOT}/usr/include")
-  list(REMOVE_ITEM CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include")
+  #
+  # Do not do this for a standalone toolchain because it is already
+  # tied to a specific API version.
+  if(CMAKE_ANDROID_NDK)
+    list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_SYSROOT}/usr/include")
+    list(REMOVE_ITEM CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include")
+  endif()
 endmacro()