Move `cmdline` to a separate crate.
PiperOrigin-RevId: 570879925
Change-Id: I0ab34d733b99e4029b2273d130868d5ccc86fbc6
diff --git a/cc_bindings_from_rs/BUILD b/cc_bindings_from_rs/BUILD
index 9227410..bfa9cea 100644
--- a/cc_bindings_from_rs/BUILD
+++ b/cc_bindings_from_rs/BUILD
@@ -18,7 +18,6 @@
# TODO(b/254679226): These should be separate crates.
"bindings.rs",
"cc_bindings_from_rs.rs",
- "cmdline.rs",
],
crate_root = "cc_bindings_from_rs.rs",
# TODO(b/242703401): Remove once cc_common.link works for rustc libraries.
@@ -30,6 +29,7 @@
"//visibility:public",
],
deps = [
+ ":cmdline",
":run_compiler",
":toposort",
"//common:code_gen_utils",
@@ -74,6 +74,31 @@
)
rust_library(
+ name = "cmdline",
+ srcs = [
+ "cmdline.rs",
+ ],
+ deps = [
+ "@crate_index//:anyhow",
+ "@crate_index//:clap",
+ ],
+)
+
+crubit_rust_test(
+ name = "cmdline_test",
+ crate = ":cmdline",
+ tags = [
+ "not_build:arm",
+ "noubsan", # rustc-as-a-library isn't supported for UBSan.
+ ],
+ deps = [
+ ":run_compiler_test_support",
+ "@crate_index//:itertools",
+ "@crate_index//:tempfile",
+ ],
+)
+
+rust_library(
name = "run_compiler",
srcs = [
"run_compiler.rs",
diff --git a/cc_bindings_from_rs/cc_bindings_from_rs.rs b/cc_bindings_from_rs/cc_bindings_from_rs.rs
index 573457e..b914670 100644
--- a/cc_bindings_from_rs/cc_bindings_from_rs.rs
+++ b/cc_bindings_from_rs/cc_bindings_from_rs.rs
@@ -24,7 +24,6 @@
// TODO(b/254679226): these should be separate crates.
mod bindings;
-mod cmdline;
use anyhow::Context;
use itertools::Itertools;
diff --git a/cc_bindings_from_rs/cmdline.rs b/cc_bindings_from_rs/cmdline.rs
index b81302b..114f565 100644
--- a/cc_bindings_from_rs/cmdline.rs
+++ b/cc_bindings_from_rs/cmdline.rs
@@ -2,6 +2,12 @@
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#![feature(rustc_private)]
+#![deny(rustc::internal)]
+
+extern crate rustc_driver;
+extern crate rustc_session;
+
use anyhow::{bail, ensure, Result};
use clap::Parser;
use rustc_session::config::ErrorOutputType;