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 453707 8a7ab9b279fe
parent 453706 620e00a8a3ac
child 453708 e3d38e17dec8
push id111131
push useremilio@crisal.io
push dateMon, 14 Jan 2019 12:45:32 +0000
treeherdermozilla-inbound@e3d38e17dec8 [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',
     ]