Commit d4abac2
committed
Fix resource merge priority so consumer library overrides dependency resources
The Android resource busybox uses last-wins semantics when merging duplicate
resource names. The current library's ResourcesNodeInfo was placed as the
first direct item of the direct_resources_nodes preorder depset, causing it
to be processed before its dependencies and lose to them on conflicts.
Fix the ordering at the consumption point in busybox.bzl: reverse the
direct_resources_nodes list when building --directData (and --directAssets)
arguments. This ensures the current library's node (first in preorder) ends
up last in the busybox flag, so its resources correctly override those of its
dependencies — matching native Bazel and Gradle behavior.
Add regression test test_consumer_resource_wins_over_dep to verify that
consumer resources take priority over dependency resources when both define
the same resource name.1 parent 8936d9e commit d4abac2
3 files changed
Lines changed: 66 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| 314 | + | |
| 315 | + | |
314 | 316 | | |
315 | 317 | | |
316 | | - | |
| 318 | + | |
317 | 319 | | |
318 | 320 | | |
319 | 321 | | |
320 | 322 | | |
321 | 323 | | |
322 | | - | |
| 324 | + | |
323 | 325 | | |
324 | 326 | | |
325 | 327 | | |
| |||
532 | 534 | | |
533 | 535 | | |
534 | 536 | | |
| 537 | + | |
| 538 | + | |
535 | 539 | | |
536 | 540 | | |
537 | | - | |
| 541 | + | |
538 | 542 | | |
539 | 543 | | |
540 | 544 | | |
| |||
782 | 786 | | |
783 | 787 | | |
784 | 788 | | |
| 789 | + | |
| 790 | + | |
785 | 791 | | |
786 | 792 | | |
787 | | - | |
| 793 | + | |
788 | 794 | | |
789 | 795 | | |
790 | 796 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1698 | 1698 | | |
1699 | 1699 | | |
1700 | 1700 | | |
1701 | | - | |
1702 | 1701 | | |
1703 | 1702 | | |
1704 | 1703 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1888 | 1888 | | |
1889 | 1889 | | |
1890 | 1890 | | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
| 1910 | + | |
| 1911 | + | |
| 1912 | + | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
| 1916 | + | |
| 1917 | + | |
| 1918 | + | |
| 1919 | + | |
| 1920 | + | |
| 1921 | + | |
| 1922 | + | |
| 1923 | + | |
| 1924 | + | |
| 1925 | + | |
| 1926 | + | |
| 1927 | + | |
| 1928 | + | |
| 1929 | + | |
| 1930 | + | |
| 1931 | + | |
| 1932 | + | |
| 1933 | + | |
| 1934 | + | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
| 1939 | + | |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
0 commit comments