Commit Graph

3897 Commits

Author SHA1 Message Date
Colin Cross
a8bd977845 Make HostJavaToolPath use pathForInstall am: ae5330a2d9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1880648

Change-Id: I0e35100226020451befb3993cf3b3c44b34af010
2021-11-10 17:28:49 +00:00
Treehugger Robot
8a709b149b Merge changes from topic "soong-java-install"
* changes:
  Revert "Temporarily add method to get java binary tool"
  Move java module installation into Soong
  Fix ctx.InstallFile calls for java modules
  Make HostJavaToolPath use pathForInstall
2021-11-10 17:05:51 +00:00
Rupert Shuttleworth
2ac9c48ee6 Allow libbuildversion to build with Bazel, but skip its 'tests' subdir for now.
Bug: 198241918

Test: build/bazel/scripts/run_presubmits.sh

Change-Id: I9ab423bf8131de855cf0c380cd42e9fd662c7bfb
2021-11-10 11:16:05 -05:00
Colin Cross
64002afc56 Fix InstallBypassMake symlink dependencies
Host symlinks cannot use order-only dependencies because they may be
used as part of the dependency chain on a tool, and an order-only
dependency would cause the target of the symlink not to be updated.
Use regular dependencies instead.

Bug: 204136549
Fixes: 205674000
Test: TestInstallBypassMake
Change-Id: Ib3f4ee143e94d1995ec6c60d314e7c91e57cc775
2021-11-09 17:25:57 -08:00
Colin Cross
6ac9576eef Add tests for ctx.InstallFile
Add tests that cover Soong-only installation as well as installation with
InstallBypassMake.

Bug: 204136549
Test: TestInstall
Test: TestInstallBypassMake
Change-Id: Iac22c9fdf99994e06b419623ee5fa399ef6957fb
2021-11-09 17:25:57 -08:00
Colin Cross
7b6a55f5a2 Fix OutDir vs SoongOutDir in tests
Tests were using the same value for OutDir and SoongOutDir, separate
them to allow a test that needs to distinguish between them.

Test: all soong tests
Change-Id: Ibd78758c133a7f07bead3f51b699052676f92fbd
2021-11-09 17:25:57 -08:00
Colin Cross
d642113643 Add missing os.MkdirAll to WriteFileToOutputDir
Fix tests when out/soong doesn't already exist by adding os.MkdirAll
to WriteFileToOutputDir.

Test: soong tests
Change-Id: I2a2b10e43b967d0c61d0dbe6a3f8bf381babe73c
2021-11-09 17:25:57 -08:00
Colin Cross
836e387323 Use pathtools.WriteFileIfChanged in translateAndroidMk
pathtools.WriteFileIfChanged was reimplemented in translateAndroidMk,
but without a call to os.MkDirsAll.  Reuse pathtools.WriteFileIfChanged.

Test: soong tests
Change-Id: If3f6a7bfc172b4a1a8945109801146c2b7e72b96
2021-11-09 17:25:57 -08:00
Jingwen Chen
ba9200f3be Merge "bp2build: add support for soong_config_module_type." am: 8c10020ffd am: a207f3a127 am: 81cbd8462a am: 4aebb43d72
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1878091

Change-Id: I0ab9af93f96010c3fa1f43b7bbcffb653993dd5c
2021-11-09 08:35:27 +00:00
Jingwen Chen
8c10020ffd Merge "bp2build: add support for soong_config_module_type." 2021-11-09 06:59:34 +00:00
Jingwen Chen
a47f28d28e bp2build: add support for soong_config_module_type.
Test: CI, go unit test
Bug: 198556411
Change-Id: Idf862904d51d822f92af0c072341c31b7a02fc64
2021-11-08 13:38:28 +00:00
Michael Wright
44af49bf3a S V2 is now 32 am: 08dd45a3b5
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/16140643

