Commit graph

54 commits

Author SHA1 Message Date
Cole Faust
c6a0d4dd2c Mention LOCAL_POST_INSTALL_CMD when talking about BUILD_BROKEN_INCORRECT_PARTITION_IMAGES
Bug: 205632228
Test: None
Change-Id: I9eda7de5cf48881f8bbe1404ee1a17deb2608c61
2023-09-12 16:54:19 -07:00
Cole Faust
152cdfab7c Clean staging dirs in build_image.py
build_image.py now accepts a --input-directory-filter-file argument
that contains a list of files to consider from the input directory.
A new, temporary input directory will be created, and only the
considered files will be copied to it.

This removes most of the need for `m installclean`, as old files or
files built manually will no longer end up on the partition.

Bug: 205632228
Test: Presubmits
Change-Id: I07e0bf8e840abf0b51a2fdf67b758905fb3c5b5b
2023-09-08 16:24:26 -07:00
Firman Prayoga
df21706765 Revert "Clean staging dirs in build_image.py"
Revert submission 2736954-proper_installclean

Reason for revert: Potential culprit for build breakage b/299545346

Reverted changes: /q/submissionid:2736954-proper_installclean

Change-Id: I2b0671bd40b7a74ef02923a777ec899401691454
2023-09-08 01:24:45 +00:00
Cole Faust
48b81e7386 Clean staging dirs in build_image.py
build_image.py now accepts a --input-directory-filter-file argument
that contains a list of files to consider from the input directory.
A new, temporary input directory will be created, and only the
considered files will be copied to it.

This removes most of the need for `m installclean`, as old files or
files built manually will no longer end up on the partition.

Bug: 205632228
Test: Presubmits
Change-Id: I4c82ac7f1ed49a37271755749c8f72afeeb7f295
2023-09-06 11:51:13 -07:00
Liz Kammer
b607281fae Allow setting some build_broken out of boardconfig
Some build broken flags are for cross-cutting features rather than
board-specific. In order to support these without requiring broad
changes across many board configs, these can be set in a buildspec.mk
files.

Test: set build_broken flags in environment, get expected fail
Test: set build_broken flags in buildspec, get expected success
Change-Id: I8a74c30575f6bf40e46281ca5f37f3cfed526ec5
2023-07-21 15:51:58 -04:00
Treehugger Robot
2014bbb8e7 Merge "Add BUILD_BROKEN_PLUGIN_VALIDATION flag" 2023-05-23 17:08:46 +00:00
Jeongik Cha
05210f96b3 BUILD_NUMBER and BUILD_HOSTNAME doesn't affect kati regeneration
* Extract BUILD_NUMBER, BUILD_HOSTNAME to file to avoid kati change
* Handle FILE_NAME_TAG_PLACEHOLDER string in dist in build/make/packaging/distdir.mk

Test: check if kati isn't invoked even though BUILD_NUMBER, BUILD_HOSTNAME
  is changed
Test: m && m, and check if the second m is no-op
Bug: 278060169
Change-Id: I1b37760242853c1a145bad255d0bb15524234b25
Merged-In: I1b37760242853c1a145bad255d0bb15524234b25
2023-05-23 07:14:22 +09:00
Liz Kammer
bc4f48c415 Add BUILD_BROKEN_PLUGIN_VALIDATION flag
Use is to specify the list of plugins are are not allowed.

Ignore-AOSP-First: Requires an internal only change to not break when submitted
Test: CI
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f24be9dba9b53b0c1682929253a3eba9af7a4c31)
Merged-In: Ia2fe83d82ead618e480e99a82b1b825ed08d3eab
Change-Id: Ia2fe83d82ead618e480e99a82b1b825ed08d3eab
2023-05-18 18:20:22 +00:00
Cole Faust
189905be98 Add BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES
See other cl in this topic for more details.

Bug: 203436762
Test: m nothing
Change-Id: I76725afece50a022aec611091ef4dead5ad3449a
2023-03-09 11:55:29 -08:00
Cole Faust
cb30a801c5 Document changes to soong config string variables
Bug: 220375749
Test: N/A
Change-Id: Ie7a621eec40488ef63f74d70a91dc5849de2f90a
2022-11-07 17:52:28 -08:00
Alix Espino
38e07f1baf Revert "Revert "Default BuildBrokenClangCFlags & BuildBrokenCla..."
Revert^2 "deletion of clang_cflags & clang_asflags from Soong"

