-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Separate out "GN builder" for the unified build script #8381
Merged
mspang
merged 34 commits into
project-chip:master
from
andy31415:03_build_script_gn_builder
Jul 19, 2021
Merged
Separate out "GN builder" for the unified build script #8381
mspang
merged 34 commits into
project-chip:master
from
andy31415:03_build_script_gn_builder
Jul 19, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…forms/boards/apps as a start to have a single build entrypoint
…hey get picked up by the bootstrap script
It turns out that ESP32 lock app is ONLY for devkitc, so I added application matching logic to include board restrictions. Tested: lock app compiles and only for devkitc if esp32 platform is used.
…s commands as expected
…as also to be considered for testing
Size increase report for "esp32-example-build" from cbf106e
Full report output
|
pullapprove
bot
requested review from
bzbarsky-apple,
chrisdecenzo,
Damian-Nordic,
hawk248,
jepenven-silabs,
msandstedt and
mspang
July 16, 2021 20:25
mspang
approved these changes
Jul 16, 2021
bzbarsky-apple
approved these changes
Jul 17, 2021
msandstedt
approved these changes
Jul 19, 2021
nikita-s-wrk
pushed a commit
to nikita-s-wrk/connectedhomeip
that referenced
this pull request
Sep 23, 2021
…8381) * Imported a general chip builder script, currently covering a few platforms/boards/apps as a start to have a single build entrypoint * Move build requirements into global script/requirements.txt so that they get picked up by the bootstrap script * Update script to assume and require bootstrapping * Code review comments * Support building the lock app for ESP32 It turns out that ESP32 lock app is ONLY for devkitc, so I added application matching logic to include board restrictions. Tested: lock app compiles and only for devkitc if esp32 platform is used. * Remove obsolete todo * Fix the duplicated accept for efr32 lock app * Add a dry run option for the build runner, showing what commands would be executed * Add gn builder as a generic build class, to make gn configuration uniform * Add support for a "test" to validate that the build generator executes commands as expected * Update the command comparison: output directory of the build script has also to be considered for testing * Fix some naming and use `get_target_outputs` * Address some code review comments * Rename chipbuild to build_examples * Fixup naming for the unit tests after build script renaming * Fix names * Restyle * Use difflib instead of diff binary for checking changes * Fix diffs (generator vs lines) and logging * Fix unit tests * Start converting python logic from build into pw_python_module * Tests pass * Restyle * Code review comments * Add comment for all_platform_commands.txt * Move expected txt data into inputs
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
gn gen
andninja -C
are very commonly used for our global builds. Some embedded platforms use their own tooling (e.g. idf.py or west) however for other cases and notably host builds, gn is standard.This builds on #8295
Change overview
Centralize
GnBuilder
as a reusable class for the build system. This will make it easier to perform any global changes requied when running gn (e.g. using 'check' and similarTesting
Unit tests pass. Ran manual build of
--platform all
and it passed