Skip to content
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

Clean up path usage in build files #20574

Merged
merged 1 commit into from
Jul 14, 2022

Conversation

mspang
Copy link
Contributor

@mspang mspang commented Jul 11, 2022

Problem

Templates should rebase paths to the build dir before passing them to
scripts as scripts generally do not understand GN's // syntax for
specifying paths relative to the root.

In other cases, paths should be left alone so that build file relative
paths can be specified. This is needed for consistency; all GN builtins
accept both relative-to-BUILD.gn paths (default) and
relative-to-GN-root (//) paths.

For command line arguments, paths should be specified relative to
the build directory, which will be the working directory of the script.

Change overview

  • Allow & use relative paths in template arguments

  • Remove most uses of rebase_path() to create filesystem-absolute paths.

    This is rarely needed and can introduce long absolute paths that are different for each developer.

    These are replaced with:

    • BUILD.gn relative paths

    • GN-rooted (//) paths

      get_path_info(path, "abspath") converts a BUILD.gn relative path to a GN-rooted path
      get_label_info(label, "label_no_toolchain") converts a BUILD.gn relative label to a GN-rooted label

Testing

CI

Templates should rebase paths to the build dir before passing them to
scripts as scripts generally do not understand GN's // syntax for
specifying paths relative to the root.

In other cases, paths should be left alone so that build file relative
paths can be specified. This is needed for consistency; all GN builtins
accept both relative-to-BUILD.gn paths (default) and
relative-to-build-root (//) paths.
@github-actions
Copy link

github-actions bot commented Jul 11, 2022

PR #20574: Size comparison from 19f2d7d to e5fd608

Increases (3 builds for cc13x2_26x2, nrfconnect, telink)
platform target config section 19f2d7d e5fd608 change % change
cc13x2_26x2 pump-app LP_CC2652R7 (read/write) 164032 164040 8 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 text 811448 811452 4 0.0
telink light-switch-app tlsr9518adk80d text 565666 565670 4 0.0
Decreases (3 builds for cc13x2_26x2, cyw30739, esp32)
platform target config section 19f2d7d e5fd608 change % change
cc13x2_26x2 pump-app LP_CC2652R7 (read only) 678183 678175 -8 -0.0
.text 589196 589188 -8 -0.0
cyw30739 ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582790 582782 -8 -0.0
.app_xip_area 462392 462384 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1020102 1020100 -2 -0.0
.flash.text 1020102 1020100 -2 -0.0
Full report (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 19f2d7d e5fd608 change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 666243 666243 0 0.0
(read/write) 184980 184980 0 0.0
.bss 74116 74116 0 0.0
.data 3356 3356 0 0.0
.rodata 88139 88139 0 0.0
.text 577788 577788 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 632051 632051 0 0.0
(read/write) 157684 157684 0 0.0
.bss 73412 73412 0 0.0
.data 3356 3356 0 0.0
.rodata 77379 77379 0 0.0
.text 554348 554348 0 0.0
lock-ftd LP_CC2652R7 (read only) 669151 669151 0 0.0
(read/write) 172216 172216 0 0.0
.bss 71148 71148 0 0.0
.data 3280 3280 0 0.0
.rodata 76279 76279 0 0.0
.text 592392 592392 0 0.0
lock-mtd LP_CC2652R7 (read only) 618559 618559 0 0.0
(read/write) 144264 144264 0 0.0
.bss 66868 66868 0 0.0
.data 3280 3280 0 0.0
.rodata 76159 76159 0 0.0
.text 541912 541912 0 0.0
pump-app LP_CC2652R7 (read only) 678183 678175 -8 -0.0
(read/write) 164032 164040 8 0.0
.bss 71228 71228 0 0.0
.data 3280 3280 0 0.0
.rodata 88503 88503 0 0.0
.text 589196 589188 -8 -0.0
pump-controller-app LP_CC2652R7 (read only) 664007 664007 0 0.0
(read/write) 178328 178328 0 0.0
.bss 71348 71348 0 0.0
.data 3276 3276 0 0.0
.rodata 84367 84367 0 0.0
.text 579160 579160 0 0.0
shell LP_CC2652R7 (read only) 658742 658742 0 0.0
(read/write) 187984 187984 0 0.0
.bss 76420 76420 0 0.0
.data 3360 3360 0 0.0
.rodata 84918 84918 0 0.0
.text 573508 573508 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 579622 579622 0 0.0
.app_xip_area 458376 458376 0 0.0
.bss 64184 64184 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 585550 585550 0 0.0
.app_xip_area 459576 459576 0 0.0
.bss 68912 68912 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 582790 582782 -8 -0.0
.app_xip_area 462392 462384 -8 -0.0
.bss 63392 63392 0 0.0
.data 660 660 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read/write) 1081452 1081452 0 0.0
.bss 132996 132996 0 0.0
.data 2048 2048 0 0.0
.text 946388 946388 0 0.0
BRD4161A+rpc (read/write) 1135780 1135780 0 0.0
.bss 149676 149676 0 0.0
.data 2260 2260 0 0.0
.text 983824 983824 0 0.0
BRD4161A+rs911x (read/write) 947940 947940 0 0.0
.bss 140768 140768 0 0.0
.data 2048 2048 0 0.0
.text 805104 805104 0 0.0
lock-app BRD4161A+wf200 (read/write) 1128816 1128816 0 0.0
.bss 144184 144184 0 0.0
.data 2060 2060 0 0.0
.text 982548 982548 0 0.0
window-app BRD4161A (read/write) 1075244 1075244 0 0.0
.bss 134468 134468 0 0.0
.data 2076 2076 0 0.0
.text 938676 938676 0 0.0
esp32 all-clusters-app c3devkit (read only) 1020102 1020100 -2 -0.0
(read/write) 1485642 1485642 0 0.0
.dram0.bss 70080 70080 0 0.0
.dram0.data 14600 14600 0 0.0
.flash.rodata 215528 215528 0 0.0
.flash.text 1020102 1020100 -2 -0.0
.iram0.text 62902 62902 0 0.0
m5stack (read only) 1073987 1073987 0 0.0
(read/write) 487712 487712 0 0.0
.dram0.bss 75600 75600 0 0.0
.dram0.data 34144 34144 0 0.0
.flash.rodata 245972 245972 0 0.0
.flash.text 1068603 1068603 0 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 658832 658832 0 0.0
.bss 69516 69516 0 0.0
.data 1992 1992 0 0.0
.text 581524 581524 0 0.0
lock k32w061+release (read/write) 685652 685652 0 0.0
.bss 69980 69980 0 0.0
.data 2004 2004 0 0.0
.text 607868 607868 0 0.0
linux all-clusters-app debug (read only) 2960705 2960705 0 0.0
(read/write) 154744 154744 0 0.0
.bss 61536 61536 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 84968 84968 0 0.0
.dynamic 608 608 0 0.0
.got 4536 4536 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 263613 263613 0 0.0
.text 2519906 2519906 0 0.0
all-clusters-minimal-app debug (read only) 2813281 2813281 0 0.0
(read/write) 146680 146680 0 0.0
.bss 60864 60864 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 77608 77608 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 1040 1040 0 0.0
.rodata 265341 265341 0 0.0
.text 2372930 2372930 0 0.0
bridge-app debug+rpc (read only) 2315449 2315449 0 0.0
(read/write) 125504 125504 0 0.0
.bss 48928 48928 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 66984 66984 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 198016 198016 0 0.0
.text 1955698 1955698 0 0.0
chip-tool debug (read only) 10345025 10345025 0 0.0
(read/write) 622240 622240 0 0.0
.bss 24728 24728 0 0.0
.data 3234 3234 0 0.0
.data.rel.ro 587888 587888 0 0.0
.dynamic 608 608 0 0.0
.got 5096 5096 0 0.0
.init 27 27 0 0.0
.init_array 640 640 0 0.0
.rodata 515861 515861 0 0.0
.text 8397476 8397476 0 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 10031716 10031716 0 0.0
(read/write) 684529 684529 0 0.0
.bss 42609 42609 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 623432 623432 0 0.0
.dynamic 528 528 0 0.0
.got 13520 13520 0 0.0
.init 24 24 0 0.0
.init_array 192 192 0 0.0
.rodata 478260 478260 0 0.0
.text 7992788 7992788 0 0.0
lighting-app debug+rpc (read only) 2551193 2551193 0 0.0
(read/write) 129528 129528 0 0.0
.bss 49440 49440 0 0.0
.data 2096 2096 0 0.0
.data.rel.ro 72136 72136 0 0.0
.dynamic 608 608 0 0.0
.got 4392 4392 0 0.0
.init 27 27 0 0.0
.init_array 816 816 0 0.0
.rodata 213704 213704 0 0.0
.text 2167522 2167522 0 0.0
lock-app debug (read only) 2515793 2515793 0 0.0
(read/write) 124504 124504 0 0.0
.bss 47840 47840 0 0.0
.data 1712 1712 0 0.0
.data.rel.ro 69096 69096 0 0.0
.dynamic 608 608 0 0.0
.got 4424 4424 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 228744 228744 0 0.0
.text 2121906 2121906 0 0.0
ota-provider-app debug (read only) 2322305 2322305 0 0.0
(read/write) 118312 118312 0 0.0
.bss 47488 47488 0 0.0
.data 1944 1944 0 0.0
.data.rel.ro 63096 63096 0 0.0
.dynamic 608 608 0 0.0
.got 4488 4488 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 203512 203512 0 0.0
.text 1956018 1956018 0 0.0
ota-requestor-app debug (read only) 2439425 2439425 0 0.0
(read/write) 125216 125216 0 0.0
.bss 49856 49856 0 0.0
.data 2232 2232 0 0.0
.data.rel.ro 67288 67288 0 0.0
.dynamic 608 608 0 0.0
.got 4480 4480 0 0.0
.init 27 27 0 0.0
.init_array 728 728 0 0.0
.rodata 207296 207296 0 0.0
.text 2060978 2060978 0 0.0
shell debug (read only) 2551049 2551049 0 0.0
(read/write) 141096 141096 0 0.0
.bss 57448 57448 0 0.0
.data 1264 1264 0 0.0
.data.rel.ro 76688 76688 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 920 920 0 0.0
.rodata 227762 227762 0 0.0
.text 2166210 2166210 0 0.0
thermostat-no-ble arm64 (read only) 2595316 2595316 0 0.0
(read/write) 158289 158289 0 0.0
.bss 65249 65249 0 0.0
.data 1704 1704 0 0.0
.data.rel.ro 83240 83240 0 0.0
.dynamic 528 528 0 0.0
.got 5072 5072 0 0.0
.init 24 24 0 0.0
.init_array 400 400 0 0.0
.rodata 165476 165476 0 0.0
.text 2190064 2190064 0 0.0
tv-app debug (read only) 3102225 3102225 0 0.0
(read/write) 257704 257704 0 0.0
.bss 167016 167016 0 0.0
.data 4848 4848 0 0.0
.data.rel.ro 79392 79392 0 0.0
.dynamic 608 608 0 0.0
.got 4848 4848 0 0.0
.init 27 27 0 0.0
.init_array 952 952 0 0.0
.rodata 249024 249024 0 0.0
.text 2665298 2665298 0 0.0
tv-casting-app debug (read only) 5577785 5577785 0 0.0
(read/write) 161968 161968 0 0.0
.bss 50248 50248 0 0.0
.data 2416 2416 0 0.0
.data.rel.ro 103048 103048 0 0.0
.dynamic 608 608 0 0.0
.got 4744 4744 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 343209 343209 0 0.0
.text 4956626 4956626 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2448112 2448112 0 0.0
.bss 213940 213940 0 0.0
.data 5872 5872 0 0.0
.text 1410756 1410756 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1175119 1175119 0 0.0
bss 142900 142900 0 0.0
rodata 141880 141880 0 0.0
text 811448 811452 4 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1155315 1155315 0 0.0
bss 142136 142136 0 0.0
rodata 133412 133412 0 0.0
text 800896 800896 0 0.0
p6 all-clusters-app default (read/write) 2565392 2565392 0 0.0
.bss 149120 149120 0 0.0
.data 2776 2776 0 0.0
.text 1523656 1523656 0 0.0
all-clusters-minimal-app default (read/write) 2510440 2510440 0 0.0
.bss 148400 148400 0 0.0
.data 2776 2776 0 0.0
.text 1468704 1468704 0 0.0
light-app default (read/write) 2440736 2440736 0 0.0
.bss 140456 140456 0 0.0
.data 2592 2592 0 0.0
.text 1399000 1399000 0 0.0
lock-app default (read/write) 2467992 2467992 0 0.0
.bss 140304 140304 0 0.0
.data 2600 2600 0 0.0
.text 1426256 1426256 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 797268 797268 0 0.0
bss 70576 70576 0 0.0
noinit 40416 40416 0 0.0
text 565666 565670 4 0.0
lighting-app tlsr9518adk80d (read/write) 817092 817092 0 0.0
bss 71420 71420 0 0.0
noinit 40416 40416 0 0.0
text 581992 581992 0 0.0

@mspang mspang enabled auto-merge (squash) July 13, 2022 19:50
@mspang mspang merged commit 415ee2f into project-chip:master Jul 14, 2022
@mspang mspang deleted the for-chip/cleanup-rebase-path branch July 14, 2022 13:23
github-actions bot pushed a commit that referenced this pull request Jul 14, 2022
Templates should rebase paths to the build dir before passing them to
scripts as scripts generally do not understand GN's // syntax for
specifying paths relative to the root.

In other cases, paths should be left alone so that build file relative
paths can be specified. This is needed for consistency; all GN builtins
accept both relative-to-BUILD.gn paths (default) and
relative-to-build-root (//) paths.
woody-apple added a commit that referenced this pull request Jul 14, 2022
Templates should rebase paths to the build dir before passing them to
scripts as scripts generally do not understand GN's // syntax for
specifying paths relative to the root.

In other cases, paths should be left alone so that build file relative
paths can be specified. This is needed for consistency; all GN builtins
accept both relative-to-BUILD.gn paths (default) and
relative-to-build-root (//) paths.

Co-authored-by: Michael Spang <spang@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants