[PATCH] D69221: [clang][darwin] Fix search path logic for C_INCLUDE_DIRS

2020-01-30 Thread Marco Hinz via Phabricator via cfe-commits
mhinz added a comment.

In D69221#1848425 , @ldionne wrote:

> Do you have commit access?


No. :)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69221/new/

https://reviews.llvm.org/D69221



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D69221: [clang][darwin] Fix search path logic for C_INCLUDE_DIRS

2019-11-27 Thread Marco Hinz via Phabricator via cfe-commits
mhinz added a comment.

I applied the fix to all toolchains now, but I'm unsure how to write a test for 
it. Neither could I find tests for similar options like `-DDEFAULT_SYSROOT`.

My use case: I want to build a clang that has the same search path as the clang 
shipped with macOS.

  $ /usr/bin/clang -E -xc -v /dev/null
  [snip]
  #include <...> search starts here:
   /usr/local/include
   
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include
   
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
   
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
   
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks
 (framework directory)
  End of search list.
  [snip]

For this, I need to pass this to cmake:

  
-DC_INCLUDE_DIRS="/usr/local/include:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include"
  -DDEFAULT_SYSROOT="$(xcrun --show-sdk-path)"


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69221/new/

https://reviews.llvm.org/D69221



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D69221: [clang][darwin] Fix search path logic for C_INCLUDE_DIRS

2019-11-27 Thread Marco Hinz via Phabricator via cfe-commits
mhinz updated this revision to Diff 231266.
mhinz added a comment.
Herald added subscribers: aheejin, jgravelle-google, sbc100, dschuff.

Apply fix to all toolchains.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69221/new/

https://reviews.llvm.org/D69221

Files:
  clang/lib/Driver/ToolChains/Darwin.cpp
  clang/lib/Driver/ToolChains/Fuchsia.cpp
  clang/lib/Driver/ToolChains/Hurd.cpp
  clang/lib/Driver/ToolChains/Linux.cpp
  clang/lib/Driver/ToolChains/Solaris.cpp
  clang/lib/Driver/ToolChains/WebAssembly.cpp


Index: clang/lib/Driver/ToolChains/WebAssembly.cpp
===
--- clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ clang/lib/Driver/ToolChains/WebAssembly.cpp
@@ -283,7 +283,7 @@
 CIncludeDirs.split(dirs, ":");
 for (StringRef dir : dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : StringRef(D.SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
 return;
Index: clang/lib/Driver/ToolChains/Solaris.cpp
===
--- clang/lib/Driver/ToolChains/Solaris.cpp
+++ clang/lib/Driver/ToolChains/Solaris.cpp
@@ -244,7 +244,7 @@
 CIncludeDirs.split(dirs, ":");
 for (StringRef dir : dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : StringRef(D.SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
 return;
Index: clang/lib/Driver/ToolChains/Linux.cpp
===
--- clang/lib/Driver/ToolChains/Linux.cpp
+++ clang/lib/Driver/ToolChains/Linux.cpp
@@ -674,7 +674,7 @@
 CIncludeDirs.split(dirs, ":");
 for (StringRef dir : dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? StringRef(SysRoot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : StringRef(SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
 return;
Index: clang/lib/Driver/ToolChains/Hurd.cpp
===
--- clang/lib/Driver/ToolChains/Hurd.cpp
+++ clang/lib/Driver/ToolChains/Hurd.cpp
@@ -149,7 +149,7 @@
 CIncludeDirs.split(Dirs, ":");
 for (StringRef Dir : Dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(Dir) ? StringRef(SysRoot) : "";
+  llvm::sys::path::is_absolute(Dir) ? "" : StringRef(SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + Dir);
 }
 return;
Index: clang/lib/Driver/ToolChains/Fuchsia.cpp
===
--- clang/lib/Driver/ToolChains/Fuchsia.cpp
+++ clang/lib/Driver/ToolChains/Fuchsia.cpp
@@ -286,7 +286,7 @@
 CIncludeDirs.split(dirs, ":");
 for (StringRef dir : dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : StringRef(D.SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
 return;
Index: clang/lib/Driver/ToolChains/Darwin.cpp
===
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1896,7 +1896,7 @@
 CIncludeDirs.split(dirs, ":");
 for (llvm::StringRef dir : dirs) {
   llvm::StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? llvm::StringRef(Sysroot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : llvm::StringRef(Sysroot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
   } else {


Index: clang/lib/Driver/ToolChains/WebAssembly.cpp
===
--- clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ clang/lib/Driver/ToolChains/WebAssembly.cpp
@@ -283,7 +283,7 @@
 CIncludeDirs.split(dirs, ":");
 for (StringRef dir : dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : StringRef(D.SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
 return;
Index: clang/lib/Driver/ToolChains/Solaris.cpp
===
--- clang/lib/Driver/ToolChains/Solaris.cpp
+++ clang/lib/Driver/ToolChains/Solaris.cpp
@@ -244,7 +244,7 @@
 CIncludeDirs.split(dirs, ":");
 for (StringRef dir : dirs) {
   StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : StringRef(D.SysRoot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
 return;
Index: 

[PATCH] D69221: [clang][darwin] Fix search path logic for C_INCLUDE_DIRS

2019-10-19 Thread Marco Hinz via Phabricator via cfe-commits
mhinz created this revision.
mhinz added reviewers: ldionne, rsmith.
mhinz added a project: clang.
Herald added subscribers: cfe-commits, dexonsmith.

For each absolute path given to C_INCLUDE_DIRS, we want it to be added as-is to
the include search path. Relative paths should be prefixed with the sysroot.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D69221

Files:
  clang/lib/Driver/ToolChains/Darwin.cpp


Index: clang/lib/Driver/ToolChains/Darwin.cpp
===
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1859,7 +1859,7 @@
 CIncludeDirs.split(dirs, ":");
 for (llvm::StringRef dir : dirs) {
   llvm::StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? llvm::StringRef(Sysroot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : llvm::StringRef(Sysroot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
   } else {


Index: clang/lib/Driver/ToolChains/Darwin.cpp
===
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1859,7 +1859,7 @@
 CIncludeDirs.split(dirs, ":");
 for (llvm::StringRef dir : dirs) {
   llvm::StringRef Prefix =
-  llvm::sys::path::is_absolute(dir) ? llvm::StringRef(Sysroot) : "";
+  llvm::sys::path::is_absolute(dir) ? "" : llvm::StringRef(Sysroot);
   addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
 }
   } else {
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits