gn2bp: filter //out from local_include_dirs

Test: //base:base
Change-Id: Iee2aa8788c0814b41d131c8490e6b8489dc471fa
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index bb89e23..82c4fba 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -213,7 +213,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
         "third_party/android_ndk/sources/android/cpufeatures/",
     ],
     cpp_std: "c++20",
@@ -955,8 +954,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
-        "out/test/gen/jni_headers/",
         "third_party/abseil-cpp/",
         "third_party/android_ndk/sources/android/cpufeatures/",
         "third_party/boringssl/src/include/",
@@ -1268,7 +1265,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
     ],
     cpp_std: "c++20",
 }
@@ -1587,7 +1583,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
     ],
     cpp_std: "c++20",
 }
@@ -1619,7 +1614,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
     ],
     cpp_std: "c++20",
 }
@@ -2809,7 +2803,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
         "third_party/boringssl/src/include/",
     ],
     cpp_std: "c++20",
@@ -2864,7 +2857,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
         "third_party/icu/source/common/",
         "third_party/icu/source/i18n/",
     ],
@@ -2913,7 +2905,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
         "third_party/icu/source/common/",
         "third_party/icu/source/i18n/",
     ],
@@ -2966,7 +2957,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
         "third_party/libevent/android/",
     ],
     cpp_std: "c++20",
@@ -3001,7 +2991,6 @@
     local_include_dirs: [
         "./",
         "buildtools/third_party/libc++/",
-        "out/test/gen/",
     ],
     cpp_std: "c++20",
 }
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 2087554..3468346 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -831,7 +831,14 @@
       if '-std=' in flag:
         module.cpp_std = flag[len('-std='):]
 
-    module.local_include_dirs.update(gn_utils.label_to_path(it) for it in target.include_dirs)
+    # Adding local_include_dirs is necessary due to source_sets / filegroups
+    # which do not properly propagate include directories.
+    # Filter any directory inside //out as a) this directory does not exist for
+    # aosp / soong builds and b) the include directory should already be
+    # configured via library dependency.
+    module.local_include_dirs.update([gn_utils.label_to_path(d)
+                                      for d in target.include_dirs
+                                      if not re.match('^//out/.*', d)])
 
   module_is_compiled = module.type not in ('genrule', 'filegroup')
   if module_is_compiled: