Merge pull request #396 from GuillaumeGomez/rustify-clean-all
Rustify `clean_all.sh`
This commit is contained in:
commit
7dad07a67c
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -103,7 +103,7 @@ jobs:
|
|||||||
./y.sh build --features master
|
./y.sh build --features master
|
||||||
# TODO: remove --features master when it is back to the default.
|
# TODO: remove --features master when it is back to the default.
|
||||||
cargo test --features master
|
cargo test --features master
|
||||||
./clean_all.sh
|
./y.sh clean all
|
||||||
|
|
||||||
- name: Prepare dependencies
|
- name: Prepare dependencies
|
||||||
run: |
|
run: |
|
||||||
|
2
.github/workflows/gcc12.yml
vendored
2
.github/workflows/gcc12.yml
vendored
@ -86,7 +86,7 @@ jobs:
|
|||||||
./y.sh prepare --only-libcore --libgccjit12-patches
|
./y.sh prepare --only-libcore --libgccjit12-patches
|
||||||
./y.sh build --no-default-features --sysroot-panic-abort
|
./y.sh build --no-default-features --sysroot-panic-abort
|
||||||
cargo test --no-default-features
|
cargo test --no-default-features
|
||||||
./clean_all.sh
|
./y.sh clean all
|
||||||
|
|
||||||
- name: Prepare dependencies
|
- name: Prepare dependencies
|
||||||
run: |
|
run: |
|
||||||
|
2
.github/workflows/m68k.yml
vendored
2
.github/workflows/m68k.yml
vendored
@ -118,7 +118,7 @@ jobs:
|
|||||||
./y.sh build --target-triple m68k-unknown-linux-gnu --features master
|
./y.sh build --target-triple m68k-unknown-linux-gnu --features master
|
||||||
# TODO: remove --features master when it is back to the default.
|
# TODO: remove --features master when it is back to the default.
|
||||||
CG_GCC_TEST_TARGET=m68k-unknown-linux-gnu cargo test --features master
|
CG_GCC_TEST_TARGET=m68k-unknown-linux-gnu cargo test --features master
|
||||||
./clean_all.sh
|
./y.sh clean all
|
||||||
|
|
||||||
- name: Prepare dependencies
|
- name: Prepare dependencies
|
||||||
run: |
|
run: |
|
||||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -82,7 +82,7 @@ jobs:
|
|||||||
EMBED_LTO_BITCODE=1 ./y.sh build --release --release-sysroot --features master
|
EMBED_LTO_BITCODE=1 ./y.sh build --release --release-sysroot --features master
|
||||||
# TODO: remove --features master when it is back to the default.
|
# TODO: remove --features master when it is back to the default.
|
||||||
cargo test --features master
|
cargo test --features master
|
||||||
./clean_all.sh
|
./y.sh clean all
|
||||||
|
|
||||||
- name: Prepare dependencies
|
- name: Prepare dependencies
|
||||||
run: |
|
run: |
|
||||||
|
2
.github/workflows/stdarch.yml
vendored
2
.github/workflows/stdarch.yml
vendored
@ -100,7 +100,7 @@ jobs:
|
|||||||
- name: Clean
|
- name: Clean
|
||||||
if: ${{ !matrix.cargo_runner }}
|
if: ${{ !matrix.cargo_runner }}
|
||||||
run: |
|
run: |
|
||||||
./clean_all.sh
|
./y.sh clean all
|
||||||
|
|
||||||
- name: Prepare dependencies
|
- name: Prepare dependencies
|
||||||
run: |
|
run: |
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Requires the CHANNEL env var to be set to `debug` or `release.`
|
|
||||||
|
|
||||||
set -e
|
|
||||||
cd $(dirname "$0")
|
|
||||||
|
|
||||||
pushd ../
|
|
||||||
source ./config.sh
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Cleanup for previous run
|
|
||||||
# v Clean target dir except for build scripts and incremental cache
|
|
||||||
rm -r target/*/{debug,release}/{build,deps,examples,libsysroot*,native} 2>/dev/null || true
|
|
||||||
rm Cargo.lock test_target/Cargo.lock 2>/dev/null || true
|
|
||||||
rm -r sysroot/ 2>/dev/null || true
|
|
||||||
|
|
||||||
# Build libs
|
|
||||||
export RUSTFLAGS="$RUSTFLAGS -Z force-unstable-if-unmarked"
|
|
||||||
if [[ "$1" == "--release" ]]; then
|
|
||||||
sysroot_channel='release'
|
|
||||||
RUSTFLAGS="$RUSTFLAGS -Zmir-opt-level=3" cargo build --target $TARGET_TRIPLE --release
|
|
||||||
else
|
|
||||||
sysroot_channel='debug'
|
|
||||||
cargo build --target $TARGET_TRIPLE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy files to sysroot
|
|
||||||
mkdir -p sysroot/lib/rustlib/$TARGET_TRIPLE/lib/
|
|
||||||
cp -r target/$TARGET_TRIPLE/$sysroot_channel/deps/* sysroot/lib/rustlib/$TARGET_TRIPLE/lib/
|
|
||||||
# Copy the source files to the sysroot (Rust for Linux needs this).
|
|
||||||
source_dir=sysroot/lib/rustlib/src/rust
|
|
||||||
mkdir -p $source_dir
|
|
||||||
cp -r sysroot_src/library/ $source_dir
|
|
73
build_system/src/clean.rs
Normal file
73
build_system/src/clean.rs
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
use crate::utils::remove_file;
|
||||||
|
|
||||||
|
use std::fs::remove_dir_all;
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
|
struct CleanArg {
|
||||||
|
all: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CleanArg {
|
||||||
|
fn new() -> Result<Option<Self>, String> {
|
||||||
|
let mut args = CleanArg::default();
|
||||||
|
|
||||||
|
// We skip the binary and the "clean" option.
|
||||||
|
for arg in std::env::args().skip(2) {
|
||||||
|
match arg.as_str() {
|
||||||
|
"all" => args.all = true,
|
||||||
|
"--help" => {
|
||||||
|
Self::usage();
|
||||||
|
return Ok(None);
|
||||||
|
}
|
||||||
|
a => return Err(format!("Unknown argument `{}`", a)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(Some(args))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn usage() {
|
||||||
|
println!(
|
||||||
|
r#"
|
||||||
|
`clean` command help:
|
||||||
|
|
||||||
|
all : Clean all data
|
||||||
|
--help : Show this help
|
||||||
|
"#
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn clean_all() -> Result<(), String> {
|
||||||
|
let dirs_to_remove = [
|
||||||
|
"target",
|
||||||
|
"build_sysroot/sysroot",
|
||||||
|
"build_sysroot/sysroot_src",
|
||||||
|
"build_sysroot/target",
|
||||||
|
"regex",
|
||||||
|
"simple-raytracer",
|
||||||
|
];
|
||||||
|
for dir in dirs_to_remove {
|
||||||
|
let _ = remove_dir_all(dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
let files_to_remove = ["build_sysroot/Cargo.lock", "perf.data", "perf.data.old"];
|
||||||
|
|
||||||
|
for file in files_to_remove {
|
||||||
|
let _ = remove_file(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("Successfully ran `clean all`");
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn run() -> Result<(), String> {
|
||||||
|
let args = match CleanArg::new()? {
|
||||||
|
Some(a) => a,
|
||||||
|
None => return Ok(()),
|
||||||
|
};
|
||||||
|
|
||||||
|
if args.all {
|
||||||
|
clean_all()?;
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
@ -2,6 +2,7 @@ use std::env;
|
|||||||
use std::process;
|
use std::process;
|
||||||
|
|
||||||
mod build;
|
mod build;
|
||||||
|
mod clean;
|
||||||
mod config;
|
mod config;
|
||||||
mod prepare;
|
mod prepare;
|
||||||
mod rustc_info;
|
mod rustc_info;
|
||||||
@ -22,6 +23,7 @@ fn usage() {
|
|||||||
"\
|
"\
|
||||||
Available commands for build_system:
|
Available commands for build_system:
|
||||||
|
|
||||||
|
clean : Run clean command
|
||||||
prepare : Run prepare command
|
prepare : Run prepare command
|
||||||
build : Run build command
|
build : Run build command
|
||||||
test : Run test command
|
test : Run test command
|
||||||
@ -30,6 +32,7 @@ Available commands for build_system:
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub enum Command {
|
pub enum Command {
|
||||||
|
Clean,
|
||||||
Prepare,
|
Prepare,
|
||||||
Build,
|
Build,
|
||||||
Test,
|
Test,
|
||||||
@ -41,6 +44,7 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let command = match env::args().nth(1).as_deref() {
|
let command = match env::args().nth(1).as_deref() {
|
||||||
|
Some("clean") => Command::Clean,
|
||||||
Some("prepare") => Command::Prepare,
|
Some("prepare") => Command::Prepare,
|
||||||
Some("build") => Command::Build,
|
Some("build") => Command::Build,
|
||||||
Some("test") => Command::Test,
|
Some("test") => Command::Test,
|
||||||
@ -57,6 +61,7 @@ fn main() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if let Err(e) = match command {
|
if let Err(e) = match command {
|
||||||
|
Command::Clean => clean::run(),
|
||||||
Command::Prepare => prepare::run(),
|
Command::Prepare => prepare::run(),
|
||||||
Command::Build => build::run(),
|
Command::Build => build::run(),
|
||||||
Command::Test => test::run(),
|
Command::Test => test::run(),
|
||||||
|
@ -346,7 +346,7 @@ pub fn split_args(args: &str) -> Result<Vec<String>, String> {
|
|||||||
Ok(out)
|
Ok(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn remove_file<P: AsRef<Path>>(file_path: &P) -> Result<(), String> {
|
pub fn remove_file<P: AsRef<Path> + ?Sized>(file_path: &P) -> Result<(), String> {
|
||||||
std::fs::remove_file(file_path).map_err(|error| {
|
std::fs::remove_file(file_path).map_err(|error| {
|
||||||
format!(
|
format!(
|
||||||
"Failed to remove `{}`: {:?}",
|
"Failed to remove `{}`: {:?}",
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
set -v
|
|
||||||
|
|
||||||
rm -rf target/ build_sysroot/{sysroot/,sysroot_src/,target/,Cargo.lock} perf.data{,.old}
|
|
||||||
rm -rf regex/ simple-raytracer/
|
|
Loading…
x
Reference in New Issue
Block a user