Bug 1519501 - Generalize a bit GenerateServoStyleConsts and rename to RunCbindgen. r=heycam
authorEmilio Cobos Álvarez <emilio@crisal.io>
Sun, 13 Jan 2019 00:42:48 +0100
changeset 453714 8a7ab9b279fe0afa3d6ce49db711e41f022410a8
parent 453713 620e00a8a3ac5d3af4c003cadd6f7934a9271c94
child 453715 e3d38e17dec86ebe0321d4eb4d49c3ec8d2bf85b
push id35371
push userncsoregi@mozilla.com
push dateMon, 14 Jan 2019 17:23:11 +0000
treeherdermozilla-central@b8f96f4d584a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersheycam
bugs1519501
milestone66.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1519501 - Generalize a bit GenerateServoStyleConsts and rename to RunCbindgen. r=heycam Differential Revision: https://phabricator.services.mozilla.com/D16399
layout/style/GenerateServoStyleConsts.py
layout/style/RunCbindgen.py
layout/style/moz.build
deleted file mode 100644
--- a/layout/style/GenerateServoStyleConsts.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-from __future__ import print_function
-import buildconfig
-import mozpack.path as mozpath
-import os
-import subprocess
-
-STYLE = mozpath.join(buildconfig.topsrcdir, "servo", "components", "style")
-CARGO_LOCK = mozpath.join(buildconfig.topsrcdir, "Cargo.lock")
-
-def generate(output, cbindgen_toml_path):
-    env = os.environ.copy()
-    env['CARGO'] = str(buildconfig.substs['CARGO'])
-    p = subprocess.Popen([
-        buildconfig.substs['CBINDGEN'],
-        mozpath.join(buildconfig.topsrcdir, "toolkit", "library", "rust"),
-        "--lockfile",
-        CARGO_LOCK,
-        "--crate",
-        "style"
-    ], env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-
-    stdout, stderr = p.communicate()
-    if p.returncode != 0:
-        raise TypeError("cbindgen failed: %s" % stderr)
-
-    output.write(stdout)
-
-    deps = set()
-    deps.add(CARGO_LOCK)
-    for path, dirs, files in os.walk(STYLE):
-        for file in files:
-            if os.path.splitext(file)[1] == ".rs":
-                deps.add(mozpath.join(path, file))
-
-    return deps
new file mode 100644
--- /dev/null
+++ b/layout/style/RunCbindgen.py
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from __future__ import print_function
+import buildconfig
+import mozpack.path as mozpath
+import os
+import subprocess
+
+CARGO_LOCK = mozpath.join(buildconfig.topsrcdir, "Cargo.lock")
+
+def generate(output, cbindgen_crate_path, *in_tree_dependencies):
+    env = os.environ.copy()
+    env['CARGO'] = str(buildconfig.substs['CARGO'])
+
+    p = subprocess.Popen([
+        buildconfig.substs['CBINDGEN'],
+        mozpath.join(buildconfig.topsrcdir, "toolkit", "library", "rust"),
+        "--lockfile",
+        CARGO_LOCK,
+        "--crate",
+        mozpath.basename(cbindgen_crate_path),
+    ], env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+
+    stdout, stderr = p.communicate()
+    if p.returncode != 0:
+        raise TypeError("cbindgen failed: %s" % stderr)
+
+    output.write(stdout)
+
+    deps = set()
+    deps.add(CARGO_LOCK)
+    deps.add(mozpath.join(cbindgen_crate_path, "cbindgen.toml"))
+    for directory in in_tree_dependencies + (cbindgen_crate_path,):
+        for path, dirs, files in os.walk(directory):
+            for file in files:
+                if os.path.splitext(file)[1] == ".rs":
+                    deps.add(mozpath.join(path, file))
+
+    return deps
--- a/layout/style/moz.build
+++ b/layout/style/moz.build
@@ -317,16 +317,16 @@ if CONFIG['COMPILE_ENVIRONMENT']:
 
     css_props = GENERATED_FILES['nsCSSPropsGenerated.inc']
     css_props.script = 'GenerateCSSPropsGenerated.py:generate'
     css_props.inputs = [
         '!ServoCSSPropList.py',
     ]
 
     consts = GENERATED_FILES['ServoStyleConsts.h']
-    consts.script = 'GenerateServoStyleConsts.py:generate'
+    consts.script = 'RunCbindgen.py:generate'
     consts.inputs = [
-        '/servo/components/style/cbindgen.toml',
+        '/servo/components/style',
     ]
 
     CONFIGURE_SUBST_FILES += [
         'bindgen.toml',
     ]