From 164a72bdfdafa25fd932375fcf729bb23533abe8 Mon Sep 17 00:00:00 2001 From: Rafael Rivera Date: Sat, 1 Jul 2023 09:23:37 -0700 Subject: [PATCH 1/3] Change riddle arguments, help text --- crates/tools/riddle/src/args.rs | 2 +- crates/tools/riddle/src/main.rs | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/crates/tools/riddle/src/args.rs b/crates/tools/riddle/src/args.rs index b85b47641d..7142ac8f93 100644 --- a/crates/tools/riddle/src/args.rs +++ b/crates/tools/riddle/src/args.rs @@ -28,7 +28,7 @@ fn from_iter>(result: &mut Vec, args: T) -> R for args in crate::read_file_lines(&arg)? { from_string(result, &args)?; } - } else if arg == "-etc" { + } else if arg == "-@" { expand = true; } else { result.push(arg); diff --git a/crates/tools/riddle/src/main.rs b/crates/tools/riddle/src/main.rs index 8becd3ab6d..7dcd1467c4 100644 --- a/crates/tools/riddle/src/main.rs +++ b/crates/tools/riddle/src/main.rs @@ -33,12 +33,12 @@ fn run() -> Result<()> { r#"Usage: riddle.exe [options...] Options: - -in Path to files and directories containing .winmd and .idl files - -out Path to .winmd or .idl file to generate - -filter Namespaces to include or !exclude in output - -format Format .idl files only - -config Override a configuration value - -etc File containing command line options + -i,--in Path to files and directories containing .winmd and .idl files + -o,--out Path to .winmd, .idl, or .rs file to generate + -f,--filter Namespaces to include or !exclude in output + -c,--config Override a configuration value + --format Format .idl files only + -@ File containing command line options "# ); return Ok(()); @@ -59,11 +59,14 @@ Options: match kind { ArgKind::None => match arg.as_str() { - "-in" => kind = ArgKind::Input, - "-out" => kind = ArgKind::Output, - "-filter" => kind = ArgKind::Filter, - "-config" => kind = ArgKind::Config, - "-format" => format = true, + "--in" => kind = ArgKind::Input, + "-i" => kind = ArgKind::Input, + "--out" => kind = ArgKind::Output, + "-o" => kind = ArgKind::Output, + "--filter" => kind = ArgKind::Filter, + "-c" => kind = ArgKind::Config, + "--config" => kind = ArgKind::Config, + "--format" => format = true, _ => return Err(Error::new(&format!("invalid option `{arg}`"))), }, ArgKind::Output => { @@ -94,7 +97,7 @@ Options: if format { if output.is_some() || !include.is_empty() || !exclude.is_empty() { return Err(Error::new( - "-format cannot be combined with -output, -include, or -exclude", + "--format cannot be combined with --out or --filter", )); } From 89f97cd6487fc93f631c83be30b115289c4d62ea Mon Sep 17 00:00:00 2001 From: Rafael Rivera Date: Sat, 1 Jul 2023 09:51:23 -0700 Subject: [PATCH 2/3] update usage --- crates/tests/component/build.rs | 8 ++++---- crates/tests/component_client/build.rs | 6 +++--- crates/tests/riddle/src/lib.rs | 6 +++--- crates/tests/standalone/build.rs | 6 +++--- crates/tools/core/bindings.txt | 8 ++++---- crates/tools/core/com_bindings.txt | 8 ++++---- crates/tools/core/src/main.rs | 4 ++-- crates/tools/metadata/bindings.txt | 8 ++++---- crates/tools/metadata/src/main.rs | 2 +- crates/tools/sys/bindings.txt | 8 ++++---- crates/tools/sys/src/main.rs | 2 +- crates/tools/windows/bindings.txt | 8 ++++---- crates/tools/windows/src/main.rs | 2 +- 13 files changed, 38 insertions(+), 38 deletions(-) diff --git a/crates/tests/component/build.rs b/crates/tests/component/build.rs index 9489dfc17d..e2ed62fe7d 100644 --- a/crates/tests/component/build.rs +++ b/crates/tests/component/build.rs @@ -31,14 +31,14 @@ fn main() { "--target-dir", "../../../target/test_component", // TODO: workaround for https://github.com/rust-lang/cargo/issues/6412 "--", - "-in", + "--in", "component.winmd", &metadata_dir, - "-out", + "--out", "src/bindings.rs", - "-filter", + "--filter", "test_component", - "-config", + "--config", "IMPLEMENT", ]); diff --git a/crates/tests/component_client/build.rs b/crates/tests/component_client/build.rs index c6467dbb24..bc0c05fc63 100644 --- a/crates/tests/component_client/build.rs +++ b/crates/tests/component_client/build.rs @@ -8,12 +8,12 @@ fn main() { "--target-dir", "../../../target/test_component_client", // TODO: workaround for https://github.com/rust-lang/cargo/issues/6412 "--", - "-in", + "--in", "../component/component.winmd", &format!("{}\\System32\\WinMetadata", env!("windir")), - "-out", + "--out", "src/bindings.rs", - "-filter", + "--filter", "test_component", ]); diff --git a/crates/tests/riddle/src/lib.rs b/crates/tests/riddle/src/lib.rs index 90f3a5723d..bd90ea5559 100644 --- a/crates/tests/riddle/src/lib.rs +++ b/crates/tests/riddle/src/lib.rs @@ -14,14 +14,14 @@ pub fn run_riddle(name: &str) -> Vec { // Convert .idl to .winmd let mut command = Command::new("cargo"); command.args([ - "run", "-p", "riddle", "--", "-in", &idl, "-out", &winmd, "-filter", "Test", + "run", "-p", "riddle", "--", "--in", &idl, "--out", &winmd, "--filter", "Test", ]); assert!(command.status().unwrap().success()); // Convert .winmd back to .idl let mut command = Command::new("cargo"); command.args([ - "run", "-p", "riddle", "--", "-in", &winmd, "-out", &idl, "-filter", "Test", + "run", "-p", "riddle", "--", "--in", &winmd, "--out", &idl, "--filter", "Test", ]); assert!(command.status().unwrap().success()); @@ -32,7 +32,7 @@ pub fn run_riddle(name: &str) -> Vec { // Convert .idl to .rs let mut command = Command::new("cargo"); command.args([ - "run", "-p", "riddle", "--", "-in", &idl, "-out", &rs, "-filter", "Test", + "run", "-p", "riddle", "--", "--in", &idl, "--out", &rs, "--filter", "Test", ]); // TODO: -config FLATTEN doesn't work for namespaces assert!(command.status().unwrap().success()); diff --git a/crates/tests/standalone/build.rs b/crates/tests/standalone/build.rs index fa5f5da8d2..b963792629 100644 --- a/crates/tests/standalone/build.rs +++ b/crates/tests/standalone/build.rs @@ -160,11 +160,11 @@ fn riddle(output: &str, filter: &[&str], config: &[&str]) { "--target-dir", "../../../target/test_standalone", // TODO: workaround for https://github.com/rust-lang/cargo/issues/6412 "--", - "-in", + "--in", "../../libs/metadata/default", - "-out", + "--out", output, - "-filter", + "--filter", ]); command.args(filter); diff --git a/crates/tools/core/bindings.txt b/crates/tools/core/bindings.txt index 64c4d0ae7a..f7a80354c0 100644 --- a/crates/tools/core/bindings.txt +++ b/crates/tools/core/bindings.txt @@ -1,8 +1,8 @@ --in crates/libs/metadata/default --out crates/libs/core/src/imp/bindings.rs --config FLATTEN SYS MINIMAL +--in crates/libs/metadata/default +--out crates/libs/core/src/imp/bindings.rs +--config FLATTEN SYS MINIMAL --filter +--filter Windows.Win32.Foundation.CloseHandle Windows.Win32.Foundation.ERROR_NO_UNICODE_TRANSLATION Windows.Win32.Foundation.GetLastError diff --git a/crates/tools/core/com_bindings.txt b/crates/tools/core/com_bindings.txt index 893552b1c4..b8b9f7bbca 100644 --- a/crates/tools/core/com_bindings.txt +++ b/crates/tools/core/com_bindings.txt @@ -1,8 +1,8 @@ --in crates/libs/metadata/default --out crates/libs/core/src/imp/com_bindings.rs --config FLATTEN MINIMAL +--in crates/libs/metadata/default +--out crates/libs/core/src/imp/com_bindings.rs +--config FLATTEN MINIMAL --filter +--filter Windows.Foundation.IReference Windows.Foundation.IStringable Windows.Foundation.PropertyValue diff --git a/crates/tools/core/src/main.rs b/crates/tools/core/src/main.rs index a50ce811b3..8a2da37a2b 100644 --- a/crates/tools/core/src/main.rs +++ b/crates/tools/core/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-etc", + "-@", "crates/tools/core/bindings.txt", ]); @@ -19,7 +19,7 @@ fn main() { "-p", "riddle", "--", - "-etc", + "-@", "crates/tools/core/com_bindings.txt", ]); diff --git a/crates/tools/metadata/bindings.txt b/crates/tools/metadata/bindings.txt index 1eb7cf3474..27db4445e7 100644 --- a/crates/tools/metadata/bindings.txt +++ b/crates/tools/metadata/bindings.txt @@ -1,8 +1,8 @@ --in crates/libs/metadata/default --out crates/libs/metadata/src/imp/bindings.rs --config FLATTEN SYS MINIMAL +--in crates/libs/metadata/default +--out crates/libs/metadata/src/imp/bindings.rs +--config FLATTEN SYS MINIMAL --filter +--filter Windows.Win32.System.Diagnostics.Debug.IMAGE_COR20_HEADER Windows.Win32.System.Diagnostics.Debug.IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR Windows.Win32.System.Diagnostics.Debug.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE diff --git a/crates/tools/metadata/src/main.rs b/crates/tools/metadata/src/main.rs index c50fe94162..0d91fb554a 100644 --- a/crates/tools/metadata/src/main.rs +++ b/crates/tools/metadata/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-etc", + "-@", "crates/tools/metadata/bindings.txt", ]); diff --git a/crates/tools/sys/bindings.txt b/crates/tools/sys/bindings.txt index 9651f98ad8..ee5ca21409 100644 --- a/crates/tools/sys/bindings.txt +++ b/crates/tools/sys/bindings.txt @@ -1,8 +1,8 @@ --in crates/libs/metadata/default --out crates/libs/sys/src/lib.rs --config PACKAGE SYS +--in crates/libs/metadata/default +--out crates/libs/sys/src/lib.rs +--config PACKAGE SYS --filter +--filter Windows.Win32 Windows.Wdk !Windows.AI diff --git a/crates/tools/sys/src/main.rs b/crates/tools/sys/src/main.rs index 38148ecbf4..9528996487 100644 --- a/crates/tools/sys/src/main.rs +++ b/crates/tools/sys/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-etc", + "-@", "crates/tools/sys/bindings.txt", ]); diff --git a/crates/tools/windows/bindings.txt b/crates/tools/windows/bindings.txt index a55a735ddd..cf74e7ceb7 100644 --- a/crates/tools/windows/bindings.txt +++ b/crates/tools/windows/bindings.txt @@ -1,8 +1,8 @@ --in crates/libs/metadata/default --out crates/libs/windows/src/lib.rs --config PACKAGE +--in crates/libs/metadata/default +--out crates/libs/windows/src/lib.rs +--config PACKAGE --filter +--filter Windows !Windows.AI.MachineLearning.Preview !Windows.ApplicationModel.SocialInfo diff --git a/crates/tools/windows/src/main.rs b/crates/tools/windows/src/main.rs index 5a5bd5efb7..630f4e7bd5 100644 --- a/crates/tools/windows/src/main.rs +++ b/crates/tools/windows/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-etc", + "-@", "crates/tools/windows/bindings.txt", ]); From 67c3ce10ab08934fe13a8683364c464cf2ab25b1 Mon Sep 17 00:00:00 2001 From: Rafael Rivera Date: Sat, 1 Jul 2023 15:00:00 -0700 Subject: [PATCH 3/3] middleground --- crates/tests/riddle/src/lib.rs | 2 +- crates/tests/standalone/build.rs | 2 +- crates/tools/core/src/main.rs | 4 ++-- crates/tools/metadata/src/main.rs | 2 +- crates/tools/riddle/src/args.rs | 2 +- crates/tools/riddle/src/main.rs | 15 ++++++--------- crates/tools/sys/src/main.rs | 2 +- crates/tools/windows/src/main.rs | 2 +- 8 files changed, 14 insertions(+), 17 deletions(-) diff --git a/crates/tests/riddle/src/lib.rs b/crates/tests/riddle/src/lib.rs index bd90ea5559..fa73555f7e 100644 --- a/crates/tests/riddle/src/lib.rs +++ b/crates/tests/riddle/src/lib.rs @@ -33,7 +33,7 @@ pub fn run_riddle(name: &str) -> Vec { let mut command = Command::new("cargo"); command.args([ "run", "-p", "riddle", "--", "--in", &idl, "--out", &rs, "--filter", "Test", - ]); // TODO: -config FLATTEN doesn't work for namespaces + ]); // TODO: --config FLATTEN doesn't work for namespaces assert!(command.status().unwrap().success()); // Return winmd file for validation diff --git a/crates/tests/standalone/build.rs b/crates/tests/standalone/build.rs index b963792629..28b6d72d84 100644 --- a/crates/tests/standalone/build.rs +++ b/crates/tests/standalone/build.rs @@ -168,7 +168,7 @@ fn riddle(output: &str, filter: &[&str], config: &[&str]) { ]); command.args(filter); - command.arg("-config"); + command.arg("--config"); command.args(config); if !command.status().unwrap().success() { diff --git a/crates/tools/core/src/main.rs b/crates/tools/core/src/main.rs index 8a2da37a2b..d0b8163d0b 100644 --- a/crates/tools/core/src/main.rs +++ b/crates/tools/core/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-@", + "--etc", "crates/tools/core/bindings.txt", ]); @@ -19,7 +19,7 @@ fn main() { "-p", "riddle", "--", - "-@", + "--etc", "crates/tools/core/com_bindings.txt", ]); diff --git a/crates/tools/metadata/src/main.rs b/crates/tools/metadata/src/main.rs index 0d91fb554a..9c87ebcf9f 100644 --- a/crates/tools/metadata/src/main.rs +++ b/crates/tools/metadata/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-@", + "--etc", "crates/tools/metadata/bindings.txt", ]); diff --git a/crates/tools/riddle/src/args.rs b/crates/tools/riddle/src/args.rs index 7142ac8f93..9dffbff051 100644 --- a/crates/tools/riddle/src/args.rs +++ b/crates/tools/riddle/src/args.rs @@ -28,7 +28,7 @@ fn from_iter>(result: &mut Vec, args: T) -> R for args in crate::read_file_lines(&arg)? { from_string(result, &args)?; } - } else if arg == "-@" { + } else if arg == "--etc" { expand = true; } else { result.push(arg); diff --git a/crates/tools/riddle/src/main.rs b/crates/tools/riddle/src/main.rs index 7dcd1467c4..e7a1513154 100644 --- a/crates/tools/riddle/src/main.rs +++ b/crates/tools/riddle/src/main.rs @@ -33,12 +33,12 @@ fn run() -> Result<()> { r#"Usage: riddle.exe [options...] Options: - -i,--in Path to files and directories containing .winmd and .idl files - -o,--out Path to .winmd, .idl, or .rs file to generate - -f,--filter Namespaces to include or !exclude in output - -c,--config Override a configuration value - --format Format .idl files only - -@ File containing command line options + --in Path to files and directories containing .winmd and .idl files + --out Path to .winmd, .idl, or .rs file to generate + --filter Namespaces to include or !exclude in output + --config Override a configuration value + --format Format .idl files only + --etc File containing command line options "# ); return Ok(()); @@ -60,11 +60,8 @@ Options: match kind { ArgKind::None => match arg.as_str() { "--in" => kind = ArgKind::Input, - "-i" => kind = ArgKind::Input, "--out" => kind = ArgKind::Output, - "-o" => kind = ArgKind::Output, "--filter" => kind = ArgKind::Filter, - "-c" => kind = ArgKind::Config, "--config" => kind = ArgKind::Config, "--format" => format = true, _ => return Err(Error::new(&format!("invalid option `{arg}`"))), diff --git a/crates/tools/sys/src/main.rs b/crates/tools/sys/src/main.rs index 9528996487..b9cc3008bf 100644 --- a/crates/tools/sys/src/main.rs +++ b/crates/tools/sys/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-@", + "--etc", "crates/tools/sys/bindings.txt", ]); diff --git a/crates/tools/windows/src/main.rs b/crates/tools/windows/src/main.rs index 630f4e7bd5..c56c95b4ee 100644 --- a/crates/tools/windows/src/main.rs +++ b/crates/tools/windows/src/main.rs @@ -6,7 +6,7 @@ fn main() { "-p", "riddle", "--", - "-@", + "--etc", "crates/tools/windows/bindings.txt", ]);