Commit Graph

1695 Commits

Author SHA1 Message Date
Automerger Merge Worker
f72855d247 Merge "Abstract sdk_version string using sdkSpec type" am: 057dd35669 am: 6ca47f29ce am: be91dedf1c
Change-Id: I1d5c190c71f53858ad81df4ca20029c870df30ba
2020-01-28 01:00:35 +00:00
Colin Cross
d9a121ba2a Add native_coverage to product variables
Allow native_coverage to adjust sources in product_variables.

Fixes: 148088129
Test: m checkbuild
Change-Id: I9c9d491cda92d69726a0d598408de2060241365b
2020-01-27 16:09:57 -08:00
Treehugger Robot
057dd35669 Merge "Abstract sdk_version string using sdkSpec type" 2020-01-28 00:07:37 +00:00
Automerger Merge Worker
28c8b59204 Merge "Simplify vendor conditionals" am: b7ec426e01 am: aad46116be am: 581f6051b2
Change-Id: I90baa5f2c02821a49196048fcb82d490db54a4a5
2020-01-27 19:44:59 +00:00
Colin Cross
b7ec426e01 Merge "Simplify vendor conditionals" 2020-01-27 19:03:23 +00:00
Jiyong Park
6a927c4e6a Abstract sdk_version string using sdkSpec type
The value format that sdk_version (and min_sdk_version, etc.) can have
has consistently evolved and is quite complicated. Furthermore, with the
Mainline module effort, we are expected to have more sdk_versions like
'module-app-current', 'module-lib-current', etc.

The goal of this change is to abstract the various sdk versions, which
are currently represented in string and is parsed in various places,
into a type called sdkSpec, so that adding new sdk veresions becomes
easier than before.

The sdk_version string is now parsed in only one place 'SdkSpecFrom', in
which it is converted into the sdkSpec struct. The struct type provides
several methods that again converts sdkSpec into context-specific
information such as the effective version number, etc.

Bug: 146757305
Bug: 147879031
Test: m
Change-Id: I252f3706544f00ea71c61c23460f07561dd28ab0
2020-01-25 21:56:43 +09:00
Automerger Merge Worker
ac19633b41 Merge "Create a highmem pool and put metalava into it" am: 6cc0515e82 am: 22a73155aa am: 23671f60c2
Change-Id: I4fac5e5cccbd73da406e384816cbc47a6b69ac10
2020-01-25 03:37:39 +00:00
Automerger Merge Worker
95b7ff6362 Ramdisk modules install to correct location am: 82db735fbc am: a9c9fdf5d3 am: 95d247d8f5
Change-Id: I646ef0e9489f2b35a54415b0d4ff31ec78000888
2020-01-25 01:14:15 +00:00
Automerger Merge Worker
7c6b9aa0f4 Add ramdisk image. am: 1b3348d50a am: 45fd8b4547 am: f9e51442b6
Change-Id: Icfa7eaeaa70bc7380a01b33c110f74ec783c8b4d
2020-01-25 01:14:09 +00:00
Treehugger Robot
6cc0515e82 Merge "Create a highmem pool and put metalava into it" 2020-01-25 01:09:43 +00:00
Colin Cross
9d34f35815 Simplify vendor conditionals
Support vendor conditionals with no Go code.

Test: TestSoongConfigModule
Change-Id: I42546e7f17324921ada80f4d8e1cd399830f8dfc
2020-01-24 16:43:40 -08:00
Yifan Hong
a9c9fdf5d3 Ramdisk modules install to correct location
am: 82db735fbc

Change-Id: I36abb4def08d4b1ce463ad18e1d0ff4099985d8a
2020-01-24 16:33:17 -08:00
Yifan Hong
45fd8b4547 Add ramdisk image.
am: 1b3348d50a

Change-Id: I9bf85d8119a970b0526a13b6a7e251f6de307929
2020-01-24 16:32:50 -08:00
Yifan Hong
a8c82cc218 Merge changes from topics "board_use_recovery_as_root_soong", "ramdisk"
* changes:
  libatomic / libgcc_stripped: ramdisk_available
  Add target.ramdisk
  Ramdisk modules install to correct location
  Add ramdisk image.
2020-01-24 22:39:41 +00:00
Colin Cross
8b8bec3b3a Create a highmem pool and put metalava into it
Create a highmem pool based on the total RAM and the number of CPUs,
with an override via the NINJA_HIGHMEM_NUM_JOBS variable.  Put
metalava into the highmem pool.

