[build] Inform GN of copy_tree's destination directory.

This will make GN notice conflicting copy_tree destinations.

It may also fix a race when two copy_tree's with a common parent directory create that parent directory.

Change-Id: I1783ea170f0390d4026123ed43c00cd15eb0b1c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508241
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
Ryan Macnak
2026-06-01 12:11:40 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 5c2007b086
commit a9335cfa23
2 changed files with 25 additions and 20 deletions
+4 -1
View File
@@ -53,7 +53,10 @@ template("copy_tree") {
]
}
outputs = [ stampfile ]
outputs = [
stampfile,
dest,
]
script = "$_dart_root/tools/copy_tree.py"
args = common_args
}
+21 -19
View File
@@ -296,25 +296,27 @@ copy_tree("copy_dartdoc_resources") {
exclude = "{}"
}
# This rule copies the pre-built DevTools application to
# bin/resources/devtools/
copy_tree("copy_prebuilt_devtools") {
visibility = [ ":create_common_sdk" ]
source = "../third_party/devtools/web"
dest = "$root_out_dir/$dart_sdk_output/bin/resources/devtools"
exclude = "{}"
}
# This action compiles the devtools app from sources.
action("build_devtools") {
visibility = [ ":create_common_sdk" ]
output = "$root_out_dir/$dart_sdk_output/bin/resources/devtools"
outputs = [ output ]
script = "../tools/build_devtools.py"
args = [
"--output",
rebase_path(output, root_build_dir),
]
if (defined(build_devtools_from_sources) && build_devtools_from_sources) {
# This action compiles the devtools app from sources.
action("build_devtools") {
visibility = [ ":create_common_sdk" ]
output = "$root_out_dir/$dart_sdk_output/bin/resources/devtools"
outputs = [ output ]
script = "../tools/build_devtools.py"
args = [
"--output",
rebase_path(output, root_build_dir),
]
}
} else {
# This rule copies the pre-built DevTools application to
# bin/resources/devtools/
copy_tree("copy_prebuilt_devtools") {
visibility = [ ":create_common_sdk" ]
source = "../third_party/devtools/web"
dest = "$root_out_dir/$dart_sdk_output/bin/resources/devtools"
exclude = "{}"
}
}
# This loop generates rules to copy libraries to lib/