Remove use of external/vixl/src in include_dirs

The include_dirs property is deprecated and no longer needed as the
libvixl[d] libraries export their include dirs directly.

Added support to the codegen extensions to allow header include dirs
from libvixl[d] to be re-exported from libart-compiler[d] as the
latter's exported headers include vixl exported headers.

Test: m checkbuild
Bug: 134379140
Change-Id: I6ad47b093cc25fc1486109fced1c2a238e75ff0d
diff --git a/build/Android.bp b/build/Android.bp
index 5b6de61..a7fe801 100644
--- a/build/Android.bp
+++ b/build/Android.bp
@@ -174,10 +174,6 @@
         },
     },
 
-    include_dirs: [
-        "external/vixl/src",
-    ],
-
     tidy_checks: art_clang_tidy_errors + art_clang_tidy_disabled,
     tidy_checks_as_errors: art_clang_tidy_errors,
 
diff --git a/build/codegen.go b/build/codegen.go
index d0db78e..aa942a7 100644
--- a/build/codegen.go
+++ b/build/codegen.go
@@ -114,10 +114,12 @@
 
 type CodegenLibraryArchProperties struct {
 	Static struct {
-		Whole_static_libs []string
+		Whole_static_libs         []string
+		Export_static_lib_headers []string
 	}
 	Shared struct {
-		Shared_libs []string
+		Shared_libs               []string
+		Export_shared_lib_headers []string
 	}
 }
 
diff --git a/compiler/Android.bp b/compiler/Android.bp
index c7fe77d..7005a89 100644
--- a/compiler/Android.bp
+++ b/compiler/Android.bp
@@ -221,11 +221,19 @@
                 whole_static_libs: [
                     "libvixl",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_static_lib_headers: [
+                    "libvixl",
+                ],
             },
             shared: {
                 shared_libs: [
                     "libvixl",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_shared_lib_headers: [
+                    "libvixl",
+                ],
             },
         },
         arm64: {
@@ -234,11 +242,19 @@
                 whole_static_libs: [
                     "libvixl",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_static_lib_headers: [
+                    "libvixl",
+                ],
             },
             shared: {
                 shared_libs: [
                     "libvixl",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_shared_lib_headers: [
+                    "libvixl",
+                ],
             },
         },
     },
@@ -285,11 +301,19 @@
                 whole_static_libs: [
                     "libvixld",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_static_lib_headers: [
+                    "libvixld",
+                ],
             },
             shared: {
                 shared_libs: [
                     "libvixld",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_shared_lib_headers: [
+                    "libvixld",
+                ],
             },
         },
         arm64: {
@@ -298,11 +322,19 @@
                 whole_static_libs: [
                     "libvixld",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_static_lib_headers: [
+                    "libvixld",
+                ],
             },
             shared: {
                 shared_libs: [
                     "libvixld",
                 ],
+                // Export vixl headers as they are included in this library's exported headers.
+                export_shared_lib_headers: [
+                    "libvixld",
+                ],
             },
         },
     },