Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3977)

Unified Diff: build/config/symlink.gni

Issue 1516533002: GN: Add symlink rules for dump_syms, symupload (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « breakpad/BUILD.gn ('k') | tools/android/forwarder2/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/symlink.gni
diff --git a/build/config/symlink.gni b/build/config/symlink.gni
new file mode 100644
index 0000000000000000000000000000000000000000..66df489fef898a97dc4ab932591e575627686c66
--- /dev/null
+++ b/build/config/symlink.gni
@@ -0,0 +1,79 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
brettw 2015/12/10 00:12:21 This file should go with the script, so build/syml
agrieve 2015/12/10 11:07:38 Done.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Creates a symlink.
+# Args:
+# to: Path to link to.
+# from: Path to link from (default=root_out_dir/target_name)
+template("symlink") {
brettw 2015/12/10 00:12:21 I think it would be nice if this mirrored the "cop
agrieve 2015/12/10 11:07:38 Done.
+ action(target_name) {
+ forward_variables_from(invoker,
+ [
+ "deps",
+ "public_deps",
+ "data_deps",
+ "testonly",
+ "visibility",
+ ])
+ _to = invoker.to
brettw 2015/12/10 00:12:21 I find the underscores weird to read and they don'
agrieve 2015/12/10 11:07:38 This pattern is actually fairly common, at least w
+
+ if (defined(invoker.from)) {
+ _from = invoker.from
+ } else {
+ _from = "$root_out_dir/${invoker.target_name}"
+ }
+
+ # TODO(agrieve): Declaring the output as _from triggers a
brettw 2015/12/10 00:12:21 Fix: https://codereview.chromium.org/1506343003 W
agrieve 2015/12/10 11:07:38 Great! I cherry-picked this change into a test bra
+ # "multiple rules generate foo" warning in ninja when there is a target with
+ # the same name in a different toolchain
+ _stamp = "$target_gen_dir/$target_name.stamp"
+ outputs = [
+ _stamp,
+ ]
+ script = "//build/symlink.py"
+ args = [
+ "-f",
+ "--touch",
+ rebase_path(_stamp, root_build_dir),
+ rebase_path(_to, get_path_info(_from, "dir")),
+ rebase_path(_from, root_build_dir),
+ ]
+ }
+}
+
+# Creates a convenience symlink from root_build_dir/target_name to
+# host_tool_chain/target_name.
+# Note that for executables, using a copy (as opposed to a symlink) does not
+# work when is_component_build=true, since dependent libraries are found via
+# relative location.
+# Args:
+# target_dep: Target that builds the file to symlink to
+# (default=":${invoker.target_name}($host_toolchain)").
+# to: File to symlink to (default="target_dep's out_dir/target_name")
+template("host_symlink") {
brettw 2015/12/10 00:12:21 I find this: host_sym_link("foo") { } really w
agrieve 2015/12/10 11:07:38 Made binary_label mandatory, but left output optio
+ symlink(target_name) {
+ _target_dep = ":${invoker.target_name}($host_toolchain)"
+ if (defined(invoker.target_dep)) {
+ _target_dep = invoker.target_dep
+ }
+
+ forward_variables_from(invoker,
+ [
+ "testonly",
+ "visibility",
+ ])
+
+ # The target doesn't need to be built before creating a symlink to it.
+ data_deps = [
brettw 2015/12/10 00:12:21 I don't think you want to use data deps here. Data
agrieve 2015/12/10 11:07:38 Done.
+ _target_dep,
+ ]
+
+ if (defined(invoker.to)) {
+ to = invoker.to
+ } else {
+ _out_dir = get_label_info(_target_dep, "root_out_dir")
+ to = "$_out_dir/" + get_label_info(_target_dep, "name")
+ }
+ }
+}
« no previous file with comments | « breakpad/BUILD.gn ('k') | tools/android/forwarder2/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698