build(rust): link Rust CLI generators into program tests
Keep the original C translation units as declaration-only build shims while the Rust CLI helper archive owns datagen and lorem. Track both Rust sources in the program and test archive prerequisites, and link the helpers-only archive into C test binaries that still provide their own file I/O and orchestration. This preserves the existing C test harnesses while making the migrated helper implementations the single definitions used by the binary and tests. Test Plan: - make -C programs zstd V=1 - make -C tests datagen V=1 - make -C tests test-rust-lib-smoke V=1 - git diff --check Refs: programs/datagen.c, programs/lorem.c, tests/Makefile
This commit is contained in:
+4
-2
@@ -110,7 +110,8 @@ RUST_CLI_DIR := $(RUST_DIR)/cli
|
||||
RUST_CLI_MANIFEST := $(RUST_CLI_DIR)/Cargo.toml
|
||||
RUST_CLI_HELPER_SOURCES := $(RUST_CLI_MANIFEST) $(RUST_CLI_DIR)/Cargo.lock \
|
||||
$(RUST_CLI_DIR)/src/lib.rs \
|
||||
$(RUST_DIR)/src/timefn.rs $(RUST_DIR)/src/benchfn.rs
|
||||
$(RUST_DIR)/src/timefn.rs $(RUST_DIR)/src/benchfn.rs \
|
||||
$(RUST_DIR)/src/datagen.rs $(RUST_DIR)/src/lorem.rs
|
||||
RUST_CLI_HELPERS_TARGET_DIR := $(RUST_DIR)/target/cli-helpers
|
||||
RUST_CLI_HELPERS_STATICLIB := $(RUST_CLI_HELPERS_TARGET_DIR)/release/libzstd_cli_rs.a
|
||||
RUST_CLI_HELPERS_STATICLIB_32 := $(RUST_CLI_HELPERS_TARGET_DIR)/$(RUST_TARGET_32)/release/libzstd_cli_rs.a
|
||||
@@ -380,7 +381,8 @@ $(RUST_LINK_TARGETS) $(RUST_LINK_TARGETS_32): $(RUST_HUF_C_MODE_STAMP)
|
||||
# prerequisite so `$^` places it after every C object referencing its symbols.
|
||||
RUST_CLI_LINK_TARGETS := fullbench fullbench-lib fullbench-dll fuzzer \
|
||||
zstreamtest zstreamtest_asan zstreamtest_tsan \
|
||||
zstreamtest_ubsan paramgrill decodecorpus poolTests
|
||||
zstreamtest_ubsan paramgrill decodecorpus poolTests \
|
||||
datagen largeDictionary
|
||||
$(RUST_CLI_LINK_TARGETS): $(RUST_CLI_HELPERS_STATICLIB)
|
||||
|
||||
RUST_CLI_LINK_TARGETS_32 := fullbench32 fuzzer32 zstreamtest32
|
||||
|
||||
Reference in New Issue
Block a user