summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/Android/android_sysinc.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-07-12 15:37:00 (GMT)
committerBrad King <brad.king@kitware.com>2017-07-13 14:03:58 (GMT)
commit4bafa3922e3773e5bcc6741994379455c7d1c0fc (patch)
tree9f3ddb30fb1823474ffd1c327f4252bedbff62d2 /Tests/RunCMake/Android/android_sysinc.c
parent25b72e9097260d1faf254155a1199886c808a58f (diff)
downloadCMake-4bafa3922e3773e5bcc6741994379455c7d1c0fc.zip
CMake-4bafa3922e3773e5bcc6741994379455c7d1c0fc.tar.gz
CMake-4bafa3922e3773e5bcc6741994379455c7d1c0fc.tar.bz2
Android: Always add standard include directories last
The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify language-wide system include directories, 2016-05-24) to use `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`. Rather than recognizing this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory explicitly, 2017-01-20) worked around the problem by incorrectly removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`. By not filtering out `/usr/include` from user-specified include directories, we allow the code include_directories(${CMAKE_SYSROOT}/usr/include) to place the include directory too early on the command line. Fix support for standard include directories to not be filtered by implicit include directories, and do not remove `/usr/include` from the list of implicit include directories for Android builds. Add a test case to verify that an explicit `/usr/include` is ignored in favor of the standard directory at the end. Fixes: #17059
Diffstat (limited to 'Tests/RunCMake/Android/android_sysinc.c')
-rw-r--r--Tests/RunCMake/Android/android_sysinc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Tests/RunCMake/Android/android_sysinc.c b/Tests/RunCMake/Android/android_sysinc.c
new file mode 100644
index 0000000..18d73db
--- /dev/null
+++ b/Tests/RunCMake/Android/android_sysinc.c
@@ -0,0 +1,7 @@
+#include <dlfcn.h>
+
+#ifndef NOT_SYSTEM_DLFCN_HEADER
+#error "sysroot /usr/include appears too early"
+#endif
+
+#include "android.c"