1
0
Fork 0
mirror of synced 2024-04-27 17:22:13 +12:00
czkawka/instructions/Compilation.md
2021-12-05 21:01:16 +01:00

2.9 KiB

Compiling Czkawka from sources

Requirements

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

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

Debian / Ubuntu

sudo apt install -y curl  # 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-3-dev libasound2-dev # Latest is optional

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 alsa-lib-devel # Latest is optional

macOS

You need to install Rust via Homebrew and GTK Libraries(ffmpeg is optional dependency)

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

Windows

Will be available in the future

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

Compilation

Czkawka can be installed with Debug or Release build.
With Debug build additional checks e.g. for variables overflow are available but depends of the usage it works very slow so should be using only to develop this app.
Compilation with --release flag will optimize binaries, so they can be used with good performance(official binaries are build 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

Additional features

For now, finding broken audio files is temporary disabled by default, because it 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"