Change-Id: I1f3e05582a9adc0d5b37b6c7fbf73b10a65f40d0
2021-11-06 16:06:51 +00:00
Colin Cross
c899d7808e Revert "Temporarily add method to get java binary tool"
Java binaries and cc binaries are in the same directory again, the
separate method can be removed.

Bug: 204136549
Test: m checkbuild
Change-Id: I2e7ca82448aba5c7e54d3c3c376fe14a953ef4af
2021-11-05 14:26:53 -07:00
Colin Cross
24cc4be60b Move java module installation into Soong
Move java module installation rules into Soong by overriding
InstallBypassMake.  Update the locations that find host java tools
to look in the Make installation directory instead of the Soong
installation directory, which will no longer be used.

Bug: 204136549
Test: m checkbuild
Change-Id: I5af6d764c97e7ddb5ee121fc9830166c25d831b1
2021-11-05 14:24:51 -07:00
Colin Cross
1d0eb7a9d0 Fix ctx.InstallFile calls for java modules
Call ctx.InstallFile on the primary install file last so that the
primary install file can depend on the extra install files, and so that
the primary install file can be inferred from the last installed file.

Add missing ctx.InstallFile calls for the dexpreopt and hostdex outputs.

Fix the install subdirectory for modules installing to the testcases
directory.

Bug: 204136549
Test: m checkbuild
Change-Id: I7edd7647be27439d3ca0ecc589ca5e89d4ba8474
2021-11-05 14:20:28 -07:00
Colin Cross
ae5330a2d9 Make HostJavaToolPath use pathForInstall
Use pathForInstall instead of PathForOutput for HostJavaToolPath
so that it internally produces an InstallPath that can later support
being converted to Make installpath.

Bug: 204136549
Test: m checkbuild
Change-Id: If4f5d3552b27ffe6b9bc709c4a08d9513c49ef7d
2021-11-05 14:20:28 -07:00
Michael Wright
08dd45a3b5 S V2 is now 32
Bug: 204295952
Test: N/A
Change-Id: Ib13f30c27cf79c2903e05d3c2cd27d79c4a28668
Merged-In: Ib13f30c27cf79c2903e05d3c2cd27d79c4a28668
2021-11-05 19:39:17 +00:00
Colin Cross
6fa618ce4c Merge changes from topic "soong-cc-install" am: fc06a59904 am: f8d0d6db23 am: 17b89eb071 am: 5a7cc8a4c9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1869554

Change-Id: Ic9aa5049725526e3a1dcbc967c548328de128ab4
2021-11-05 18:22:57 +00:00
Colin Cross
3d559dfa76 Temporarily add method to get java binary tool am: 3e3eda6eb6 am: de02e95b6b am: 3f21b44020 am: 2f07606ce3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1881030

Change-Id: Ib409b8b37ab36902959ee1c351147ab47079ec53
2021-11-05 18:22:56 +00:00
Inseob Kim
a92d10bdf2 Add seapp_contexts to allowlist of makefile goal
This is an interim solution before seapp_contexts and seapp_neverallows
are migrated into Soong. CtsSecurityHostTests needs these two modules.

Bug: 194096505
Test: build
Change-Id: I5596d6f00b957afd86c752501c1e83b3d4089d9e
2021-11-05 05:10:26 +00:00
Colin Cross
3e3eda6eb6 Temporarily add method to get java binary tool
cc binaries are moving from out/soong/host/linux-x86/bin to
out/host/linux-86/bin first, to be followed by java binaries.
Temporarily add a method that gets the java binary path while
it is different from the cc binary path.

Bug: 204136549
Test: m checkbuild
Change-Id: I04a7e741436da6be68078f23d074870413a5bb5e
2021-11-04 10:28:58 -07:00
Colin Cross
acfcc1f682 Move cc module installation into Soong
Move cc module installation rules into Soong by overriding
InstallBypassMake.  Update the locations that find host tools
to look in the Make installation directory instead of the Soong
installation directory, which will no longer be used.

The methods that find host tools are also used on go binaries,
so update the config methods that tell Blueprint where to install
go binaries to the Make installation directory too.