Ninja does not support nested pools, and when goma or RBE is enabled
the maximum ninja parallelism is set very high with local jobs in a
local pool.  When both the local pool and highmem pool are enabled,
the total number of local jobs will be as high as the sum of the sizes
of the two pools.  Keep the highmem pool limited to 1/16th of the
local pool when remote builds are enabled to try to minimize the
effect while still limiting highmem jobs.

Fixes: 142644983
Test: m nothing, examine pools
Test: m USE_GOMA=true nothing, examine pools
Change-Id: Id79f11f44948992960ac34ecf831dacbe21bd332
2020-01-24 11:44:23 -08:00
Automerger Merge Worker
3f760d9a74 Merge changes from topic "filtershard" am: c61b38904e am: 0a110390f4 am: d07988030a
Change-Id: Ide71eef83c9667c63aa0e8e5a4482d353aa85aec
2020-01-23 22:10:02 +00:00
Colin Cross
c61b38904e Merge changes from topic "filtershard"
* changes:
  Pass desired size proptools.FilterPropertyStructSharded
  Do a better job removing tags from arch structs
  Split the runtime arch property structs into 3
2020-01-23 21:26:39 +00:00
Colin Cross
b1d8c99e12 Pass desired size proptools.FilterPropertyStructSharded
proptools.FilterPropertyStructSharded now takes a desired max size
of the name.

Fixes: 146234651
Test: all soong tests
Change-Id: Ifa10039e5f55a5d0f4a35172983d43f33af88e93
2020-01-22 18:30:56 -08:00
Colin Cross
b4fecbfef4 Do a better job removing tags from arch structs
Remove more android struct tags from runtime created arch structs
to reduce the size of their names, which hit the 64kB limit in
runtime.StructOf if they are too long.

Bug: 146234651
Test: m checkbuild
Change-Id: I6362765275b93c8932eb0b1abbcb4be47031d9b1
2020-01-22 18:30:56 -08:00
Yifan Hong
82db735fbc Ramdisk modules install to correct location
Install to recovery/root/first_stage_ramdisk if BOARD_USES_RECOVERY_AS_BOOT,
otherwise ramdisk. In addition, append /system if not InstallInRoot().

Test: pass
Bug: 147347110
Change-Id: Ie5895ac61a3d5d85f5d958a27c7980d6c79d997e
2020-01-22 16:54:18 -08:00
Yifan Hong
1b3348d50a Add ramdisk image.
It is similar to recovery image.
Test: m nothing -j

Change-Id: I11389777c6bfb0c0d73bbb4c70091c1e70f44077
2020-01-22 16:54:18 -08:00
Automerger Merge Worker
b67cb16f4e Merge "Add coverage flags for Clang coverage builds." am: b6aeb14150 am: 195ed73e05 am: a5486a3ce4
Change-Id: Ice10bb5085f0ecb1330c5c12086d10b6ce6d6407
2020-01-22 22:57:36 +00:00
Oliver Nguyen
b6aeb14150 Merge "Add coverage flags for Clang coverage builds." 2020-01-22 22:34:35 +00:00
Automerger Merge Worker
b8cf5d1a7c Merge "Add FinalDeps mutator phase, where CreateVariations is disallowed." am: 3b23789ffa am: 72810bcd8a am: 718a1772c9
Change-Id: Ifa6fed376f3be94013d7e065abccb6b49d37e83d
2020-01-21 20:11:49 +00:00
Colin Cross
cbbd13f9bc Split the runtime arch property structs into 3
Instead of creating a runtime generated struct type:
struct {
    Arch struct {
        Arm struct {
            Armv7-a struct {
                ...
            }
        }
        ...
    }
    Multilib struct {
        Lib32 struct {
            ...
        }
        ...
    }
    Target struct {
        Android struct {
            ...
        }
        ...
    }
}

Replace it with a top-level struct of empty interfaces:
type archPropRoot struct {
        Arch, Multilib, Target interface{}
}

And then embed nil pointers to smaller structs inside it:
struct {
    Arm struct {
        Armv7-a struct {
            ...
        }
    }
    ...
}

This reduces the maximum number of times the archecture specific
properties are embedded in a runtime generated struct from 139
to 97, which makes it easier to avoid hitting the runtime generated
struct name size limit of 64kB.

Bug: 146234651
Test: all soong tests
Change-Id: I901c434ac9a1d99c74fc2370c5e6803b3682dc73
2020-01-21 11:54:53 -08:00
Martin Stjernholm
710ec3aef2 Add FinalDeps mutator phase, where CreateVariations is disallowed.
This is for use to add dependencies between specific module variants,
without getting the dependencies potentially duplicated as more
variants are created.

