1
0
Fork 0
mirror of synced 2024-04-30 02:23:53 +12:00
czkawka/instructions/Compilation.md
Rafał Mikrut 44fb75ada5
Smaller fixes (#795)
* Improve a little documentation, add missing bad extension

* Allow to find the smallest files from CLo

* Show error when all directories are reference folders

* 2 more testing objects

* Add missing original preset
2022-07-31 08:45:19 +02:00

3.1 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.

Support for heif images is optional and require to install libheif library.

Program Min What for
Rust 1.60 Czkawka, aims to support the latest available version of Rust on Ubuntu 22.04
GTK 4.6 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 gtk4-devel glib2-devel

macOS

You need to install Rust via Homebrew, GTK Libraries and optionally heif library(to have support for heic files, which are quite popular on Mac)

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

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

Currently, the only additional dependence is heif image support.

To enable checking for heif images, just add --all-features or --features heif

cargo run --features heif --bin czkawka_cli -- image  -d /home/rafal/ -f "results.txt"