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

Unified Diff: third_party/class-dump/class-dump.gni

Issue 1806523002: Add BUILD.gn rules to compile third_party/class-dump. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@compiler
Patch Set: Use ${host_toolchain} instead of //build/toolchain/mac:clang_x64 Created 4 years, 9 months 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 | « third_party/class-dump/BUILD.gn ('k') | third_party/class-dump/class-dump.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/class-dump/class-dump.gni
diff --git a/third_party/class-dump/class-dump.gni b/third_party/class-dump/class-dump.gni
new file mode 100644
index 0000000000000000000000000000000000000000..a87d84d947543ce91354aca61128c1eaca6ea7ff
--- /dev/null
+++ b/third_party/class-dump/class-dump.gni
@@ -0,0 +1,96 @@
+# Copyright 2016 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.
+
+# Given a framework, generates a header file declaring the classes from that
+# framework using class-dump tool.
+#
+# Arguments:
+#
+# framework_name
+# string, short name of the framework.
+#
+# framework_path
+# string, location of the framework, usually a sub-directory of
+# Xcode application bundle.
+#
+# framework_version
+# (optional) string, version of the framework to dump class for,
+# defaults to "Current" if omitted.
+#
+# class_dump_filter
+# regexp, only display classes matching this regular expression.
+#
+# topological_sort
+# (optional) boolean, sort classes, categories, and protocols by
+# inheritance, defaults to false if omitted.
+#
+# All common target arugments ("visibility", "deps", ...) are forwarded by
+# the template.
+template("class_dump") {
+ assert(defined(invoker.framework_name),
+ "framework_name must be defined for $target_name")
+ assert(defined(invoker.framework_path),
+ "framework_path must be defined for $target_name")
+ assert(defined(invoker.class_dump_filter),
+ "class_dump_filter must be defined for $target_name")
+
+ framework_version = "Current"
+ if (defined(invoker.framework_version)) {
+ framework_version = invoker.framework_version
+ }
+
+ sort_args = []
+ if (defined(invoker.topological_sort) && invoker.topological_sort) {
+ sort_args = [ "-I" ]
+ }
+
+ class_dump = "//third_party/class-dump(${host_toolchain})"
+ class_dump_bin = get_label_info(class_dump, "root_out_dir") + "/class-dump"
+ framework = "${invoker.framework_path}/${invoker.framework_name}.framework"
+
+ _config_name = target_name + "_config"
+
+ config(_config_name) {
+ visibility = [ ":$target_name" ]
+ include_dirs = [ "$target_gen_dir" ]
+ }
+
+ action(target_name) {
+ forward_variables_from(invoker,
+ "*",
+ [
+ "args",
+ "class_dump_filter",
+ "framework_name",
+ "framework_path",
+ "framework_version",
+ "script",
+ "sources",
+ ])
+ if (!defined(deps)) {
+ deps = []
+ }
+ deps += [ class_dump ]
+ public_configs = [ ":$_config_name" ]
+
+ script = "//third_party/class-dump/class-dump.py"
+ inputs = [
+ class_dump_bin,
+ ]
+ sources = [
+ "${framework}/Versions/${framework_version}/${invoker.framework_name}",
+ ]
+ outputs = [
+ "$target_gen_dir/${invoker.framework_name}.h",
+ ]
+ args = [
+ "-t=" + rebase_path(class_dump_bin, root_build_dir),
+ "-o=" + rebase_path(outputs[0], root_build_dir),
+ "--",
+ "-C${invoker.class_dump_filter}",
+ "${framework}",
+ ]
+ args += sort_args
+ }
+}
« no previous file with comments | « third_party/class-dump/BUILD.gn ('k') | third_party/class-dump/class-dump.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698