diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/best_practices.md | 4 | ||||
| -rw-r--r-- | docs/clion.md | 2 | ||||
| -rw-r--r-- | docs/java.dot | 127 | ||||
| -rw-r--r-- | docs/kotlin.dot | 196 | ||||
| -rw-r--r-- | docs/kotlin_with_annotation_processors.dot | 277 | ||||
| -rw-r--r-- | docs/map_files.md | 7 | ||||
| -rw-r--r-- | docs/rbe.md | 2 | ||||
| -rw-r--r-- | docs/tidy.md | 12 |
8 files changed, 615 insertions, 12 deletions
diff --git a/docs/best_practices.md b/docs/best_practices.md index bc760b876..48ed996e7 100644 --- a/docs/best_practices.md +++ b/docs/best_practices.md @@ -285,6 +285,6 @@ types. Soong plugins are inherently tightly coupled to the build system and will require ongoing maintenance as the build system is changed; so plugins should be used only when absolutely required. -See [art/build/art.go](https://android.googlesource.com/platform/art/+/master/build/art.go) -or [external/llvm/soong/llvm.go](https://android.googlesource.com/platform/external/llvm/+/master/soong/llvm.go) +See [art/build/art.go](https://android.googlesource.com/platform/art/+/main/build/art.go) +or [external/llvm/soong/llvm.go](https://android.googlesource.com/platform/external/llvm/+/main/soong/llvm.go) for examples of more complex conditionals on product variables or environment variables. diff --git a/docs/clion.md b/docs/clion.md index 110891b31..8e2c59782 100644 --- a/docs/clion.md +++ b/docs/clion.md @@ -4,7 +4,7 @@ Soong can generate CLion projects. This is intended for source code editing only. Build should still be done via make/m/mm(a)/mmm(a). Note: alternatively, you can use -[aidegen to generate a Clion or VSCode project](https://android.googlesource.com/platform/tools/asuite/+/refs/heads/master/aidegen/README.md) +[aidegen to generate a Clion or VSCode project](https://android.googlesource.com/platform/tools/asuite/+/refs/heads/main/aidegen/README.md) with a single command, using the `-i c` flag. CMakeLists.txt project file generation is enabled via environment variable: diff --git a/docs/java.dot b/docs/java.dot new file mode 100644 index 000000000..ad7628d26 --- /dev/null +++ b/docs/java.dot @@ -0,0 +1,127 @@ +digraph java { + //rankdir="LR"; + //splines="false"; + //cluster=true; + //node [ ordering="in" ]; + node [ shape="rect" style="rounded" color="blue" ]; + + { + rank="same"; + lib_java_sources [ label="library\njava sources" group="lib" ]; + lib2_java_sources [ label="library\njava sources" group="lib2" ]; + app_java_sources [ label="app\njava sources" group="app" ]; + } + + node [ group="lib"]; + { + rank="same"; + lib_java_classes [ label="library java\n.class files" ]; + lib_java_headers [ label="library java\nheader .class files" ]; + } + + node [ group="lib2"]; + { + rank="same"; + lib_spacer [ style=invis width=4 ]; + lib2_java_classes [ label="library java\n.class files" ]; + lib2_java_headers [ label="library java\nheader .class files" ]; + } + { + rank="same"; + lib2_combined_classes [ label="combined library\n.class files" ]; + lib2_combined_headers [ label="combined library\nheader .class files" ]; + } + + node [ group="app"]; + { + rank="same"; + lib2_spacer [ style=invis width=4 ]; + app_java_classes [ label="app java\n.class files" ]; + } + { + rank="same"; + app_combined_classes [ label="combined app and library\n.class files" ]; + } + { + rank="same"; + app_dex [ label="app classes.dex files" ]; + } + + + node [ shape="rect" style="" color="black" ]; + node [ group="lib"]; + { + rank="same"; + lib_turbine_action [ label="turbine" ]; + lib_javac_action [ label="javac" ]; + } + + node [ group="lib2"]; + { + rank="same"; + lib2_turbine_action [ label="turbine" ]; + lib2_javac_action [ label="javac" ]; + } + { + rank="same"; + lib2_combine_action [ label="merge_zips" ]; + lib2_combine_headers_action [ label="merge_zips" ]; + } + + node [ group="app"]; + { + rank="same"; + app_javac_action [ label="javac" ]; + } + { + rank="same"; + app_combine_action [ label="merge_zips" ]; + } + { + rank="same"; + app_r8_action [ label="r8" ]; + } + + // library + + lib_java_sources -> lib_turbine_action [ weight=100 ]; + lib_turbine_action -> lib_java_headers [ weight=100 ]; + + lib_java_sources -> lib_javac_action [ weight=1000 ]; + lib_javac_action -> lib_java_classes [ weight=100 ]; + + lib_java_headers -> lib_spacer [ style=invis ]; + + // library 2 + + lib_java_headers -> lib2_turbine_action [ weight=0 ]; + lib2_java_sources -> lib2_turbine_action [ weight=100 ]; + lib2_turbine_action -> lib2_java_headers [ weight=100 ]; + + lib_java_headers -> lib2_javac_action [ weight=0 ]; + lib2_java_sources -> lib2_javac_action [ weight=1000 ]; + lib2_javac_action ->lib2_java_classes [ weight=100 ]; + + lib_java_classes -> lib2_combine_action [ weight=0 ]; + lib2_java_classes -> lib2_combine_action [ weight=100 ]; + lib2_combine_action -> lib2_combined_classes [ weight=100 ]; + + lib_java_headers -> lib2_combine_headers_action [ weight=0 ]; + lib2_java_headers -> lib2_combine_headers_action [ weight=100 ]; + lib2_combine_headers_action -> lib2_combined_headers [ weight=100 ]; + + lib2_combined_headers -> lib2_spacer [ style=invis ]; + + // app + + lib2_combined_headers -> app_javac_action [ weight=0 ]; + app_java_sources -> app_javac_action [ weight=1000 ]; + app_javac_action -> app_java_classes [ weight=100 ]; + + lib2_combined_classes -> app_combine_action [ weight=0 ]; + app_java_classes -> app_combine_action [ weight=100 ]; + app_combine_action -> app_combined_classes [ weight=100 ]; + + app_combined_classes -> app_r8_action; + app_r8_action -> app_dex [ weight=100 ]; +} diff --git a/docs/kotlin.dot b/docs/kotlin.dot new file mode 100644 index 000000000..7a23c160c --- /dev/null +++ b/docs/kotlin.dot @@ -0,0 +1,196 @@ +digraph java { + //rankdir="LR"; + //splines="false"; + //cluster=true; + ranksep="0.75 equally" + //node [ ordering="in" ]; + node [ shape="rect" style="rounded" color="blue" ]; + { + rank="same"; + lib_java_sources [ label="library\njava sources" group="lib" ]; + lib_kotlin_sources [ label="library\nkotlin sources" group="lib" ]; + lib2_java_sources [ label="library\njava sources" group="lib2" ]; + lib2_kotlin_sources [ label="library\nkotlin sources" group="lib2" ]; + app_java_sources [ label="app\njava sources" group="app" ]; + app_kotlin_sources [ label="app\nkotlin sources" group="app" ]; + } + + node [ group="lib"]; + { + rank="same"; + lib_kotlin_classes [ label="library kotlin\n.class files" ]; + lib_kotlin_headers [ label="library kotlin\nheader .class files" ]; + } + { + rank="same"; + lib_java_classes [ label="library java\n.class files" ]; + lib_java_headers [ label="library java\nheader .class files" ]; + } + { + rank="same"; + lib_combined_classes [ label="combined library\n.class files" ]; + lib_combined_headers [ label="combined library\nheader .class files" ]; + } + + node [ group="lib2"]; + { + rank="same"; + lib_spacer [ style=invis width=4 ]; + lib2_kotlin_classes [ label="library kotlin\n.class files" ]; + lib2_kotlin_headers [ label="library kotlin\nheader .class files" ]; + } + { + rank="same"; + lib2_java_classes [ label="library java\n.class files" ]; + lib2_java_headers [ label="library java\nheader .class files" ]; + } + { + rank="same"; + lib2_combined_classes [ label="combined library\n.class files" ]; + lib2_combined_headers [ label="combined library\nheader .class files" ]; + } + + node [ group="app"]; + { + rank="same"; + lib2_spacer [ style=invis width=4 ]; + app_kotlin_classes [ label="app kotlin\n.class files" ]; + app_kotlin_headers [ label="app kotlin\nheader .class files" ] } + { + rank="same"; + app_java_classes [ label="app java\n.class files" ]; + } + { + rank="same"; + app_combined_classes [ label="combined app and library\n.class files" ]; + } + { + rank="same"; + app_dex [ label="app classes.dex files" ]; + } + + + node [ shape="rect" style="" color="black" ]; + node [ group="lib"]; + { + rank="same"; + lib_kotlinc_action [ label="kotlinc" ]; + } + { + rank="same"; + lib_turbine_action [ label="turbine" ]; + lib_javac_action [ label="javac" ]; + } + { + rank="same"; + lib_combine_action [ label="merge_zips" ]; + lib_combine_headers_action [ label="merge_zips" ]; + } + + node [ group="lib2"]; + { + rank="same"; + lib2_kotlinc_action [ label="kotlinc" ]; + } + { + rank="same"; + lib2_turbine_action [ label="turbine" ]; + lib2_javac_action [ label="javac" ]; + } + { + rank="same"; + lib2_combine_action [ label="merge_zips" ]; + lib2_combine_headers_action [ label="merge_zips" ]; + } + + node [ group="app"]; + { + rank="same"; + app_kotlinc_action [ label="kotlinc" ]; + } + { + rank="same"; + app_javac_action [ label="javac" ]; + } + { + rank="same"; + app_combine_action [ label="merge_zips" ]; + } + { + rank="same"; + app_r8_action [ label="r8" ]; + } + + // library + + lib_kotlin_sources -> lib_kotlinc_action [ weight=100 ]; + lib_java_sources -> lib_kotlinc_action; + lib_kotlinc_action -> lib_kotlin_classes, lib_kotlin_headers [ weight=100 ]; + + lib_kotlin_headers -> lib_turbine_action [ weight=0 ]; + lib_java_sources -> lib_turbine_action [ weight=100 ]; + lib_turbine_action -> lib_java_headers [ weight=100 ]; + + lib_kotlin_headers -> lib_javac_action [ weight=0 ]; + lib_java_sources -> lib_javac_action [ weight=1000 ]; + lib_javac_action -> lib_java_classes [ weight=100 ]; + + lib_kotlin_classes -> lib_combine_action [ weight = 0 ]; + lib_java_classes -> lib_combine_action [ weight = 100 ]; + lib_combine_action -> lib_combined_classes [ weight=100 ]; + + lib_kotlin_headers -> lib_combine_headers_action [ weight = 0 ]; + lib_java_headers -> lib_combine_headers_action [ weight = 100 ]; + lib_combine_headers_action -> lib_combined_headers [ weight=100 ]; + + lib_combined_headers -> lib_spacer [ style=invis ]; + + // library 2 + + lib_combined_headers -> lib2_kotlinc_action [ weight=0 ]; + lib2_kotlin_sources -> lib2_kotlinc_action [ weight=100 ]; + lib2_java_sources -> lib2_kotlinc_action; + lib2_kotlinc_action -> lib2_kotlin_classes, lib2_kotlin_headers [ weight=100 ]; + + lib_combined_headers -> lib2_turbine_action [ weight=0 ]; + lib2_kotlin_headers -> lib2_turbine_action [ weight=0 ]; + lib2_java_sources -> lib2_turbine_action [ weight=100 ]; + lib2_turbine_action -> lib2_java_headers [ weight=100 ]; + + lib_combined_headers -> lib2_javac_action [ weight=0 ]; + lib2_kotlin_headers -> lib2_javac_action [ weight=0 ]; + lib2_java_sources -> lib2_javac_action [ weight=1000 ]; + lib2_javac_action ->lib2_java_classes [ weight=100 ]; + + lib_combined_classes -> lib2_combine_action [ weight=0 ]; + lib2_kotlin_classes -> lib2_combine_action [ weight=0 ]; + lib2_java_classes -> lib2_combine_action [ weight=100 ]; + lib2_combine_action -> lib2_combined_classes [ weight=100 ]; + + lib_combined_headers -> lib2_combine_headers_action [ weight=0 ]; + lib2_kotlin_headers -> lib2_combine_headers_action [ weight=0 ]; + lib2_java_headers -> lib2_combine_headers_action [ weight=100 ]; + lib2_combine_headers_action -> lib2_combined_headers [ weight=100 ]; + + lib2_combined_headers -> lib2_spacer [ style=invis ]; + + // app + + lib2_combined_headers -> app_kotlinc_action [ weight=0 ]; + app_kotlin_sources -> app_kotlinc_action [ weight=100 ]; + app_java_sources -> app_kotlinc_action; + app_kotlinc_action -> app_kotlin_headers, app_kotlin_classes [ weight=100 ]; + + lib2_combined_headers -> app_javac_action [ weight=0 ]; + app_kotlin_headers -> app_javac_action [ weight=0 ]; + app_java_sources -> app_javac_action [ weight=1000 ]; + app_javac_action -> app_java_classes [ weight=100 ]; + + lib2_combined_classes -> app_combine_action [ weight=0 ]; + app_kotlin_classes -> app_combine_action [ weight=0 ]; + app_java_classes -> app_combine_action [ weight=100 ]; + app_combine_action -> app_combined_classes [ weight=100 ]; + + app_combined_classes -> app_r8_action; + app_r8_action -> app_dex [ weight=100 ]; +} diff --git a/docs/kotlin_with_annotation_processors.dot b/docs/kotlin_with_annotation_processors.dot new file mode 100644 index 000000000..70c9bf319 --- /dev/null +++ b/docs/kotlin_with_annotation_processors.dot @@ -0,0 +1,277 @@ +digraph java { + //rankdir="LR"; + //splines="false"; + //cluster=true; + ranksep="0.75 equally" + //node [ ordering="in" ]; + node [ shape="rect" style="rounded" color="blue" ]; + { + rank="same"; + lib_java_sources [ label="library\njava sources" group="lib" ]; + lib_kotlin_sources [ label="library\nkotlin sources" group="lib" ]; + lib2_java_sources [ label="library\njava sources" group="lib2" ]; + lib2_kotlin_sources [ label="library\nkotlin sources" group="lib2" ]; + app_java_sources [ label="app\njava sources" group="app" ]; + app_kotlin_sources [ label="app\nkotlin sources" group="app" ]; + } + + node [ group="lib"]; + { + rank="same"; + lib_kotlin_stubs [ label="library\nkotlin stubs" ]; + } + { + rank="same"; + lib_apt_src_jar [ label="library annotation\nprocessor sources" ]; + } + { + rank="same"; + lib_kotlin_classes [ label="library kotlin\n.class files" ]; + lib_kotlin_headers [ label="library kotlin\nheader .class files" ]; + } + { + rank="same"; + lib_java_classes [ label="library java\n.class files" ]; + lib_java_headers [ label="library java\nheader .class files" ]; + } + { + rank="same"; + lib_combined_classes [ label="combined library\n.class files" ]; + lib_combined_headers [ label="combined library\nheader .class files" ]; + } + + node [ group="lib2"]; + { + rank="same"; + lib_spacer [ style=invis width=4 ]; + lib2_kotlin_stubs [ label="library\nkotlin stubs" ]; + } + { + rank="same"; + lib2_apt_src_jar [ label="library annotation\nprocessor sources" ]; + } + { + rank="same"; + lib2_kotlin_classes [ label="library kotlin\n.class files" ]; + lib2_kotlin_headers [ label="library kotlin\nheader .class files" ]; + } + { + rank="same"; + lib2_java_classes [ label="library java\n.class files" ]; + lib2_java_headers [ label="library java\nheader .class files" ]; + } + { + rank="same"; + lib2_combined_classes [ label="combined library\n.class files" ]; + lib2_combined_headers [ label="combined library\nheader .class files" ]; + } + + node [ group="app"]; + { + rank="same"; + lib2_spacer [ style=invis width=4 ]; + app_kotlin_stubs [ label="app\nkotlin stubs" ]; + } + { + rank="same"; + app_apt_src_jar [ label="app annotation\nprocessor sources" ]; + } + { + rank="same"; + app_kotlin_classes [ label="app kotlin\n.class files" ]; + app_kotlin_headers [ label="app kotlin\nheader .class files" ] } + { + rank="same"; + app_java_classes [ label="app java\n.class files" ]; + } + { + rank="same"; + app_combined_classes [ label="combined app and library\n.class files" ]; + } + { + rank="same"; + app_dex [ label="app classes.dex files" ]; + } + + + node [ shape="rect" style="" color="black" ]; + node [ group="lib"]; + { + rank="same"; + lib_kapt_action [ label="kapt" ]; + } + { + rank="same"; + lib_turbine_apt_action [ label="turbine apt" ]; + } + { + rank="same"; + lib_kotlinc_action [ label="kotlinc" ]; + } + { + rank="same"; + lib_turbine_action [ label="turbine" ]; + lib_javac_action [ label="javac" ]; + } + { + rank="same"; + lib_combine_action [ label="merge_zips" ]; + lib_combine_headers_action [ label="merge_zips" ]; + } + + node [ group="lib2"]; + { + rank="same"; + lib2_kapt_action [ label="kapt" ]; + } + { + rank="same"; + lib2_turbine_apt_action [ label="turbine apt" ]; + } + { + rank="same"; + lib2_kotlinc_action [ label="kotlinc" ]; + } + { + rank="same"; + lib2_turbine_action [ label="turbine" ]; + lib2_javac_action [ label="javac" ]; + } + { + rank="same"; + lib2_combine_action [ label="merge_zips" ]; + lib2_combine_headers_action [ label="merge_zips" ]; + } + + node [ group="app"]; + { + rank="same"; + app_kapt_action [ label="kapt" ]; + } + { + rank="same"; + app_turbine_apt_action [ label="turbine apt" ]; + } + { + rank="same"; + app_kotlinc_action [ label="kotlinc" ]; + } + { + rank="same"; + app_javac_action [ label="javac" ]; + } + { + rank="same"; + app_combine_action [ label="merge_zips" ]; + } + { + rank="same"; + app_r8_action [ label="r8" ]; + } + + // library + + lib_kotlin_sources -> lib_kapt_action [ weight=0 ]; + lib_java_sources -> lib_kapt_action; + lib_kapt_action -> lib_kotlin_stubs [ weight=100 ]; + + lib_kotlin_stubs -> lib_turbine_apt_action [ weight=100 ]; + lib_turbine_apt_action -> lib_apt_src_jar [ weight=100 ]; + + lib_apt_src_jar -> lib_kotlinc_action [ weight=0 ]; + lib_kotlin_sources -> lib_kotlinc_action [ weight=100 ]; + lib_java_sources -> lib_kotlinc_action; + lib_kotlinc_action -> lib_kotlin_classes, lib_kotlin_headers [ weight=100 ]; + + lib_apt_src_jar -> lib_turbine_action [ weight=0 ]; + lib_kotlin_headers -> lib_turbine_action [ weight=0 ]; + lib_java_sources -> lib_turbine_action [ weight=100 ]; + lib_turbine_action -> lib_java_headers [ weight=100 ]; + + lib_apt_src_jar -> lib_javac_action [ weight=0 ]; + lib_kotlin_headers -> lib_javac_action [ weight=0 ]; + lib_java_sources -> lib_javac_action [ weight=1000 ]; + lib_javac_action -> lib_java_classes [ weight=100 ]; + + lib_kotlin_classes -> lib_combine_action [ weight = 0 ]; + lib_java_classes -> lib_combine_action [ weight = 100 ]; + lib_combine_action -> lib_combined_classes [ weight=100 ]; + + lib_kotlin_headers -> lib_combine_headers_action [ weight = 0 ]; + lib_java_headers -> lib_combine_headers_action [ weight = 100 ]; + lib_combine_headers_action -> lib_combined_headers [ weight=100 ]; + + lib_combined_headers -> lib_spacer [ style=invis ]; + + // library 2 + + lib_combined_headers -> lib2_kapt_action [ weight=0 ]; + lib2_kotlin_sources -> lib2_kapt_action [ weight=0 ]; + lib2_java_sources -> lib2_kapt_action; + lib2_kapt_action -> lib2_kotlin_stubs [ weight=100 ]; + + lib_combined_headers -> lib2_turbine_apt_action [ weight=0 ]; + lib2_kotlin_stubs -> lib2_turbine_apt_action [ weight=100 ]; + lib2_turbine_apt_action -> lib2_apt_src_jar [ weight=100 ]; + + lib_combined_headers -> lib2_kotlinc_action [ weight=0 ]; + lib2_apt_src_jar -> lib2_kotlinc_action [ weight=0 ]; + lib2_kotlin_sources -> lib2_kotlinc_action [ weight=100 ]; + lib2_java_sources -> lib2_kotlinc_action; + lib2_kotlinc_action -> lib2_kotlin_classes, lib2_kotlin_headers [ weight=100 ]; + + lib_combined_headers -> lib2_turbine_action [ weight=0 ]; + lib2_apt_src_jar -> lib2_turbine_action [ weight=0 ]; + lib2_kotlin_headers -> lib2_turbine_action [ weight=0 ]; + lib2_java_sources -> lib2_turbine_action [ weight=100 ]; + lib2_turbine_action -> lib2_java_headers [ weight=100 ]; + + lib_combined_headers -> lib2_javac_action [ weight=0 ]; + lib2_apt_src_jar -> lib2_javac_action [ weight=0 ]; + lib2_kotlin_headers -> lib2_javac_action [ weight=0 ]; + lib2_java_sources -> lib2_javac_action [ weight=1000 ]; + lib2_javac_action ->lib2_java_classes [ weight=100 ]; + + lib_combined_classes -> lib2_combine_action [ weight=0 ]; + lib2_kotlin_classes -> lib2_combine_action [ weight=0 ]; + lib2_java_classes -> lib2_combine_action [ weight=100 ]; + lib2_combine_action -> lib2_combined_classes [ weight=100 ]; + + lib_combined_headers -> lib2_combine_headers_action [ weight=0 ]; + lib2_kotlin_headers -> lib2_combine_headers_action [ weight=0 ]; + lib2_java_headers -> lib2_combine_headers_action [ weight=100 ]; + lib2_combine_headers_action -> lib2_combined_headers [ weight=100 ]; + + lib2_combined_headers -> lib2_spacer [ style=invis ]; + + // app + + lib2_combined_headers -> app_kapt_action [ weight=0 ]; + app_kotlin_sources -> app_kapt_action [ weight=0 ]; + app_java_sources -> app_kapt_action; + app_kapt_action -> app_kotlin_stubs [ weight=100 ]; + + lib2_combined_headers -> app_turbine_apt_action [ weight=0 ]; + app_kotlin_stubs -> app_turbine_apt_action [ weight=100 ]; + app_turbine_apt_action -> app_apt_src_jar [ weight=100 ]; + + lib2_combined_headers -> app_kotlinc_action [ weight=0 ]; + app_apt_src_jar -> app_kotlinc_action [ weight=0 ]; + app_kotlin_sources -> app_kotlinc_action [ weight=100 ]; + app_java_sources -> app_kotlinc_action; + app_kotlinc_action -> app_kotlin_headers, app_kotlin_classes [ weight=100 ]; + + lib2_combined_headers -> app_javac_action [ weight=0 ]; + app_apt_src_jar -> app_javac_action [ weight=0 ]; + app_kotlin_headers -> app_javac_action [ weight=0 ]; + app_java_sources -> app_javac_action [ weight=1000 ]; + app_javac_action -> app_java_classes [ weight=100 ]; + + lib2_combined_classes -> app_combine_action [ weight=0 ]; + app_kotlin_classes -> app_combine_action [ weight=0 ]; + app_java_classes -> app_combine_action [ weight=100 ]; + app_combine_action -> app_combined_classes [ weight=100 ]; + + app_combined_classes -> app_r8_action; + app_r8_action -> app_dex [ weight=100 ]; +} diff --git a/docs/map_files.md b/docs/map_files.md index 35e8cbbfc..e1ddefc27 100644 --- a/docs/map_files.md +++ b/docs/map_files.md @@ -5,8 +5,8 @@ map.txt files. These files are [linker version scripts] with comments that are semantically meaningful to [gen_stub_libs.py]. For an example of a map file, see [libc.map.txt]. -[gen_stub_libs.py]: https://cs.android.com/android/platform/superproject/+/master:build/soong/cc/gen_stub_libs.py -[libc.map.txt]: https://cs.android.com/android/platform/superproject/+/master:bionic/libc/libc.map.txt +[gen_stub_libs.py]: https://cs.android.com/android/platform/superproject/+/main:build/soong/cc/gen_stub_libs.py +[libc.map.txt]: https://cs.android.com/android/platform/superproject/+/main:bionic/libc/libc.map.txt [linker version scripts]: https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html ## Basic format @@ -134,6 +134,9 @@ both APEX and the LL-NDK. Historically this annotation was spelled `vndk`, but it has always meant LL-NDK. +When an llndk API is deprecated, the `llndk` tag is dropped and +`llndk-deprecate=<V>` is added. + ### platform-only Indicates that the version or symbol is public in the implementation library but diff --git a/docs/rbe.md b/docs/rbe.md index cfe86d765..be60c83a2 100644 --- a/docs/rbe.md +++ b/docs/rbe.md @@ -11,7 +11,7 @@ build actions through a worker pool sharing a central cache of build results. To enable RBE, you need to set several environment variables before triggering the build. You can set them through a -[environment variables config file](https://android.googlesource.com/platform/build/soong/+/master/README.md#environment-variables-config-file). +[environment variables config file](https://android.googlesource.com/platform/build/soong/+/main/README.md#environment-variables-config-file). As an example, [build/soong/docs/rbe.json](rbe.json) is a config that enables RBE in the build. Once the config file is created, you need to let Soong load the config file by specifying `ANDROID_BUILD_ENVIRONMENT_CONFIG_DIR` environment diff --git a/docs/tidy.md b/docs/tidy.md index 2eb8234c7..ae0ca9360 100644 --- a/docs/tidy.md +++ b/docs/tidy.md @@ -24,7 +24,7 @@ $ WITH_TIDY=1 CLANG_ANALYZER_CHECKS=1 make ``` The default global clang-tidy checks and flags are defined in -[build/soong/cc/config/tidy.go](https://android.googlesource.com/platform/build/soong/+/refs/heads/master/cc/config/tidy.go). +[build/soong/cc/config/tidy.go](https://android.googlesource.com/platform/build/soong/+/refs/heads/main/cc/config/tidy.go). ## Module clang-tidy properties @@ -34,7 +34,7 @@ The global default can be overwritten by module properties in Android.bp. ### `tidy`, `tidy_checks`, and `ALLOW_LOCAL_TIDY_TRUE` For example, in -[system/bpf/Android.bp](https://android.googlesource.com/platform/system/bpf/+/refs/heads/master/Android.bp), +[system/bpf/Android.bp](https://android.googlesource.com/platform/system/bpf/+/refs/heads/main/Android.bp), clang-tidy is enabled explicitly and with a different check list: ``` cc_defaults { @@ -69,7 +69,7 @@ disabled, although `cert-*` is selected. Some modules might want to disable clang-tidy even when environment variable `WITH_TIDY=1` is set. Examples can be found in -[system/netd/tests/Android.bp](https://android.googlesource.com/platform/system/netd/+/refs/heads/master/tests/Android.bp) +[system/netd/tests/Android.bp](https://android.googlesource.com/platform/system/netd/+/refs/heads/main/tests/Android.bp) ``` cc_test { name: "netd_integration_test", @@ -78,7 +78,7 @@ cc_test { tidy: false, // cuts test build time by almost 1 minute ``` and in -[bionic/tests/Android.bp](https://android.googlesource.com/platform/bionic/+/refs/heads/master/tests/Android.bp). +[bionic/tests/Android.bp](https://android.googlesource.com/platform/bionic/+/refs/heads/main/tests/Android.bp). ``` cc_test_library { name: "fortify_disabled_for_tidy", @@ -97,7 +97,7 @@ The global tidy checks are enabled as warnings. If a C/C++ module wants to be free of certain clang-tidy warnings, it can chose those checks to be treated as errors. For example -[system/core/libsysutils/Android.bp](https://android.googlesource.com/platform/system/core/+/refs/heads/master/libsysutils/Android.bp) +[system/core/libsysutils/Android.bp](https://android.googlesource.com/platform/system/core/+/refs/heads/main/libsysutils/Android.bp) has enabled clang-tidy explicitly, selected its own tidy checks, and set three groups of tidy checks as errors: ``` @@ -130,7 +130,7 @@ to clang-tidy. This usage should now be replaced with the Some other tidy flags examples are `-format-style=` and `-header-filter=` For example, in -[art/odrefresh/Android.bp](https://android.googlesource.com/platform/art/+/refs/heads/master/odrefresh/Android.bp), +[art/odrefresh/Android.bp](https://android.googlesource.com/platform/art/+/refs/heads/main/odrefresh/Android.bp), we found ``` cc_defaults { |