From d408ec72720e8b719d989ad288d0878fc25bdf6c Mon Sep 17 00:00:00 2001 From: MeexReay Date: Sun, 22 Jun 2025 21:04:57 +0300 Subject: [PATCH] build: add cross-compiling stuff --- Cargo.toml | 3 +++ misc/build.sh | 37 +++++++++++++++++++++++++++++++++++++ misc/user-install.sh | 9 +++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 misc/build.sh diff --git a/Cargo.toml b/Cargo.toml index 98f5d3a..e475e5b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,3 +31,6 @@ gtk = ["dep:gtk4"] libnotify = ["dep:libnotify", "dep:gdk-pixbuf"] notify-rust = ["dep:notify-rust"] winapi = ["dep:winapi", "dep:winresource"] + +[workspace.metadata.cross.target.x86_64-pc-windows-gnu] +image = "mglolenstine/gtk4-cross:rust-gtk-4.8" diff --git a/misc/build.sh b/misc/build.sh new file mode 100644 index 0000000..0d11553 --- /dev/null +++ b/misc/build.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +echo "Run this script only from repository root!" +echo "This script depends on:" +echo " - fact that you are on linux x86_64!" +echo " - wine. install it with your distro's package manager" +echo " - cross crate. to install it, run this: cargo install cross --git https://github.com/cross-rs/cross" +echo " - docker, so you should run something like this on your distro: sudo systemctl start docker" +read -p "Press enter if you really want to do rm -rf build/" + +rm -rf build +mkdir build + +build_linux() { + mkdir build/linux-x86_64 + mkdir build/linux-x86_64/misc + cargo build -r + cp target/release/bRAC build/linux-x86_64/misc/bRAC-gnotif + cp misc/user-install.sh build/linux-x86_64 + cp misc/bRAC.png build/linux-x86_64/misc + cp misc/create-desktop.sh build/linux-x86_64/misc + cargo build -r -F libnotify + cp target/release/bRAC build/linux-x86_64 +} + +build_windows() { + curl https://www.mamachine.org/mslink/mslink_v1.3.sh -o misc/mslink.sh + chmod +x misc/mslink.sh + curl https://github.com/wingtk/gvsbuild/releases/download/2025.5.0/GTK4_Gvsbuild_2025.5.0_x64.zip -o build/gvsbuild.zip + unzip build/gvsbuild.zip "bin/*" -d build/windows-x86_64 + cross build --target x86_64-pc-windows-gnu -r + cp target/release/bRAC.exe build/windows-x86_64/bin + ./misc/mslink.sh -l bin\\bRAC.exe -o build/windows-x86_64/bRAC.lnk +} + +build_linux +build_windows \ No newline at end of file diff --git a/misc/user-install.sh b/misc/user-install.sh index fd320c4..47b9869 100755 --- a/misc/user-install.sh +++ b/misc/user-install.sh @@ -1,7 +1,12 @@ #!/bin/bash -cp bRAC ~/.local/bin/bRAC +mkdir -p ~/.local +mkdir -p ~/.local/bin +mkdir -p ~/.local/share +mkdir -p ~/.local/share/bRAC + +cp misc/bRAC-gnotif ~/.local/bin/bRAC chmod +x ~/.local/bin/bRAC -mkdir ~/.local/share/bRAC -p + cp misc/bRAC.png ~/.local/share/bRAC/icon.png ./misc/create-desktop.sh > ~/.local/share/applications/ru.themixray.bRAC.desktop