|
|
3 недель назад | |
|---|---|---|
| .. | ||
| assets | 10 месяцев назад | |
| data | 3 недель назад | |
| gui | 4 недель назад | |
| java | 1 месяц назад | |
| pydrk | 1 месяц назад | |
| release | 3 недель назад | |
| script | 1 месяц назад | |
| src | 3 недель назад | |
| .gitignore | 9 месяцев назад | |
| Cargo.lock | 3 недель назад | |
| Cargo.toml | 3 недель назад | |
| Dockerfile | 3 недель назад | |
| Dockerfile.windows | 8 месяцев назад | |
| Makefile | 3 недель назад | |
| README.md | 3 недель назад | |
| app.sql | 3 недель назад | |
| build.rs | 3 недель назад | |
| quad.toml | 8 месяцев назад | |
| rust-toolchain.toml | 1 год назад | |
Install rustup and cargo install cargo-limit, then run:
make
Built by cross-compiling on Linux using cargo-xwin. Also install rustup.
Distro packages needed (example uses Void Linux):
# xbps-install -S clang lld ninja nasm wget \
cross-x86_64-w64-mingw32 cross-x86_64-w64-mingw32-crt
The mingw packages provide windres, which is used to embed the app icon
and the Windows version resource turso needs (rc.exe does not exist on
Linux). On Arch the equivalents are clang lld ninja nasm mingw-w64-gcc,
on Debian clang lld ninja-build nasm gcc-mingw-w64-x86-64, and on Fedora
clang lld ninja-build nasm mingw64-gcc.
Then set up the Rust side:
$ rustup target add x86_64-pc-windows-msvc
$ rustup component add llvm-tools
$ cargo install --locked cargo-xwin
And build:
$ make win64-msvc
The first run downloads the Windows SDK and MSVC CRT (a couple of GB) and
caches them. Using cargo-xwin implies accepting Microsoft's SDK license.
The resulting darkfi-app.exe is placed in bin/app/, and can be tested
on Linux using wine darkfi-app.exe.
If you get the error "VCRUNTIME140.dll was not found", then install Microsoft Visual C++ Redistributable.
Building for MacOS is done on a Mac. The macos target builds a
universal (aarch64 + x86_64) binary using cargo-zigbuild.
Also install rustup, then:
$ rustup target add aarch64-apple-darwin x86_64-apple-darwin
$ cargo install cargo-zigbuild
$ make macos
The resulting darkfi-app.macos is placed in bin/app/. It is ad-hoc
signed and runs as-is.
Make sure you have podman installed. Then run:
# You only need to build the container once
podman build -t apk .
make android
To debug any issues, you can enter an interactive terminal using make podman-cli.
To delete everything, run podman system reset.
Users who prefer to build locally can follow the commands in the Dockerfile.
Note that the build.rs hardcodes the SDK/NDK paths so either you follow it
exactly (recommended) or modify build.rs.
$ adb shell pm list users
UserInfo{10:Work:30}
$ adb install --user 10 darkfi-app.apk
Useful for reading the logs without having to be plugged in.
First get your local IP addr using adb shell ip -f inet a show wlan0.
Make sure "Wireless debugging" is enabled in Developer options.
Then run:
adb tcpip 5555
adb connect IPADDR
Copying the APK takes a long time over wifi so best to install APK via USB, then use this just for debugging the app.
In the Makefile, make sure to put the USB device for ADB_DEVICES
so the ADB commands work over USB.
This is just for devs. Users ignore this.
"hb_ft_font_create_referenced"
nm libharfbuzz_rs-5d6b743170eb0207.rlib | grep hb_ | less
cargo tree --target aarch64-linux-android --invert openssl-sys
apktool d target/android-artifacts/release/apk/darkwallet.apk -o dw-apk