Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
cd4c2c7
build: make list of cross compilers more explicit, switch to ARMv8
kwvg Jan 22, 2026
cc8e372
build: add Rust to CI docker image, cross-compile targets
kwvg Jan 12, 2026
feafe7c
build: add minimal stub crate to validate Rust integration
kwvg Jan 16, 2026
117fd03
lint: exclude `rust/` from linters
kwvg Jan 11, 2026
0356fd7
build: introduce barebones Autotools integration with Rust
kwvg Jan 24, 2026
be9638b
build: propagate SDK version to Rust compiler
kwvg Jan 15, 2026
2792cf1
build: propagate macOS SDK path to Rust compiler
kwvg Jan 18, 2026
96e71e2
build: use debug profile for Rust components if `--enable-debug` set
kwvg Jan 16, 2026
384d185
build: propagate target build variables to Rust components
kwvg Jan 17, 2026
ed40ae3
build: propagate host build variables to Rust components
kwvg Jan 22, 2026
0ecbe28
debug: Add log that validates successful FFI invocation at init
kwvg Jan 15, 2026
fb3de29
depends: integrate Rust and `cxxbridge` into depends
kwvg Jan 17, 2026
c4597b9
build: drop Rust from CI docker image
kwvg Jan 12, 2026
134e4b4
depends: add support for vendored crates for offline builds
kwvg Feb 21, 2026
a610dca
fix: avoid triggering `rustup` if building from depends
kwvg Jan 16, 2026
c846ab7
fix: workaround `Directory renamed before its status could be extracted`
kwvg Jan 16, 2026
6c182d9
fix: copy native binaries for access within Guix context
kwvg Jan 17, 2026
4646a0c
fix: patch loader paths to Guix store locations
kwvg Jan 22, 2026
d5690d4
refactor: split rust runner (builder) and standard library (cross)
kwvg Jan 18, 2026
4c28b28
build: switch to Rust 1.85.1, use musl stdlib to avoid Guix glibc issues
kwvg Jan 18, 2026
7e7a3f3
build: update to macOS 15.2 SDK from Xcode 16.0
kwvg Jan 22, 2026
28c81da
build: unset `C{,PLUS}_INCLUDE_PATH` to avoid cross-toolchain conflict
kwvg Jan 18, 2026
d7fe95f
fix: include resource directory in search path for include resolution
kwvg Jan 18, 2026
415bcf3
fix: resolve issues with dist builds
kwvg Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .cargo/config.toml.offline
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Linux
[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-gnu-gcc"

[target.armv7-unknown-linux-musleabihf]
linker = "arm-linux-gnueabihf-gcc"

[target.powerpc64le-unknown-linux-musl]
linker = "powerpc64le-linux-gnu-gcc"

[target.riscv64gc-unknown-linux-musl]
linker = "riscv64-linux-gnu-gcc"

[target.x86_64-unknown-linux-musl]
linker = "x86-64-linux-gnu-gcc"

# Windows
[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc"

# macOS
# [target.aarch64-apple-darwin]
# linker = "aarch64-apple-darwin-gcc"

# [target.x86_64-apple-darwin]
# linker = "x86_64-apple-darwin-gcc"

[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
# The directory for this source is set to RUST_VENDORED_SOURCES by rust/Makefile.am
20 changes: 10 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@ jobs:
file: ./contrib/containers/ci/ci-slim.Dockerfile
name: dashcore-ci-slim

depends-arm-linux:
name: arm-linux-gnueabihf
depends-aarch64-linux:
name: aarch64-linux-gnu
uses: ./.github/workflows/build-depends.yml
needs: [container, cache-sources]
if: ${{ vars.SKIP_ARM_LINUX == '' }}
with:
build-target: arm-linux
build-target: aarch64-linux
container-path: ${{ needs.container.outputs.path }}

depends-linux64:
Expand Down Expand Up @@ -131,16 +131,16 @@ jobs:
with:
container-path: ${{ needs.container-slim.outputs.path }}

src-arm-linux:
name: arm-linux-build
src-aarch64-linux:
name: aarch64-linux-build
uses: ./.github/workflows/build-src.yml
needs: [container, depends-arm-linux]
needs: [container, depends-aarch64-linux]
with:
build-target: arm-linux
build-target: aarch64-linux
container-path: ${{ needs.container.outputs.path }}
depends-key: ${{ needs.depends-arm-linux.outputs.key }}
depends-host: ${{ needs.depends-arm-linux.outputs.host }}
depends-dep-opts: ${{ needs.depends-arm-linux.outputs.dep-opts }}
depends-key: ${{ needs.depends-aarch64-linux.outputs.key }}
depends-host: ${{ needs.depends-aarch64-linux.outputs.host }}
depends-dep-opts: ${{ needs.depends-aarch64-linux.outputs.dep-opts }}

src-linux64:
name: linux64-build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/guix-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
runs-on: ubuntu-24.04-arm
strategy:
matrix:
build_target: [x86_64-linux-gnu, arm-linux-gnueabihf, aarch64-linux-gnu, riscv64-linux-gnu, powerpc64-linux-gnu, x86_64-w64-mingw32, x86_64-apple-darwin, arm64-apple-darwin]
build_target: [x86_64-linux-gnu, aarch64-linux-gnu, riscv64-linux-gnu, powerpc64-linux-gnu, x86_64-w64-mingw32, x86_64-apple-darwin, arm64-apple-darwin]

timeout-minutes: 480
steps:
Expand Down
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -175,3 +175,26 @@ test/lint/.cppcheck/*
# Editor and tooling
.vscode/
compile_commands.json

# Generated by Cargo
# will have compiled files and executables
debug
target

# Cargo configuration
.cargo/.configured-for-*
.cargo/config
.cargo/config.toml

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

# Generated by cargo mutants
# Contains mutation testing data
**/mutants.out*/

# FFI bridge
gen
Comment on lines +179 to +200
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Overly broad unanchored ignore patterns (debug, target, gen).

  • debug (line 181): Cargo never creates a standalone top-level debug/ directory (debug artefacts live under target/debug/), so this entry is both redundant and risks silently hiding any debug/ directory that might appear elsewhere in the repo.
  • target (line 182): Without a leading /, this matches every target/ directory in the entire tree (e.g. src/target/, contrib/target/, etc.). Standard Rust .gitignore templates use the rooted /target form.
  • gen (line 200): Bare name with no leading / and no glob qualifier – would silently hide any file or directory named gen anywhere in the repository.
🔧 Suggested tightening
-debug
-target
+/target

...

-gen
+rust/gen
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore around lines 179 - 200, Remove the unanchored, overly-broad
entries: delete the bare "debug" entry, replace the bare "target" with a rooted
"/target" (or explicitly ignore "/target/debug" if you only mean build
artifacts), and replace the bare "gen" with a rooted form like "/gen" or "/gen/"
so the ignores only apply to top-level build/generated dirs; update the
.gitignore entries referencing "debug", "target", and "gen" accordingly.

Loading
Loading