Commit 818db760 authored by Emilio Cobos Álvarez's avatar Emilio Cobos Álvarez
Browse files

Bug 14788137 - Add cbindgen toolchain job and install via bootstrap. r=ted

And require it for taskcluster build already, because it doesn't harm and lets
me put all the yml changes in the same commit.

I gave up cross-compiling for OSX after a few tries and after realizing it
wasn't enough with cctools and such, but that I also needed the Mac SDK, for
which I don't have permission...

Differential Revision: https://phabricator.services.mozilla.com/D2664

--HG--
extra : moz-landing-system : lando
parent 95e22ca1
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -268,6 +268,19 @@ class BaseBootstrapper(object):
            '%s does not yet implement ensure_node_packages()'
            % __name__)

    def ensure_rust_package(self, crate_name):
        if self.which(crate_name):
            return
        cargo_home, cargo_bin = self.cargo_home()
        cargo_bin_path = os.path.join(cargo_bin, crate_name)
        if os.path.exists(cargo_bin_path) and os.access(cargo_bin_path, os.X_OK):
            return
        print('%s not found, installing via cargo install.' % crate_name)
        cargo = self.which('cargo')
        if not cargo:
            cargo = os.path.join(cargo_bin, 'cargo')
        subprocess.check_call([cargo, 'install', crate_name])

    def install_toolchain_artifact(self, state_dir, checkout_root, toolchain_job):
        mach_binary = os.path.join(checkout_root, 'mach')
        mach_binary = os.path.abspath(mach_binary)
+2 −2
Original line number Diff line number Diff line
@@ -66,8 +66,8 @@ class FreeBSDBootstrapper(BaseBootstrapper):
        self.pkg_install(*self.browser_packages)

    def ensure_stylo_packages(self, state_dir, checkout_root):
        # Already installed as browser package
        pass
        # Clang / llvm already installed as browser package
        self.ensure_rust_package('cbindgen')

    def upgrade_mercurial(self, current):
        self.pkg_install('mercurial')
+2 −1
Original line number Diff line number Diff line
@@ -15,7 +15,8 @@ class StyloInstall(object):

    def ensure_stylo_packages(self, state_dir, checkout_root):
        from mozboot import stylo
        self.install_toolchain_artifact(state_dir, checkout_root, stylo.LINUX)
        self.install_toolchain_artifact(state_dir, checkout_root, stylo.LINUX_CLANG)
        self.install_toolchain_artifact(state_dir, checkout_root, stylo.LINUX_CBINDGEN)


class NodeInstall(object):
+2 −1
Original line number Diff line number Diff line
@@ -47,7 +47,8 @@ class MozillaBuildBootstrapper(BaseBootstrapper):

    def ensure_stylo_packages(self, state_dir, checkout_root):
        from mozboot import stylo
        self.install_toolchain_artifact(state_dir, checkout_root, stylo.WINDOWS)
        self.install_toolchain_artifact(state_dir, checkout_root, stylo.WINDOWS_CLANG)
        self.install_toolchain_artifact(state_dir, checkout_root, stylo.WINDOWS_CBINDGEN)

    def ensure_node_packages(self, state_dir, checkout_root):
        from mozboot import node
+2 −2
Original line number Diff line number Diff line
@@ -48,5 +48,5 @@ class OpenBSDBootstrapper(BaseBootstrapper):
        self.run_as_root(['pkg_add', '-z'] + self.browser_packages)

    def ensure_stylo_packages(self, state_dir, checkout_root):
        # Already installed as browser package
        pass
        # Clang / llvm already installed as browser package
        self.ensure_rust_package('cbindgen')
Loading