Bug: 204136549
Test: m checkbuild
Change-Id: Id172592c195e506102982a4af0084f6d9c68a896
2021-11-04 10:28:58 -07:00
Treehugger Robot
d75e0632ce Merge "Convert .meta_lic files to textproto" am: c37663aad9 am: f447825a3e am: c17562e703 am: fbc04ca616
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1866113

Change-Id: Ia0e621b1c8a52f290f8937c118edf0fa5e5155ad
2021-11-03 19:49:39 +00:00
Treehugger Robot
c37663aad9 Merge "Convert .meta_lic files to textproto" 2021-11-03 18:31:02 +00:00
Treehugger Robot
948e460567 Merge changes Id11f4fb1,Id573d970,Ia94a0b5c am: a3bd963988 am: 62539c2872 am: 3fe1cc8006 am: e681a108f9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1878086

Change-Id: I460510263d1aaeb53b730b25389940fec0b96205
2021-11-03 16:48:48 +00:00
Paul Duffin
101809dbec Merge "Use module-lib system modules when building from prebuilts" am: 8380ee66a5 am: f7b8ad3546 am: 9bde48822f am: d3a64c082c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1877320

Change-Id: I9481b3823cacf08799d977b7f3bd9a0999823e8a
2021-11-03 16:48:40 +00:00
Treehugger Robot
a3bd963988 Merge changes Id11f4fb1,Id573d970,Ia94a0b5c
* changes:
  Fix //conditions:default excludes computation for LabelListAttribute.
  bp2build: split Bazel conversion context into smaller ones, and change TopDownMutatorContext signatures to use Bazel conversion context.
  Add an error check in `bazelPackage` for malformed labels.
2021-11-03 15:36:28 +00:00
Paul Duffin
8380ee66a5 Merge "Use module-lib system modules when building from prebuilts" 2021-11-03 15:32:42 +00:00
Liz Kammer
cad47b9b82 Merge "Update bp2build denylist cause" am: 5506c1658c am: ae5a9f4d14 am: 1476238b34 am: a7479d0376
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1878026

Change-Id: I9c89f90e90bee43a32e0d5c758bb05d0adae3917
2021-11-03 15:12:13 +00:00
Liz Kammer
5506c1658c Merge "Update bp2build denylist cause" 2021-11-03 14:19:16 +00:00
Wei Li
0ed18e09bc Keep the following targets disabled in mixed build since there are errors in mixed_droid CI after go/oag/1861755 is submitted. am: c989eaf4c3 am: e18517bc25 am: bedc6ecdc8 am: 5b5731cd0d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1879178

Change-Id: I9debadd841fddcb6097977b24a12c4e71a43b8ff
2021-11-03 05:53:41 +00:00
Wei Li
c989eaf4c3 Keep the following targets disabled in mixed build since there are errors in mixed_droid CI after go/oag/1861755 is submitted.
func_to_syscall_nrs
libseccomp_policy_app_zygote_sources
libseccomp_policy_app_sources
libseccomp_policy_system_sources

Test: CI
Bug: 204949078

Change-Id: Iaf9d7cd8831da984bcee82399be138ebe3aab9e8
2021-11-03 04:15:36 +00:00
Liz Kammer
b84b8c9c9a Update bp2build denylist cause
The binary is converted; however, there are still issues with the host
toolchain.

Test: build/bazel/ci/bp2build.sh
Change-Id: Idf864ea6c64c0c7bbbaa0c9d43d6eac5120e0268
2021-11-02 15:03:12 -04:00
Wei Li
3711fd9d9a Fix python_binary_host module in mixed build. am: 664a4fd0af am: f214e0730f am: 430d9cc257 am: 9c3efc3efa
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1861755

