diff --git a/package.json b/package.json index 0f7360707..dc3d18c6e 100644 --- a/package.json +++ b/package.json @@ -51,8 +51,8 @@ }, "homepage": "https://github.com/bytecodealliance/jco#readme", "scripts": { - "build": "cargo xtask build", - "build:types:preview2-shim": "cargo xtask build-shims", + "build": "cargo xtask build workspace", + "build:types:preview2-shim": "cargo xtask build shims", "lint": "eslint -c eslintrc.cjs lib/**/*.js packages/*/lib/**/*.js", "test": "mocha -u tdd test/test.js --timeout 120000" }, diff --git a/xtask/src/build_self.rs b/xtask/src/build/jco.rs similarity index 100% rename from xtask/src/build_self.rs rename to xtask/src/build/jco.rs diff --git a/xtask/src/build/mod.rs b/xtask/src/build/mod.rs new file mode 100644 index 000000000..47769f311 --- /dev/null +++ b/xtask/src/build/mod.rs @@ -0,0 +1,3 @@ +pub(crate) mod jco; +pub(crate) mod shims; +pub(crate) mod workspace; diff --git a/xtask/src/build_shims.rs b/xtask/src/build/shims.rs similarity index 100% rename from xtask/src/build_shims.rs rename to xtask/src/build/shims.rs diff --git a/xtask/src/build.rs b/xtask/src/build/workspace.rs similarity index 100% rename from xtask/src/build.rs rename to xtask/src/build/workspace.rs diff --git a/xtask/src/main.rs b/xtask/src/main.rs index bfe1ea119..90ca8c928 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -1,31 +1,35 @@ use structopt::StructOpt; mod build; -mod build_self; -mod build_shims; mod test; #[derive(StructOpt)] enum Opts { - /// Build the `jco` tools - BuildSelf, - /// Build - Build, - /// Build the shims - BuildShims, + /// Build the project + Build(Build), /// Run tests Test, } +#[derive(StructOpt)] +enum Build { + /// Build and transpile the `jco` tools + Jco, + /// Build the shims + Shims, + /// Build the project and copy the binaries + Workspace, +} + fn main() -> anyhow::Result<()> { match Opts::from_args() { - Opts::BuildSelf => build_self::run(), - Opts::Build => { - build::run()?; - build_self::run()?; + Opts::Build(Build::Jco) => build::jco::run(), + Opts::Build(Build::Shims) => build::shims::run(), + Opts::Build(Build::Workspace) => { + build::workspace::run()?; + build::jco::run()?; Ok(()) } - Opts::BuildShims => build_shims::run(), Opts::Test => test::run(), } }