e9a6865bc7c51028ed348f6d1c6b975ee8b98837

Test: Treehugger
Change-Id: Ibda75c075d0d88f2c11fd10722c9a74481ee965a
2022-09-21 16:45:00 +00:00
Alix Espino
65f28793ab Revert "Default BuildBrokenClangCFlags & BuildBrokenClangAsFlag..."
Revert "deletion of clang_cflags & clang_asflags from Soong"

Revert submission 2154033-delete clang_cflags clang_asflags

Reason for revert: Broke build on git_tm-dev-plus-aosp and downstream branches

Reverted Changes:
I5c499a37e:Default BuildBrokenClangCFlags &  BuildBrokenClang...
Ic1d90b72d:deletion of clang_cflags & clang_asflags from Soon...

Change-Id: I62480972e5cd6cfe01782068b25893222a8edf79
2022-09-12 18:51:23 +00:00
Alix
8b7da27e22 Default BuildBrokenClangCFlags & BuildBrokenClangAsFlags to empty (false)
Set up BUILD_BROKEN flags so partners can bypass errors
from using them

Bug: 226636335
Test: m nothing & treehugger
Change-Id: I5c499a37e206bdf89c5c9f84c6ecfe1cdc9a1803
2022-09-07 15:30:01 +00:00
Alix
7a4d539e75 Default BuildBrokenClangProperty to empty (false)
Clang property is deprecated. Set up a BUILD_BROKEN_CLANG_PROPERTY
flag so partners can bypass errors from using clang.

Change-Id: I7ec19c3d11086046031108ecccba5065c38fa338
Test: m nothing & Treehugger
2022-08-26 20:05:42 +00:00
Alix Espino
065afd42e8 Merge "Updated Changes.md on deletion of clang property" 2022-08-17 13:42:28 +00:00
Trevor Radcliffe
c9e72668a0 Add note to Changes.md about sysprop changes
Since it's no longer allowed to depend directly on a sysprop_library
module from a cc module, we should make this known to other
engineers.

Bug: 226199990
Test: N/A
Change-Id: I3a66984abc3ab7b369870c8041a08d788d66b15f
2022-08-15 21:46:07 +00:00
Alix
a9324f04b8 Updated Changes.md on deletion of clang property
Bug: 208980553
Test: None, updating documentation
Change-Id: I1acc4a5055cdc6477224fc852cb882dcd5909fa6
2022-08-15 17:18:06 +00:00
Vinh Tran
3fae6fe0db Default BuildBrokenDepfile to empty (false)
Test: The builds should still pass because all depfile is cleanup in
AOSP
Bug: 179452413

Change-Id: Ifb6f5320f72c3beb44ddd6654100645e0a62e659
2022-06-27 12:05:11 -04:00
Andrew Walbran
9b255832cd Fix Markdown formatting.
Change-Id: Id3bacc2cd5cad775199f9793f5da2607ea3e76c3
2022-03-09 14:51:51 +00:00
Liz Kammer
4065e5b268 Introduce BUILD_BROKEN_INPUT_DIR_MODULES
Allows allowlisting modules that can temporarily continue to use a
directory as an input while some module types restrict their allowed
inputs.

Test: CI
Change-Id: Ic968a6f6efad45b6c1095dd214813e326d7493c1
2022-02-23 13:59:19 -05:00
Ulya Trafimovich
4b4fd16c11 Add documentation for <uses-library> checks.
Bug: 132357300
Test: m nothing
Test: check that markdown looks ok in gitiles on gerrit
Change-Id: I2019f65cc69b467889f8dda720b2a4264eae36d7
2021-03-31 11:56:45 +01:00
Donghyun Jo
8c65ef6574 Fix typo in sysprop.mk and Changes.md
android_info_pro -> android_info_prop
partititon -> partition
PRODUCT_SYSTEM_PROPERITES -> PRODUCT_SYSTEM_PROPERTIES

Test: build and manual test

