diff options
author | Brad King <brad.king@kitware.com> | 2019-04-08 14:04:05 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-04-08 14:12:22 (GMT) |
commit | ef41d49812f90f3d2a6edcae282a30b545df7f6d (patch) | |
tree | a04a69583bc7905ffd2989cd517639c27ce02249 /Tests/RunCMake/ParseImplicitIncludeInfo | |
parent | 6bc6fc2a7f3fa142779e3b42de8cecfcf9d4ae74 (diff) | |
download | CMake-ef41d49812f90f3d2a6edcae282a30b545df7f6d.zip CMake-ef41d49812f90f3d2a6edcae282a30b545df7f6d.tar.gz CMake-ef41d49812f90f3d2a6edcae282a30b545df7f6d.tar.bz2 |
Fix implicit include directory extraction for adaptive relative paths
In some cases GCC reports *relative* implicit include directories. They
are computed adaptively with respect to the current working directory
such that the effective implicit include directory is an unchanging
absolute path. Teach our implicit include directory extraction to
recognize such paths and normalize them.
Fixes: #19133
Diffstat (limited to 'Tests/RunCMake/ParseImplicitIncludeInfo')
5 files changed, 45 insertions, 0 deletions
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake b/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake index 7d04eb3..69615ef 100644 --- a/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake +++ b/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake @@ -19,6 +19,7 @@ set(targets darwin_nostdinc-CXX-AppleClang-8.0.0.8000042 freebsd-C-Clang-3.3.0 freebsd-CXX-Clang-3.3.0 freebsd-Fortran-GNU-4.6.4 hand-C-empty hand-CXX-empty + hand-C-relative hand-CXX-relative linux-C-GNU-7.3.0 linux-CXX-GNU-7.3.0 linux-Fortran-GNU-7.3.0 linux-C-Intel-18.0.0.20170811 linux-CXX-Intel-18.0.0.20170811 linux-C-PGI-18.10.1 linux-CXX-PGI-18.10.1 diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-C-relative.input b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-C-relative.input new file mode 100644 index 0000000..dd846e3 --- /dev/null +++ b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-C-relative.input @@ -0,0 +1,21 @@ +CMAKE_LANG=C +CMAKE_C_COMPILER_ABI=ELF +CMAKE_C_COMPILER_AR=/usr/bin/gcc-ar-7 +CMAKE_C_COMPILER_ARCHITECTURE_ID= +CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN= +CMAKE_C_COMPILER_ID=GNU +CMAKE_C_COMPILER_LAUNCHER= +CMAKE_C_COMPILER_LOADED=1 +CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 +CMAKE_C_COMPILER_TARGET= +CMAKE_C_COMPILER_VERSION=7.3.0 +CMAKE_C_COMPILER_VERSION_INTERAL= + +This is a hand-written test case. + +#include "..." search starts here: +#include <...> search starts here: + /usr/local/include + ../../../adaptive/relative/include + /usr/include +End of search list. diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-C-relative.output b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-C-relative.output new file mode 100644 index 0000000..e43139b --- /dev/null +++ b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-C-relative.output @@ -0,0 +1 @@ + /usr/local/include;[^;]*/Tests/RunCMake/ParseImplicitIncludeInfo/adaptive/relative/include;/usr/include diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-CXX-relative.input b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-CXX-relative.input new file mode 100644 index 0000000..54cc4db --- /dev/null +++ b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-CXX-relative.input @@ -0,0 +1,21 @@ +CMAKE_LANG=CXX +CMAKE_CXX_COMPILER_ABI=ELF +CMAKE_CXX_COMPILER_AR=/usr/bin/gcc-ar-7 +CMAKE_CXX_COMPILER_ARCHITECTURE_ID= +CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN= +CMAKE_CXX_COMPILER_ID=GNU +CMAKE_CXX_COMPILER_LAUNCHER= +CMAKE_CXX_COMPILER_LOADED=1 +CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-7 +CMAKE_CXX_COMPILER_TARGET= +CMAKE_CXX_COMPILER_VERSION=7.3.0 +CMAKE_CXX_COMPILER_VERSION_INTERAL= + +This is a hand-written test case. + +#include "..." search starts here: +#include <...> search starts here: + /usr/local/include + ../../../adaptive/relative/include + /usr/include +End of search list. diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-CXX-relative.output b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-CXX-relative.output new file mode 100644 index 0000000..e43139b --- /dev/null +++ b/Tests/RunCMake/ParseImplicitIncludeInfo/data/hand-CXX-relative.output @@ -0,0 +1 @@ + /usr/local/include;[^;]*/Tests/RunCMake/ParseImplicitIncludeInfo/adaptive/relative/include;/usr/include |