summaryrefslogtreecommitdiffstats
path: root/Tests/IncludeDirectoriesCPATH/viacpath
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-05-29 14:40:09 (GMT)
committerBrad King <brad.king@kitware.com>2019-05-30 13:24:59 (GMT)
commit2d0b0e2b9d50aa14ccf345c727b2da73dfba9bd6 (patch)
treea47622e41b44f79aa0c1574707efa1576283338e /Tests/IncludeDirectoriesCPATH/viacpath
parentf872033d7531ed1d7d7345ff7873442ec8dbcee1 (diff)
downloadCMake-2d0b0e2b9d50aa14ccf345c727b2da73dfba9bd6.zip
CMake-2d0b0e2b9d50aa14ccf345c727b2da73dfba9bd6.tar.gz
CMake-2d0b0e2b9d50aa14ccf345c727b2da73dfba9bd6.tar.bz2
Do not exclude include directories made implicit by CPATH
Entries of the `CPATH` environment variable are implicitly searched as include directories by some C/C++ compilers. Since commit 5990ecb741 (Compute implicit include directories from compiler output, 2018-12-07, v3.14.0-rc1~108^2) these entries are detected by CMake and included in the `CMAKE_{C,CXX}_IMPLICIT_INCLUDE_DIRECTORIES` variables. However, we should not exclude them from explicit specification via `-I` or particularly `-isystem` because they are meant as user-specified include directories that can be re-ordered without breaking compiler builtin headers. In particular, we need explicit requests via `include_directories` with the `SYSTEM` option to result in `-isystem` so that third-party headers do not produce warnings. Co-Author: Ben Boeckel <ben.boeckel@kitware.com> Fixes: #19291
Diffstat (limited to 'Tests/IncludeDirectoriesCPATH/viacpath')
-rw-r--r--Tests/IncludeDirectoriesCPATH/viacpath/systemlib.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/Tests/IncludeDirectoriesCPATH/viacpath/systemlib.h b/Tests/IncludeDirectoriesCPATH/viacpath/systemlib.h
new file mode 100644
index 0000000..1aaafa9
--- /dev/null
+++ b/Tests/IncludeDirectoriesCPATH/viacpath/systemlib.h
@@ -0,0 +1,15 @@
+#ifndef SYSTEMLIB_H
+#define SYSTEMLIB_H
+
+int systemlib()
+{
+ return 0;
+}
+
+int unusedFunc()
+{
+ int unused;
+ return systemlib();
+}
+
+#endif