1
0
Fork 0
mirror of synced 2024-04-26 16:52:19 +12:00
czkawka/instructions/Compilation.md
2022-05-22 10:59:09 +02:00

3.2 KiB

Compiling Czkawka from sources

Requirements

If you only want the terminal version without a GUI, just skip all the packages with gtk in their names.

FFmpeg is not included here because it is not needed to build - it is dynamically loaded.

Program Min What for
Rust 1.60 Czkawka, aims to support the latest available version of Rust on Ubuntu 20.04
GTK 3.24 Only for the GTK backend

Debian / Ubuntu

sudo apt install -y curl git build-essential # Needed by Rust update tool
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust
sudo apt install -y libgtk-4-dev

Fedora / CentOS / Rocky Linux

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust
sudo yum install gtk3-devel glib2-devel

macOS

You need to install Rust via Homebrew and GTK Libraries

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install rustup
rustup-init
brew install gtk+3 adwaita-icon-theme librsvg

Windows

Will be available in the future

For Linux-to-Windows cross-building instruction look at the CI.

Docker

docker build ./misc/docker/ --tag cargo-gtk

Compilation

Czkawka can be installed with Debug or Release build.
With Debug build additional checks, e.g., variables overflow, are available, but depending on the usage it works very slow, so it should be used only for development purposes.
Compilation with --release flag will optimize binaries, so they can be used with good performance (official binaries are built with this flag)

  • Download the source
git clone https://github.com/qarmin/czkawka.git
cd czkawka
  • Compile and run GTK GUI
cargo run --release --bin czkawka_gui
  • Compile and run CLI (by default this will print help with examples)
cargo run --release --bin czkawka_cli

Compilation with Docker

docker run -t --rm --volume $PWD:/app --workdir /app cargo-gtk cargo build --release --bin czkawka_gui

Run the binary:

target/release/czkawka_gui

Additional features

For now, finding broken audio files is temporarily disabled by default, because app crashes when audio libraries are not found on the computer.
I'm waiting for ability to disable audio playback feature, so after that I will be able to re-enable by default this feature (https://github.com/RustAudio/rodio/issues/349)

To enable checking for broken audio files, just add --all-features

cargo run --all-features --bin czkawka_cli -- broken  -d /home/rafal/ -f "results.txt"