[llvm] 0dd2ffb - [gn build] make WindowsManifestMerger.cpp build fine with sysroot

Nico Weber via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 17 12:03:57 PST 2021


Author: Nico Weber
Date: 2021-02-17T15:03:46-05:00
New Revision: 0dd2ffb3921cc23970f113131435fb650d2f2d41

URL: https://github.com/llvm/llvm-project/commit/0dd2ffb3921cc23970f113131435fb650d2f2d41
DIFF: https://github.com/llvm/llvm-project/commit/0dd2ffb3921cc23970f113131435fb650d2f2d41.diff

LOG: [gn build] make WindowsManifestMerger.cpp build fine with sysroot

This already works in the cmake build.

Differential Revision: https://reviews.llvm.org/D96889

Added: 
    llvm/utils/gn/build/sysroot.gni

Modified: 
    llvm/utils/gn/build/BUILD.gn
    llvm/utils/gn/build/libs/xml/BUILD.gn

Removed: 
    


################################################################################
diff  --git a/llvm/utils/gn/build/BUILD.gn b/llvm/utils/gn/build/BUILD.gn
index ecfd6f92d5dc..182963153f21 100644
--- a/llvm/utils/gn/build/BUILD.gn
+++ b/llvm/utils/gn/build/BUILD.gn
@@ -1,5 +1,6 @@
 import("//llvm/utils/gn/build/buildflags.gni")
 import("//llvm/utils/gn/build/mac_sdk.gni")
+import("//llvm/utils/gn/build/sysroot.gni")
 import("//llvm/utils/gn/build/toolchain/compiler.gni")
 import("//llvm/utils/gn/build/toolchain/target_flags.gni")
 
@@ -22,9 +23,6 @@ declare_args() {
 
   # The version of host gcc. Ignored if is_clang is true.
   gcc_version = 9
-
-  # Path of sysroot to use.
-  sysroot = ""
 }
 
 assert(!llvm_build_instrumented_coverage || is_clang,
@@ -292,6 +290,9 @@ config("compiler_defaults") {
       cflags += [ "/winsysroot" + rebase_path(sysroot, root_build_dir) ]
     } else {
       cflags += [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ]
+      if (is_clang) {
+        cflags += [ "-Wpoison-system-directories"]
+      }
     }
   }
 

diff  --git a/llvm/utils/gn/build/libs/xml/BUILD.gn b/llvm/utils/gn/build/libs/xml/BUILD.gn
index 3af3c851698c..5d522645da59 100644
--- a/llvm/utils/gn/build/libs/xml/BUILD.gn
+++ b/llvm/utils/gn/build/libs/xml/BUILD.gn
@@ -1,5 +1,6 @@
 import("//llvm/utils/gn/build/libs/xml/enable.gni")
 import("//llvm/utils/gn/build/mac_sdk.gni")
+import("//llvm/utils/gn/build/sysroot.gni")
 
 config("xml_config") {
   visibility = [ ":xml" ]
@@ -7,7 +8,7 @@ config("xml_config") {
   if (host_os == "mac") {
     include_dirs = [ "$mac_sdk_path/usr/include/libxml2" ]
   } else {
-    include_dirs = [ "/usr/include/libxml2" ]
+    include_dirs = [ "$sysroot/usr/include/libxml2" ]
   }
 }
 

diff  --git a/llvm/utils/gn/build/sysroot.gni b/llvm/utils/gn/build/sysroot.gni
new file mode 100644
index 000000000000..b1b4e74cea96
--- /dev/null
+++ b/llvm/utils/gn/build/sysroot.gni
@@ -0,0 +1,4 @@
+declare_args() {
+  # Path of sysroot to use.
+  sysroot = ""
+}


        


More information about the llvm-commits mailing list