From 207f5cc5310ff4cadde31480181c013f3e212ce5 Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Wed, 6 Mar 2019 10:42:15 -0500 Subject: [PATCH 1/3] Propagate additional cargo build options --- cargo-apk/src/main.rs | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/cargo-apk/src/main.rs b/cargo-apk/src/main.rs index d34fa3e..0554403 100644 --- a/cargo-apk/src/main.rs +++ b/cargo-apk/src/main.rs @@ -40,17 +40,17 @@ fn main() { let arg_target_dir = &subcommand_args.value_of_path("target-dir", &cargo_config); cargo_config.configure( - args.occurrences_of("verbose") as u32, - if args.is_present("quiet") { + subcommand_args.occurrences_of("verbose") as u32, + if subcommand_args.is_present("quiet") { Some(true) } else { None }, - &args.value_of("color").map(|s| s.to_string()), - args.is_present("frozen"), - args.is_present("locked"), + &subcommand_args.value_of("color").map(|s| s.to_string()), + subcommand_args.is_present("frozen"), + subcommand_args.is_present("locked"), arg_target_dir, - &args.values_of_lossy("unstable-features") + &subcommand_args.values_of_lossy("unstable-features") .unwrap_or_default(), ).unwrap(); @@ -119,6 +119,11 @@ fn cli_build() -> App<'static, 'static> { .arg_manifest_path() .arg_message_format() .arg_build_plan() + .arg_verbose() + .arg_quiet() + .arg_color() + .arg_frozen() + .arg_locked() .after_help( "\ All packages in the workspace are built if the `--all` flag is supplied. The @@ -429,6 +434,29 @@ pub trait AppExt: Sized { self._arg(opt("build-plan", "Output the build plan in JSON")) } + fn arg_verbose(self) -> Self { + self._arg(opt("verbose", "Use verbose output") + .short("v")) + } + + fn arg_quiet(self) -> Self { + self._arg(opt("quiet", "No output printed to stdout") + .short("q")) + } + + fn arg_color(self) -> Self { + self._arg(opt("color", "Coloring: auto, always, never") + .value_name("WHEN")) + } + + fn arg_frozen(self) -> Self { + self._arg(opt("frozen", "Require Cargo.lock and cache are up to date")) + } + + fn arg_locked(self) -> Self { + self._arg(opt("locked", "Require Cargo.lock is up to date")) + } + fn arg_new_opts(self) -> Self { self._arg( opt( From 45b81ab6d262265b42f74c14b42def10ddbed4a7 Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Thu, 21 Mar 2019 14:35:23 -0400 Subject: [PATCH 2/3] Propagate cargo's frozen flag to gradle as well --- cargo-apk/src/ops/build.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cargo-apk/src/ops/build.rs b/cargo-apk/src/ops/build.rs index cbde31a..14b0477 100644 --- a/cargo-apk/src/ops/build.rs +++ b/cargo-apk/src/ops/build.rs @@ -327,11 +327,15 @@ pub fn build(workspace: &Workspace, config: &AndroidConfig, options: &ArgMatches // Invoking `gradle` from within `android-artifacts` in order to compile the project. drop(writeln!(workspace.config().shell().err(), "Invoking gradle")); let mut cmd = process(&config.gradle_command); + if workspace.config().frozen() { + cmd.arg("--offline"); + } if config.release { cmd.arg("assembleRelease"); } else { cmd.arg("assembleDebug"); } + drop(writeln!(workspace.config().shell().err(), "{}", cmd)); cmd.cwd(&android_artifacts_dir) .exec()?; From 486491e81819c3346d364a93fc1f3c0206d3ece0 Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Fri, 22 Mar 2019 02:00:51 -0400 Subject: [PATCH 3/3] Allow specifying the repository/dependency from a separate file --- cargo-apk/src/config.rs | 8 ++++++++ cargo-apk/src/ops/build.rs | 13 +++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/cargo-apk/src/config.rs b/cargo-apk/src/config.rs index 5f796ac..6536886 100644 --- a/cargo-apk/src/config.rs +++ b/cargo-apk/src/config.rs @@ -19,6 +19,9 @@ pub struct AndroidConfig { pub ndk_path: PathBuf, /// How to invoke `gradle`. pub gradle_command: String, + /// Stuff to include in the build.gradle file instead of the hard-coded + /// repository information + pub build_gradle_inc: Option, /// Name that the package will have on the Android machine. /// This is the key that Android uses to identify your package, so it should be unique for @@ -128,6 +131,10 @@ pub fn load(workspace: &Workspace, flag_package: &Option) -> Result) -> Result