Change-Id: I8f074d1161f451572d7e0ac93c37c5b9e2ce16cc
2021-11-02 18:13:08 +00:00
Wei Li
664a4fd0af Fix python_binary_host module in mixed build.
Test: USE_BAZEL_ANALYSIS=1 m genfunctosyscallnrs
Test: USE_BAZEL_ANALYSIS=1 m func_to_syscall_nrs
Test: USE_BAZEL_ANALYSIS=1 m libseccomp_policy
Bug: 201094425, 197135289

Change-Id: Ibc8b99a92149410c8a879b7a4facf6c8961a7b9f
2021-11-02 17:04:38 +00:00
Jingwen Chen
55bc820d66 bp2build: split Bazel conversion context into smaller ones,
and change TopDownMutatorContext signatures to use Bazel conversion context.

This minimizes the context interfaces/functions actually needed to
convert a module, and makes such interfaces easier to mock/test.

Test: CI
Change-Id: Id573d97023d59e06ef70e1f54437024d3f7aadbd
2021-11-02 06:51:27 +00:00
Dan Willemsen
6658910853 Add Darwin+Arm64 toolchain support am: 8528f4ec5e am: e44a424acc am: 648df28c38 am: 508f4b07f7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1863969

Change-Id: I2be55fedd8b7fe25d35684c8c7e2df8dc554d66e
2021-11-02 06:26:34 +00:00
Jingwen Chen
80b6b64db5 Add an error check in bazelPackage for malformed labels.
Bug: 204281595
Test: CI
Change-Id: Ia94a0b5c8dd3a0294475e9bc816a19ae03f7342d
2021-11-02 06:24:31 +00:00
Colin Cross
34c7832aaa Convert .meta_lic files to textproto
Make it easier to write tools against .meta_lic files and store complex
data by writing them in textproto.

Test: builds

Change-Id: I54bb82cc5581d17078fd0f56eed43a7364dc70db
2021-11-01 16:32:31 -07:00
Colin Cross
90c6322388 Merge "Export Soong install rules to Make" am: 1caea35278 am: 7f5f69f9ba am: 5e5d6332b4 am: 71aa08677d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1869552

Change-Id: Ic8af7758dfa4b0b4a1983ed1bf7a038191880069
2021-11-01 22:46:10 +00:00
Dan Willemsen
8528f4ec5e Add Darwin+Arm64 toolchain support
This just sets up the toolchain and allows Darwin+Arm64 to be specified
as a HostCross target. These variants will not be exported to Make, or
be installed on a Soong-only build. A future CL will add support for
universal binaries using these variants.