Signed-off-by: Donghyun Jo <donghyun.jo@samsung.com>
Change-Id: I0b7f0566aaa5ce8844003bb4f373389c20ddeb88
2021-03-02 08:51:03 +09:00
Yo Chiang
64faf88940 Require required modules to exist
Error if a required module doesn't exist unless
ALLOW_MISSING_DEPENDENCIES or BUILD_BROKEN_MISSING_REQUIRED_MODULES
is true.

Bug: 7456955
Test: TH build_test
Change-Id: I5cdc56c7433b7ce15da155993b7100af9af604fa
Merged-In: I5cdc56c7433b7ce15da155993b7100af9af604fa
(cherry picked from commit c6159372b7)
2020-08-06 06:41:09 +00:00
Yo Chiang
d4741817e3 Changes.md: Format section BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES
Quote Make variable names in backtick and add section anchor.

Test: preview in gittiles
Change-Id: Ia661090f42d2191ca6a52dd9168d270100c488ad
2020-07-14 15:15:08 +08:00
Jiyong Park
0b4fccb66d BUILD_BROKEN_DUP_SYSPROP as escape hatch for the new sysprop restriction
As the final step for the refactoring of sysprop configuration, this
change adds BUILD_BROKEN_DUP_SYSPROP which is the escape hatch for
the new restriction. When it is turned on, the new syntax `a ?= b`
collapses to the old syntax `a = b`, duplicated assignments are allowed,
and the dups are resolved following the legacy rule of preferring the
first.

This change also summarizes all the user-facing changes to the Change.md
file.

Lastly, post_process_prop.py is refactored to accept new argument
'--allow-dup' which when turned on allowes duplicated sysprops.

Bug: 117892318
Bug: 158735147
Test: atest --host post_process_prop_unittest

Exempt-From-Owner-Approval: cherry-pick from master

Merged-In: I7bdfffd47d50aad66a78e28a30c3dad7ebac080c
(cherry picked from commit b302cdf6a4)
Change-Id: I7bdfffd47d50aad66a78e28a30c3dad7ebac080c
2020-06-30 18:44:40 +09:00
Yo Chiang
73d3148c5f Ban ELF prebuilts in PRODUCT_COPY_FILES
ELF prebuilts in PRODUCT_COPY_FILES are an build error.
Define prebuilt modules and add them to PRODUCT_PACKAGES instead.

To triage any build break caused by this change, temporarily opt out
this check by setting
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true in BoardConfig.mk.

Bug: 140560012
Test: build_test & verify that either PRODUCT_COPY_FILES has no ELF \
      prebuilt or BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES is true
Change-Id: I9dcbe7b68c38fc23dac91fe5751cbc478105656e
2020-04-08 18:02:56 +08:00
Dan Willemsen
66d21d4a30 Mark (BUILD_|LOCAL_)COPY_HEADERS as [more] deprecated
We've considered these deprecated for a while, and have reduced where
they may be used, but let's actually throw warnings and call them out
specifically now.

Bug: 130719878
Test: lunch aosp_arm; m nothing   [see no warnings]
Test: lunch aosp_crosshatch; m nothing   [see LOCAL_COPY_HEADERS warnings]
Test: lunch aosp_taimen; m nothing  [see BUILD_COPY_HEADERS warnings]
Change-Id: I8c12012366d84667de0d223bbde38d8b90419e36
2020-01-27 19:45:04 -08:00
Dan Willemsen
2bfffb9f48 Document the m4 prebuilts
Test: view in gitiles
Change-Id: I2defdb433313fb6744b09685d289e16d094cffdc
2020-01-14 15:08:41 -08:00
Dan Willemsen
2607625f8b Add BUILD_BROKEN_NINJA_USES_ENV_VARS
See the Changes.md and the paired soong change for more information.

Test: Add BUILD_BROKEN_NINJA_USES_ENV_VARS := OLDPWD
      ALLOW_NINJA_ENV=false m nothing; check out/soong.log
Change-Id: I2167eac52166b513318bc48feb71c9d0b80e5fd4
2020-01-02 20:09:25 -08:00
Dan Willemsen
0cb422f0e7 Improve checks for include dirs outside the source tree
See the Changes.md addition for more details.