Moved genrule tool dependency registration to this phase, to avoid
potential splitting of its dependencies, and for consistency with the
same kind of dependency on dex2oat in https://r.android.com/1205730.

Test: m nothing
Bug: 145934348
Change-Id: I1f9e75354e359cef5f41d14e5016b0a67d7655d7
2020-01-21 11:40:02 +00:00
Automerger Merge Worker
cf39cf80c8 Merge "Clarify a bit more what apex_available means." am: dca59a516d am: b7be1acd0b am: 1c54bcbfb6
Change-Id: I46b9a7c568d9a6a61d3474d740608a037a6b6e0b
2020-01-20 13:34:21 +00:00
Treehugger Robot
dca59a516d Merge "Clarify a bit more what apex_available means." 2020-01-20 13:07:07 +00:00
Martin Stjernholm
06ca82d6ff Clarify a bit more what apex_available means.
Test: n/a - comment change only
Change-Id: I5311dca32a4e43c3765a3ea26d2b8781ce113433
2020-01-17 13:02:56 +00:00
Automerger Merge Worker
c4e6501ed7 Merge "Fix dependencies through symlinks" am: d66b2fd3cf am: eb5078f0a6 am: ba480acb30
Change-Id: Ia0b3657e59975f230e7478cf206a5259931f4f68
2020-01-17 00:21:35 +00:00
Treehugger Robot
d66b2fd3cf Merge "Fix dependencies through symlinks" 2020-01-16 23:21:25 +00:00
Jaewoong Jung
6431ca7a3a Add rules to handle asset resources.
AAPT2 ignores assets in overlay resource inputs, so separate rules are
required to extract and merge assets from dependencies.

Test: app_test.go
Test: Added assets to Settings-core for testing
Test: Confirmed Settings.apk contains them with this change.
Fixes: 146655310
Change-Id: Iab8bc61b719541dae64f0e3502bc9cb45a353687
2020-01-16 12:19:49 -08:00
Automerger Merge Worker
4c167ae85d Merge "Save compilation units in protobuf format." am: 1be2d48005 am: e0703cdd88 am: 0a5b3ff2b7
Change-Id: I1d9d4c999b72443c36f992050987962a55cb4056
2020-01-16 19:27:17 +00:00
Treehugger Robot
1be2d48005 Merge "Save compilation units in protobuf format." 2020-01-16 18:55:26 +00:00
Dan Willemsen
40efa1cd31 Fix dependencies through symlinks
Now that ninja uses lstat so that we can get the mtime of the symlink
itself, it's safe to use a real input here rather than an order only
input. This matches how our other install rules work for host files.
Symlinks should be quick to recreate, so I'm not copying the logic to do
order-only dependencies for the device.

Bug: 128577186
Bug: 145278193
Bug: 135515543
Test: m out/target/product/walleye/apex/com.android.art.debug/javalib/arm/boot.art
      rm out/soong/host/linux-x86/bin/dex2oatd64
      m out/target/product/walleye/apex/com.android.art.debug/javalib/arm/boot.art

Change-Id: Ief5ec752ce0d0216aeecd8e904afc59f3f08ed7d
2020-01-16 17:13:35 +00:00
Anton Hansson
eec79ebe03 Default apex_available to //apex_available:platform
This means everything that goes into apexes need to be
explicitly labeled to be available for apex.

Whitelist the current offenders. This list should be
trimmed down.

Bug: 147364041
Test: m
Test: multiproduct_kati -only-soong
Exempt-From-Owner-Approval: cherry-pick from internal
Change-Id: I837299c6a15d46f8a5ba544b613776b1cc27d7b8
Merged-In: I837299c6a15d46f8a5ba544b613776b1cc27d7b8
(cherry picked from commit 93488cbb10d4882845abb732f8e53714f0982031)
2020-01-16 09:14:03 +00:00
Anton Hansson
0fdb01dc7d Merge "Default apex_available to //apex_available:platform" 2020-01-16 08:10:35 +00:00
Anton Hansson
5053c293ab Default apex_available to //apex_available:platform
This means everything that goes into apexes need to be
explicitly labeled to be available for apex.

Whitelist the current offenders. This list should be
trimmed down.

