From 81ce0dfacef1c1464539c0a143fa0a4007e06735 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 28 Feb 2024 23:26:39 +0100 Subject: [PATCH] Rust: Move 'libformat_parser' build into the GCC build directory Fixes #2883. * .gitignore: Remove 'libgrust/*/target/'. gcc/rust/ * Make-lang.in (LIBFORMAT_PARSER): Point to the GCC build directory. * ($(LIBFORMAT_PARSER)): Build in the GCC build directory. --- .gitignore | 1 - gcc/rust/Make-lang.in | 11 +++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1b2ecabbfe7e..d0e0fd1837f9 100644 --- a/.gitignore +++ b/.gitignore @@ -77,4 +77,3 @@ test.code-workspace gcc/rust/test3-tiny/* .clang-format.swap -libgrust/*/target/ diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index fbd43c96b1a0..0c664b523d11 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -226,7 +226,8 @@ RUST_ALL_OBJS = $(GRS_OBJS) $(RUST_TARGET_OBJS) rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o LIBPROC_MACRO_INTERNAL = ../libgrust/libproc_macro_internal/libproc_macro_internal.a -LIBFORMAT_PARSER = $(srcdir)/../libgrust/libformat_parser/target/debug/liblibformat_parser.a +LIBFORMAT_PARSER_D = rust/libformat_parser +LIBFORMAT_PARSER = $(LIBFORMAT_PARSER_D)/debug/liblibformat_parser.a # The compiler itself is called crab1 crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) $(LIBFORMAT_PARSER) $(rust.prev) @@ -423,7 +424,13 @@ rust/%.o: rust/lex/%.cc # TODO: Improve `cargo` invocation with host specific flags, possibly creating a $(CARGO) variable? $(LIBFORMAT_PARSER): $(srcdir)/../libgrust/libformat_parser/Cargo.toml $(wildcard $(srcdir)/../libgrust/libformat_parser/src/*.rs) - cd $(srcdir)/../libgrust/libformat_parser && cargo build --offline # FIXME: Not always release, right? + cargo \ + --config $(srcdir)/../libgrust/libformat_parser/.cargo/config \ + build \ + --offline \ + --target-dir $(LIBFORMAT_PARSER_D) \ + --manifest-path $(srcdir)/../libgrust/libformat_parser/Cargo.toml \ + # FIXME: Not always '--release', right? # build all rust/parse files in rust folder, add cross-folder includes rust/%.o: rust/parse/%.cc