This config is a bit stranger than the regular 64/32 multilib, as it's
two primary 64-bit configs. And on a Darwin/X86 machine, the Arm64
versions are HostCross (doesn't work on the current machines), while a
Darwin/Arm64 machine, either version works (if Rosetta is installed).

Bug: 203607969
Change-Id: Iacaed77d267773672da027cd74917e33fb1c1e94
2021-11-01 15:07:37 -07:00
Colin Cross
1caea35278 Merge "Export Soong install rules to Make" 2021-11-01 21:31:56 +00:00
Paul Duffin
004547facd Use module-lib system modules when building from prebuilts
When building from source the build uses the java system modules for
the public or module APIs as needed. However, previously when building
from prebuilts it would always use the public API. That difference lead
to build failures when building from prebuilts.

This change makes the selection of java system modules when building
from prebuilts consistent with the selection when building from
sources.

As API levels 30 and 31 (which are the only previous releases to
provide system modules) did not provide separate java system modules
for the module-lib API those levels always use the public APIs.

Bug: 204189791
Test: - before applying these change
      m TARGET_BUILD_APPS=framework-connectivity
      - build fails with compilation error due to missing module APIs
      m sdk dist
      cp out/dist/system-modules/module-lib/core-for-system-modules.jar prebuilts/sdk/current/module-lib/core-for-system-modules.jar
      - apply these changes
      m TARGET_BUILD_APPS=framework-connectivity
      - build passes as expected
Change-Id: Id113ff014e7892b1009fbcaad89b1ae23a7c3b79
2021-11-01 16:40:28 +00:00
Colin Cross
ac0c4570bc Merge changes I04f2f558,Ie16a6264,I83a3be9f,Icb3eeef3 am: 91eaa6316a am: 19aa461cc0 am: 204c59ef91 am: e097970ad8
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1869551

Change-Id: Ibe28eedaac9545d551d1d13a490b7f2e9ed004bb
2021-10-30 20:41:07 +00:00
Colin Cross
91eaa6316a Merge changes I04f2f558,Ie16a6264,I83a3be9f,Icb3eeef3
* changes:
  Rename amod variable in AndroidMkEntries.fillInEntries to base
  Make HostToolPath, HostJNIToolPath and sboxPathForToolRel use pathForInstall
  Add PathForGoBinary
  Remove PathForOutput from InstallPathToOnDevicePath
2021-10-30 19:19:53 +00:00
Chih-hung Hsieh
5722592c6a Merge "Add -{checkbuild,tidy} targets only for modules in mm" am: 7b2239f648 am: 6ac43742fc am: 8044ebf38b am: 9b872ac262
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1858736

Change-Id: I3f4649b20d93b7509ccdf1accdd227d4dc152173
2021-10-30 05:11:49 +00:00
Chih-hung Hsieh
7b2239f648 Merge "Add -{checkbuild,tidy} targets only for modules in mm" 2021-10-30 03:57:06 +00:00
Chih-Hung Hsieh
a3d135b1af Add -{checkbuild,tidy} targets only for modules in mm
Test: lunch aosp_coral-userdebug; WITH_TIDY=1
      make 7-libgptutils.coral-checkbuild 7-libgptutils.coral-tidy
Test: only coral libgptutils in out/build-aosp_coral.ninja
Test: lunch aosp_arm64-eng; make has no *libgptutils* tagets
Test: no libgptutils in out/build-aosp_arm64.ninja
Test: lunch aosp_cf_arm64_phone-userdebug; make libskia-checkbuild
Test: lunch aosp_arm64-eng; WITH_TIDY=1 make tidy-soong

Bug: 202763874
Change-Id: I2d5a3fdc627d62e43c3f10e61b338a03c10440be
2021-10-29 18:02:27 -07:00
Colin Cross
6301c3cffa Export Soong install rules to Make
Previously Soong's install rules have been disabled when embedded
in Make (ctx.Config().KatiEnabled() == true).  The primary blocker
for moving installation into Soong has been the `required` proeprty,
which is too vague to be easily handled in Soong.  Keeping
installation in Make has resulted in two host bin directories,
the Make-owned directory (e.g. out/host/linux-x86/bin), and the
Soong-owned directory (e.g. out/soong/host/linux-x86/bin).  The
lack of knowledge in Soong about the final, Make-owned installation
location makes it hard to support NOTICE files entirely in Soong.

This patch begins to solve this problem by supporting the creation of
the installation rules into Soong, but rather than writing the rules
to the ninja file it writes them to a Makefile and lets Kati convert
them to ninja.  This allows Kati to inject extra dependencies to
handle the `required` property.

Converting all modules to create their installation rules in Soong
would be too complex, so only modules that return true from
InstallBypassMake will use the Soong installation rules.  This
is currently only set for robolectric tests.

Bug: 204136549
Test: m checkbuild
Change-Id: I28af9fa7fadece8ea1f98f5efd140c823751cae7
2021-10-29 16:34:55 -07:00
Colin Cross
f1f763a981 Rename amod variable in AndroidMkEntries.fillInEntries to base
AndroidMkEntries.fillInEntries calls its android.ModuleBase amod,
despite also handling an android.Module.  Rename amod to base to
match other locations, and add a new amod for the android.Module.
This will simplify the next patch that needs to access the
android.Module.

Bug: 204136549
Test: m checkbuild
Change-Id: I04f2f558959def22e8b3f5b8c534b8d655b06a4e
2021-10-29 16:34:55 -07:00