Test: treehugger (build_test on downstream branches)
Change-Id: I6ad6b454a6fccf93772fda26cfc7dd6bbfc07c40
2019-12-05 13:11:04 -08:00
Yifan Hong
88adfc6349 Mark BOARD_HAL_STATIC_LIBRARIES as obsolete.
No device in our tree use this obsolete thing now.
OEM devices with libhealthd should define health HAL
2.1 instead.

Test: builds
Fixes: 127677771
Change-Id: I1861452a3f7fc97ee20615c8f9f25422f9f507e2
2019-12-04 14:50:59 -08:00
Yasuhiro Kubota
cd301f6722 Changes.md: Change OUT_DIR to PRODUCT_OUT
"OUT" means "out/target/proudct/<product>/".
But "OUT_DIR" means "out/".
So we can't use "OUT_DIR" instead of "OUT".

We can use "PRODUCT_OUT" instead of "OUT" which means same folder.

Test: N/A Just document modification
Change-Id: Id08664ba48b226ead7ab6b00d0291259d3a737ba
2019-06-04 20:49:51 +09:00
Tao Bao
84f88a473a Obsolete PRODUCT_STATIC_BOOT_CONTROL_HAL.
Bug: 34254109
Test: TreeHugger
Test: Define PRODUCT_STATIC_BOOT_CONTROL_HAL and see the expected
      failure after lunch.
Change-Id: I914b84e874fe14a25dcfe56b282c56f88934d07c
2019-05-29 11:38:16 -07:00
Dan Willemsen
3a1072a839 Obsolete BUILD_BROKEN_ANDROIDMK_EXPORTS
Bug: 73959648
Test: treehugger
Change-Id: Ibecc6eb97fef6924e5d909c0393d8dfaa62c7d1d
2019-05-25 17:12:12 -07:00
Dan Willemsen
e048f7eff3 Remove BUILD_BROKEN_ENG_DEBUG_TAGS
All users have been removed.

Test: treehugger
Change-Id: I2cfe720bef88cc5485e90746d85a7e0a5d068ef7
Merged-In: I2cfe720bef88cc5485e90746d85a7e0a5d068ef7
2019-05-25 22:47:35 +00:00
Dan Willemsen
695849ec88 Add infrastructure for deprecating module types
Also start the deprecation for BUILD_HOST_TEST_CONFIG and
BUILD_TARGET_TEST_CONFIG, which have no users.

Bug: 130720555
Bug: 130723115
Bug: 130734993
Test: treehugger
Test: Add entries to DEFAULT_ERROR / OBSOLETE to manually test behavior
Change-Id: Icfdff43a29b6512494d44b9be11d178333505010
2019-04-17 17:02:20 -07:00
Dan Willemsen
3d05a08a6f Reland "First pass at creating PRODUCT_HOST_PACKAGES"
Adds icu-data_host_runtime_apex to fix unbundled builds which pull it in
via PRODUCT_PACKAGES, but are missing packages that would pull it in via
PRODUCT_HOST_PACKAGES.

Test: build/soong/build_test.bash
Test: in ub-timezonedata-master; tapas TimeZoneData; m
Change-Id: I1583c7582b386c3e8478711cb1df340518d763c1
Merged-In: I1583c7582b386c3e8478711cb1df340518d763c1
2019-03-06 14:46:06 -08:00
Dan Willemsen
46267cb4d8 Deprecate *.c[pp].arm
There never were too many users of this, and I've just converted the
last ones to Soong.

Test: diff build-aosp_arm.ninja
Test: treehugger
Change-Id: Ida6d486a62d0b521c1cd67f5f18c0ad0dbe957e3
2019-02-21 18:02:13 -08:00
Dan Willemsen
f264690860 Remove support for building Windows modules in Make
These now must be defined in Android.bp files.

Bug: 122618577
Test: compare build-aosp_arm.ninja before/after
Test: codesearch for LOCAL_MODULE_HOST_OS.*windows
Change-Id: I14451c7753299692940e026f85687b4c3331bb07
2019-02-05 00:19:41 -08:00
Dan Willemsen
9569ddd478 Deprecate LOCAL_MODULE_TAGS := eng/debug
Uses a new BUILD_BROKEN_ENG_DEBUG_TAGS variable that defaults to true
until we mark all of the broken targets, then we'll switch it to false.

