Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
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
10 changes: 10 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,13 @@ rustflags = ["-C", "target-feature=-crt-static", "-C", "target-cpu=x86-64"]

[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "target-feature=-crt-static", "-C", "target-cpu=x86-64"]

[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc-posix"
ar = "x86_64-w64-mingw32-ar"

[env]
CC_x86_64_pc_windows_gnu = "x86_64-w64-mingw32-gcc-posix"
CXX_x86_64_pc_windows_gnu = "x86_64-w64-mingw32-g++-posix"
AR_x86_64_pc_windows_gnu = "x86_64-w64-mingw32-ar"
Comment thread
lklimek marked this conversation as resolved.
CFLAGS_x86_64_pc_windows_gnu = "-O2"
93 changes: 45 additions & 48 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ name: Release Dash Evo Tool
on:
push:
tags:
- 'v*'
- 'v*-dev.*'
- "v*"
- "v*-dev.*"
release:
types:
- published
workflow_dispatch:
inputs:
tag:
description: "Version (i.e. v0.1.0)"
required: true
required: false
Comment thread
lklimek marked this conversation as resolved.

permissions:
id-token: write
Expand Down Expand Up @@ -121,10 +121,6 @@ jobs:
run: |
cargo build --release --target ${{ matrix.target }}
mv target/${{ matrix.target }}/release/dash-evo-tool${{ matrix.ext }} dash-evo-tool/dash-evo-tool${{ matrix.ext }}
env:
CC_x86_64_pc_windows_gnu: x86_64-w64-mingw32-gcc
AR_x86_64_pc_windows_gnu: x86_64-w64-mingw32-ar
CFLAGS_x86_64_pc_windows_gnu: "-O2"

- name: Package release
run: |
Expand All @@ -133,7 +129,7 @@ jobs:
- name: Attest
uses: actions/attest-build-provenance@v1
with:
subject-path: 'dash-evo-tool-${{ matrix.platform }}.zip'
subject-path: "dash-evo-tool-${{ matrix.platform }}.zip"

- name: Upload build artifact
uses: actions/upload-artifact@v4
Expand All @@ -158,20 +154,20 @@ jobs:
run: |
echo "Disk usage before initial cleanup:"
df -h

# Clean up homebrew cache
brew cleanup --prune=all || true

# Remove Xcode caches
sudo rm -rf ~/Library/Developer/CoreSimulator/Caches/dyld 2>/dev/null || true
sudo rm -rf ~/Library/Developer/Xcode/DerivedData 2>/dev/null || true
sudo rm -rf ~/Library/Caches/com.apple.dt.Xcode 2>/dev/null || true

# Clean system caches
sudo rm -rf /Library/Caches/* 2>/dev/null || true
sudo rm -rf /System/Library/Caches/* 2>/dev/null || true
sudo rm -rf /private/var/folders/* 2>/dev/null || true

echo "Disk usage after initial cleanup:"
df -h

Expand All @@ -194,7 +190,7 @@ jobs:
rm -rf target/aarch64-apple-darwin/release/.fingerprint
rm -rf target/aarch64-apple-darwin/debug
rm -rf target/debug

# Remove the actual binary from target since we copied it
rm -f target/aarch64-apple-darwin/release/dash-evo-tool

Expand Down Expand Up @@ -300,37 +296,37 @@ jobs:
echo "Disk usage before cleanup:"
df -h
du -sh ~/* 2>/dev/null | sort -rh | head -20

# Remove the ENTIRE target directory since we already copied the binary
rm -rf target

# Remove the entire Cargo directory
rm -rf ~/.cargo

# Clean up homebrew completely
brew cleanup --prune=all
rm -rf $(brew --cache)

# Remove any unnecessary Xcode simulators and caches
sudo rm -rf ~/Library/Developer/CoreSimulator 2>/dev/null || true
sudo rm -rf ~/Library/Developer/Xcode 2>/dev/null || true
sudo rm -rf ~/Library/Caches 2>/dev/null || true

# Remove temporary icon files after creating the app bundle
rm -rf AppIcon.iconset 2>/dev/null || true

# Clean system caches more aggressively
sudo rm -rf /Library/Caches/* 2>/dev/null || true
sudo rm -rf /System/Library/Caches/* 2>/dev/null || true
sudo rm -rf /private/var/folders/* 2>/dev/null || true
sudo rm -rf /Users/runner/Library/Caches/* 2>/dev/null || true

# Remove any iOS simulators and SDKs we don't need
sudo rm -rf /Library/Developer/CoreSimulator 2>/dev/null || true
sudo rm -rf /Applications/Xcode*.app/Contents/Developer/Platforms/iPhoneOS.platform 2>/dev/null || true
sudo rm -rf /Applications/Xcode*.app/Contents/Developer/Platforms/AppleTVOS.platform 2>/dev/null || true
sudo rm -rf /Applications/Xcode*.app/Contents/Developer/Platforms/WatchOS.platform 2>/dev/null || true

echo "Disk usage after cleanup:"
df -h
du -sh ~/* 2>/dev/null | sort -rh | head -20
Expand All @@ -340,14 +336,14 @@ jobs:
# Get app size for sparse image
APP_SIZE=$(du -sm "build/Dash Evo Tool.app" | cut -f1)
DMG_SIZE=$((APP_SIZE + 50)) # Add 50MB padding

# Create a sparse image instead of using srcfolder
# Sparse images only use disk space as needed
hdiutil create -size ${DMG_SIZE}m -type SPARSE -fs HFS+ -volname "Dash Evo Tool" temp.sparseimage

# Mount the sparse image
hdiutil mount temp.sparseimage -mountpoint /Volumes/"Dash Evo Tool"

# Copy app to mounted volume
cp -r "build/Dash Evo Tool.app" /Volumes/"Dash Evo Tool"/
ln -s /Applications /Volumes/"Dash Evo Tool"/Applications
Expand All @@ -356,13 +352,13 @@ jobs:
rm -rf /Volumes/"Dash Evo Tool"/.fseventsd
rm -rf /Volumes/"Dash Evo Tool"/.Spotlight-V100
rm -f /Volumes/"Dash Evo Tool"/.DS_Store

# Unmount
hdiutil detach /Volumes/"Dash Evo Tool"

# Convert sparse image to compressed DMG
hdiutil convert temp.sparseimage -format UDZO -o dash-evo-tool-macos-arm64.dmg

# Clean up sparse image
rm -f temp.sparseimage

Expand Down Expand Up @@ -400,7 +396,7 @@ jobs:
- name: Attest
uses: actions/attest-build-provenance@v1
with:
subject-path: 'dash-evo-tool-macos-arm64.dmg'
subject-path: "dash-evo-tool-macos-arm64.dmg"

- name: Upload build artifact
uses: actions/upload-artifact@v4
Expand All @@ -425,20 +421,20 @@ jobs:
run: |
echo "Disk usage before initial cleanup:"
df -h

# Clean up homebrew cache
brew cleanup --prune=all || true

# Remove Xcode caches
sudo rm -rf ~/Library/Developer/CoreSimulator/Caches/dyld 2>/dev/null || true
sudo rm -rf ~/Library/Developer/Xcode/DerivedData 2>/dev/null || true
sudo rm -rf ~/Library/Caches/com.apple.dt.Xcode 2>/dev/null || true

# Clean system caches
sudo rm -rf /Library/Caches/* 2>/dev/null || true
sudo rm -rf /System/Library/Caches/* 2>/dev/null || true
sudo rm -rf /private/var/folders/* 2>/dev/null || true

echo "Disk usage after initial cleanup:"
df -h

Expand All @@ -461,7 +457,7 @@ jobs:
rm -rf target/x86_64-apple-darwin/release/.fingerprint
rm -rf target/x86_64-apple-darwin/debug
rm -rf target/debug

# Remove the actual binary from target since we copied it
rm -f target/x86_64-apple-darwin/release/dash-evo-tool

Expand Down Expand Up @@ -567,37 +563,37 @@ jobs:
echo "Disk usage before cleanup:"
df -h
du -sh ~/* 2>/dev/null | sort -rh | head -20

# Remove the ENTIRE target directory since we already copied the binary
rm -rf target

# Remove the entire Cargo directory
rm -rf ~/.cargo

# Clean up homebrew completely
brew cleanup --prune=all
rm -rf $(brew --cache)

# Remove any unnecessary Xcode simulators and caches
sudo rm -rf ~/Library/Developer/CoreSimulator 2>/dev/null || true
sudo rm -rf ~/Library/Developer/Xcode 2>/dev/null || true
sudo rm -rf ~/Library/Caches 2>/dev/null || true

# Remove temporary icon files after creating the app bundle
rm -rf AppIcon.iconset 2>/dev/null || true

# Clean system caches more aggressively
sudo rm -rf /Library/Caches/* 2>/dev/null || true
sudo rm -rf /System/Library/Caches/* 2>/dev/null || true
sudo rm -rf /private/var/folders/* 2>/dev/null || true
sudo rm -rf /Users/runner/Library/Caches/* 2>/dev/null || true

# Remove any iOS simulators and SDKs we don't need
sudo rm -rf /Library/Developer/CoreSimulator 2>/dev/null || true
sudo rm -rf /Applications/Xcode*.app/Contents/Developer/Platforms/iPhoneOS.platform 2>/dev/null || true
sudo rm -rf /Applications/Xcode*.app/Contents/Developer/Platforms/AppleTVOS.platform 2>/dev/null || true
sudo rm -rf /Applications/Xcode*.app/Contents/Developer/Platforms/WatchOS.platform 2>/dev/null || true

echo "Disk usage after cleanup:"
df -h
du -sh ~/* 2>/dev/null | sort -rh | head -20
Expand All @@ -607,24 +603,24 @@ jobs:
# Get app size for sparse image
APP_SIZE=$(du -sm "build/Dash Evo Tool.app" | cut -f1)
DMG_SIZE=$((APP_SIZE + 50)) # Add 50MB padding

# Create a sparse image instead of using srcfolder
# Sparse images only use disk space as needed
hdiutil create -size ${DMG_SIZE}m -type SPARSE -fs HFS+ -volname "Dash Evo Tool" temp.sparseimage

# Mount the sparse image
hdiutil mount temp.sparseimage -mountpoint /Volumes/"Dash Evo Tool"

# Copy app to mounted volume
cp -r "build/Dash Evo Tool.app" /Volumes/"Dash Evo Tool"/
ln -s /Applications /Volumes/"Dash Evo Tool"/Applications

# Unmount
hdiutil detach /Volumes/"Dash Evo Tool"

# Convert sparse image to compressed DMG
hdiutil convert temp.sparseimage -format UDZO -o dash-evo-tool-macos-x86_64.dmg

# Clean up sparse image
rm -f temp.sparseimage

Expand Down Expand Up @@ -662,7 +658,7 @@ jobs:
- name: Attest
uses: actions/attest-build-provenance@v1
with:
subject-path: 'dash-evo-tool-macos-x86_64.dmg'
subject-path: "dash-evo-tool-macos-x86_64.dmg"

- name: Upload build artifact
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -700,6 +696,7 @@ jobs:
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ github.event.inputs.tag != '' }}
with:
tag_name: ${{ github.event.inputs.tag }}
files: |
Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ The tool supports both Mainnet and Testnet networks. Check out the [documentatio
- [Prerequisites](#prerequisites)
- [Rust Installation](#rust-installation)
- [Dependencies](#dependencies)
- [Windows Runtime Dependencies](#windows-runtime-dependencies)
- [Dash Core Wallet Setup](#dash-core-wallet-setup)
- [Installation](#installation)
- [Getting Started](#getting-started)
Expand Down Expand Up @@ -67,6 +68,14 @@ system, unzip, and install:
sudo unzip protoc-*-linux-x86_64.zip -d /usr/local
```

### Windows Runtime Dependencies

If you use the prebuilt Windows binary, make sure the target machine has:

- Microsoft Visual C++ Redistributable (vc_redist x64): https://aka.ms/vc14/vc_redist.x64.exe
- OpenGL 2.0 support. If OpenGL 2.0 is not available (or the app fails to start with OpenGL-related errors), install the OpenCL, OpenGL, and Vulkan Compatibility Pack:
https://apps.microsoft.com/detail/9nqpsl29bfff?ocid=webpdpshare
Comment thread
coderabbitai[bot] marked this conversation as resolved.

### Dash Core Wallet Setup

- **Dash Core Wallet**: Download and install from [dash.org/wallets](https://www.dash.org/wallets/).
Expand Down
Loading