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

Unified Diff: build/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: comments 2 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/symlink.gni
diff --git a/build/symlink.gni b/build/symlink.gni
new file mode 100644
index 0000000000000000000000000000000000000000..691128c8d3b6c02a891675fb7b22d416af34183a
--- /dev/null
+++ b/build/symlink.gni
@@ -0,0 +1,68 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Creates a symlink.
+# Args:
+# source: Path to link to.
+# output: Where to create the symlink.
+template("symlink") {
+ action(target_name) {
+ forward_variables_from(invoker,
+ [
+ "deps",
+ "testonly",
+ "visibility",
+ ])
+ outputs = [
+ invoker.output,
+ ]
+ script = "//build/symlink.py"
+ args = [
+ "-f",
+ rebase_path(invoker.source, get_path_info(invoker.output, "dir")),
+ rebase_path(invoker.output, root_build_dir),
+ ]
+ }
+}
+
+# Creates a symlink from root_build_dir/target_name to |binary_label|. This rule
+# is meant to be used within if (current_toolchain == default_toolchain) blocks
+# and point to targets in the non-default toolchain.
+# 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:
+# binary_label: Target that builds the file to symlink to. e.g.:
+# ":foo($host_toolchain)".
+# output: Where to create the symlink (default="$root_out_dir/$target_name")
+#
+# Example:
+# if (current_toolchain == host_toolchain) {
+# executable("foo") { ... }
+# } else if (current_toolchain == default_toolchain) {
+# binary_symlink("foo") {
+# binary_label = ":foo($host_toolchain)"
+# }
+# }
+template("binary_symlink") {
+ symlink(target_name) {
+ forward_variables_from(invoker,
+ [
+ "output",
+ "testonly",
+ "visibility",
+ ])
+ deps = [
+ invoker.binary_label,
+ ]
+
+ _out_dir = get_label_info(invoker.binary_label, "root_out_dir")
+ source = "$_out_dir/" + get_label_info(invoker.binary_label, "name")
+
+ if (!defined(output)) {
+ output = "$root_out_dir/${invoker.target_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