These are fairly trivial to fix, so I don't expect to keep this flag
around for long.

Test: build_test on aosp and internal master; check logs
Change-Id: I6176fec265e78aecff965b7cf1636f831f68a140
2019-01-22 20:08:12 -08:00
Dan Willemsen
0636428d43 Deprecate USER in favor of BUILD_USERNAME
Bug: 122270019
Test: treehugger, codesearch
2019-01-02 14:33:29 -08:00
Dan Willemsen
6dbb33dfad Mark BUILD_NUMBER as obsolete, more vars as readonly
In preparation for moving BUILD_NUMBER and FILE_NAME_TAG handling to
soong_ui, mark BUILD_NUMBER as obsolete and FILE_NAME_TAG as readonly.

Later changes will remove BUILD_NUMBER entirely, and move FILE_NAME_TAG
handling into the kati packaging step via dist-for-goals renames.

Test: build_test on master
Change-Id: I0e340d32fe0cb6296d3b5a7fec349b50632d044e
2018-10-22 15:20:26 -07:00
Dan Willemsen
78c40be560 Create a new kati packaging step; move dist
Instead of looking at `dist` and DIST_DIR directly in the Kati Build
step, always write out information about every call to dist, then create
the rules in another ckati run.

So instead of having:

  dist:    <goal> -> <dist> -> <output>
                \______________↑

  nodist:  <goal> -----------> <output>

Always use another phony target in the Kati Build step:

   <goal> ---> <output>
        \----> _dist_<goal>

Then in the packaging step (which is much faster), choose between dist
and no dist:

  dist:   _dist_<goal> -> <dist> -> <output>

  nodist: _dist_<goal>

Bug: 117463001
Test: m dist
Change-Id: Ic96bb6356740300dd3113f6ed699e6a619360c40
2018-10-20 21:44:44 +00:00
Dan Willemsen
5fb16a6245 Add doc update for phony targets
Test: view rendered markdown in gitiles
Change-Id: Ifb45b8ab1b27f3eb6b48350da2a4a7a08c7d9e17
2018-09-04 16:27:16 -07:00
Dan Willemsen
5f76fc0d7c Mark implicit rules as obsolete
Test: view Changes.md in gitiles
Change-Id: Id5691dc099b23df4d94b0ca30725702bc282b998
2018-06-21 21:42:29 -07:00
Dan Willemsen
8b9c3cc54b Mark export/unexport as deprecated
Make it so that `export`/`unexport` are deprecated during product
configuration, but obsolete during Android.mk parsing (and later in the
build, since we can't un-obsolete it).

Remove some ccache / goma exports, those don't need to be exports, since
soong_ui asks about them explicitly. They also only run doing the
initial project configuration, so we don't run anything with that
environment.

Bug: 73959648
Test: m nothing
Test: build_test on all downstream branches
Change-Id: I55a749f46775660439ae57e881a02c914e83de16
2018-06-21 10:12:23 -07:00
Dan Willemsen
62db0f0945 Deprecate implicit make rules
Test: mm
Test: view docs in gitiles
Change-Id: I1ced4b4218c733b5b5b771d626b20eb6fb22f0df
2018-06-20 16:52:10 -07:00
Dan Willemsen
ac92659e0f Restrict / from module names
Since this is a directory separator, it causes a good deal of
strangeness in the build whenever we include a module name in a path.

It becomes particularly problematic if used together with ".."

Test: build_test on downstream branches
Change-Id: I344eca0db3346cd6ffabff767c34159c85ebc051
2018-06-16 14:15:50 -07:00
Dan Willemsen
bbe6a022a3 Restrict characters in module names
See the Changes.md documentation for more information.

Test: build_test on downstream branches
Change-Id: I1524b1dbfd44a7feac3b9a212f37986f870bd837
2018-06-12 13:48:49 -07:00
Dan Willemsen
5039ef4d28 Add documentation around PATH restrictions
Test: view markdown through gitiles
Change-Id: If9ef146d8993d0dbfde85660d5c87b05c1c11888
2018-05-18 11:09:01 -07:00