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

Unified Diff: mojo/public/python/rules.gni

Issue 796373006: Content handler for python. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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 | « mojo/public/python/mojo_bindings/reflection.py ('k') | mojo/public/python/src/common.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/python/rules.gni
diff --git a/mojo/public/python/rules.gni b/mojo/public/python/rules.gni
new file mode 100644
index 0000000000000000000000000000000000000000..934a94e5decfa64222bebba2e44cd5600bbdeefe
--- /dev/null
+++ b/mojo/public/python/rules.gni
@@ -0,0 +1,112 @@
+# 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.
+
+# Rules to generate python packaged applications for Mojo
+
+import("../mojo_sdk.gni")
+
+template("python_package") {
+ action(target_name) {
+ script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root)
+
+ inputs = invoker.sources
+
+ deps = []
+ zip_inputs = []
+
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ foreach(d, invoker.deps) {
+ dep_name = get_label_info(d, "name")
+ dep_target_out_dir = get_label_info(d, "target_out_dir")
+ zip_inputs += [ "$dep_target_out_dir/$dep_name.pyzip" ]
+ }
+ }
+
+ if (defined(invoker.datadeps)) {
+ datadeps = invoker.datadeps
+ }
+
+ output = "$target_out_dir/$target_name.pyzip"
+ outputs = [
+ output,
+ ]
+
+ rebase_base_dir =
+ rebase_path(get_label_info(":$target_name", "dir"), root_build_dir)
+ rebase_inputs = rebase_path(inputs, root_build_dir)
+ rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir)
+ rebase_output = rebase_path(output, root_build_dir)
+ args = [
+ "--base-dir=$rebase_base_dir",
+ "--inputs=$rebase_inputs",
+ "--zip-inputs=$rebase_zip_inputs",
+ "--output=$rebase_output",
+ ]
+ }
+}
+
+# Use this template to generate a .mojo python application. One of the source
+# files should be named __mojo__.py and contain a MojoMain function as the
+# entry point. Dependencies of python_packaged_application targets should be
+# either mojom targets (and specified using the mojom_deps variable) or
+# python_package targets.
+template("python_packaged_application") {
+ package_name = "${target_name}_package"
+ package_output = "$target_out_dir/$package_name.pyzip"
+
+ if (defined(invoker.output_name)) {
+ mojo_output = "$root_out_dir/" + invoker.output_name + ".mojo"
+ } else {
+ mojo_output = "$root_out_dir/" + target_name + ".mojo"
+ }
+
+ python_package(package_name) {
+ sources = invoker.sources
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ if (defined(invoker.mojom_deps)) {
+ mojom_deps = invoker.mojom_deps
+ }
+ if (defined(invoker.datadeps)) {
+ datadeps = invoker.datadeps
+ }
+ }
+
+ action(target_name) {
+ script = rebase_path("mojo/public/tools/prepend.py", ".", mojo_root)
+
+ input = package_output
+ inputs = [
+ input,
+ ]
+
+ output = mojo_output
+ outputs = [
+ output,
+ ]
+
+ deps = [
+ ":$package_name",
+ ]
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ }
+ if (defined(invoker.mojom_deps)) {
+ deps += invoker.mojom_deps
+ }
+ if (defined(invoker.datadeps)) {
+ datadeps = invoker.datadeps
+ }
+
+ rebase_input = rebase_path(input, root_build_dir)
+ rebase_output = rebase_path(output, root_build_dir)
+ args = [
+ "--input=$rebase_input",
+ "--output=$rebase_output",
+ "--line=#!mojo mojo:py_content_handler",
+ ]
+ }
+}
« no previous file with comments | « mojo/public/python/mojo_bindings/reflection.py ('k') | mojo/public/python/src/common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698