Bug: 147364041
Test: m
Test: multiproduct_kati -only-soong
Exempt-From-Owner-Approval: Just added more whitelist entries
Change-Id: I837299c6a15d46f8a5ba544b613776b1cc27d7b8
2020-01-16 08:07:16 +00:00
Automerger Merge Worker
d84989724b Merge changes I0668ff5a,Iff2d7063,I6f8b1e2d,I126db49d,Ic6582260 am: a35294889f am: 273045701d am: 2e84d4d4ea
Change-Id: I169c252ec78ad9846b86673bcfbc3eda08059552
2020-01-16 02:33:21 +00:00
Sasha Smundak
6c2d4f91f8 Save compilation units in protobuf format.
Bug: 146224091
Test: manual
Change-Id: I7a856bab13f54c78efa0061421c3fcb9341bc6e7
2020-01-15 12:40:03 -08:00
Paul Duffin
78ac5b962e Exclude source->prebuilt deps from visibility enforcement
When both prebuilt and source versions of a module are present in the
build an implicit dependency is added from source -> prebuilt. This
change excludes that dependency from visibility enforcement as it
provides no value and would otherwise require an sdk snapshot to
rewrite the visibility of the generated prebuilt modules which would
be complicated.

The rewriting would include:
* Detecting //visibility:public and just passing that straight through.
* Detecting //visibility:private and replacing that with the location
  of the source.
* Otherwise, adding the location of the source to the visibility
  property.

This adds a general mechanism to allow any dependency to be excluded
from visibility enforcement by simply using a tag that implements
the ExcludeFromVisibilityEnforcementTag interface.

Bug: 142940300
Test: m nothing
Change-Id: I0668ff5aa798152d17faf3aac1bb8eff8d6350c3
2020-01-15 11:17:57 +00:00
Paul Duffin
c132742c96 Dedup package build components registration
Bug: 146540677
Test: m nothing
Change-Id: Iff2d7063b7f06313e9068c61a5627229463c98dd
2020-01-15 11:17:57 +00:00
Paul Duffin
a80ef84652 Support registering hard coded pre arch mutators
Some pre arch mutators are hard coded into mutator.go and so could not
share code for registering those mutators between tests and runtime.
This change adds a new HardCodedPreArchMutators(RegisterMutatorFunc)
method to RegistrationContext which allows hard coded mutators to be
registered alongside other build components during init() and testing.

The method is treated as a noop on the InitRegistrationContext and
behaves just like the PreArchMutators(RegisterMutatorFunc) method on
the TestingContext.

Bug: 146540677
Test: m nothing
Change-Id: I6f8b1e2d54d9dc4e86f951ced61d1ee7b0fe4b2e
2020-01-15 11:17:57 +00:00
Automerger Merge Worker
889f0a3d41 Merge "Sandbox soong_build by changing to root directory" am: ae7cddd5ad am: 70eefb570a am: 9280bf9474
Change-Id: I7d749bf12f039ca72bd59f4264082043f1f14fde
2020-01-11 07:34:02 +00:00
Treehugger Robot
ae7cddd5ad Merge "Sandbox soong_build by changing to root directory" 2020-01-11 06:00:21 +00:00
Colin Cross
988414c2cf Sandbox soong_build by changing to root directory
This relands I12a0f907753fefd1997ab8b4ea2ac331234093cf along with
a fix to blueprint for absolute paths.

Store the current working directory and then change to the root
directory so that all file accesses must go through helpers in
the android package that properly track dependencies.

Change-Id: I24ac485677aa102eec1a2521d16820da6ee1ae77
Fixes: 146437378
Test: m checkbuild
Test: m OUT_DIR=/tmp/out nothing
2020-01-11 01:11:46 +00:00
Automerger Merge Worker
aae3ee0e7b Merge "Rename OverridableModuleBase.properties." am: 5fa3a1f743 am: 1e38e20682 am: ff367b69af
Change-Id: Ie8d88ed7ae467332973603fa70f70e4ce53e3212
2020-01-11 00:33:05 +00:00
Treehugger Robot
5fa3a1f743 Merge "Rename OverridableModuleBase.properties." 2020-01-10 23:59:34 +00:00
Automerger Merge Worker
8c02671d51 Merge "Revert "Sandbox soong_build by changing to root directory"" am: e734832d25 am: 408fab4d25 am: f84fe5fbd4
Change-Id: Iac451a70c28566f8413b2495e8ae8a24b80e2a2f
2020-01-10 22:31:07 +00:00
Jaewoong Jung
b64dd002b3 Rename OverridableModuleBase.properties.
The generic name causes confusion, even to the IDE.

Test: TreeHugger
Change-Id: I0cb4959ab41b4732e7ee7a5d1d818ef771674023
2020-01-10 13:26:00 -08:00