pull/1082/head
Rafał Mikrut 8 months ago
parent 4a1f6227db
commit 8a96b13bbf

97
Cargo.lock generated

@ -525,6 +525,7 @@ version = "6.0.0"
dependencies = [
"clap",
"czkawka_core",
"fun_time",
"handsome_logger",
"image_hasher",
"log",
@ -544,6 +545,7 @@ dependencies = [
"crossbeam-channel",
"directories-next",
"ffmpeg_cmdline_utils",
"fun_time",
"futures",
"hamming",
"handsome_logger",
@ -585,6 +587,7 @@ dependencies = [
"czkawka_core",
"directories-next",
"fs_extra",
"fun_time",
"futures",
"gdk4",
"glib",
@ -604,6 +607,41 @@ dependencies = [
"winapi",
]
[[package]]
name = "darling"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
dependencies = [
"darling_core",
"darling_macro",
]
[[package]]
name = "darling_core"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim",
"syn 1.0.109",
]
[[package]]
name = "darling_macro"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
dependencies = [
"darling_core",
"quote",
"syn 1.0.109",
]
[[package]]
name = "dashmap"
version = "5.5.3"
@ -735,25 +773,14 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
version = "0.3.4"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480"
checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
dependencies = [
"errno-dragonfly",
"libc",
"windows-sys",
]
[[package]]
name = "errno-dragonfly"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
dependencies = [
"cc",
"libc",
]
[[package]]
name = "exr"
version = "1.71.0"
@ -934,6 +961,28 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
[[package]]
name = "fun_time"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9af29f347b6ae4821c45565e1238231caf5b57a951bd011222752ba0f5a47eae"
dependencies = [
"fun_time_derive",
"log",
]
[[package]]
name = "fun_time_derive"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e992455767376a16164ee4cc69bd799530c1c41c701bdd8c8a541ec6095c078e"
dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "futures"
version = "0.3.28"
@ -1500,6 +1549,12 @@ dependencies = [
"cc",
]
[[package]]
name = "ident_case"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
version = "0.4.0"
@ -1704,9 +1759,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]]
name = "libc"
version = "0.2.148"
version = "0.2.149"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
[[package]]
name = "libheif-rs"
@ -1742,9 +1797,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
[[package]]
name = "linux-raw-sys"
version = "0.4.8"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db"
checksum = "45786cec4d5e54a224b15cb9f06751883103a27c19c93eda09b0b4f5f08fefac"
[[package]]
name = "locale_config"
@ -1942,9 +1997,9 @@ dependencies = [
[[package]]
name = "num-traits"
version = "0.2.16"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
dependencies = [
"autocfg",
]
@ -3228,9 +3283,9 @@ dependencies = [
[[package]]
name = "trash"
version = "3.0.6"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af3663fb8f476d674b9c61d1d2796acec725bef6bec4b41402a904252a25971e"
checksum = "f7b23f2b0cf93f537bbe90cbb59ea9176cc8ce9b010a36dcd5b726facd82825e"
dependencies = [
"chrono",
"libc",

@ -17,6 +17,7 @@ image_hasher = "1.2"
log = "0.4.20"
handsome_logger = "0.8"
fun_time = { version = "0.3.1", features = ["log"] }
czkawka_core = { path = "../czkawka_core", version = "6.0.0", features = [] }
[features]

@ -81,6 +81,7 @@ state = "0.6"
log = "0.4.20"
handsome_logger = "0.8"
fun_time = { version = "0.3.1", features = ["log"] }
[features]
default = []

@ -51,6 +51,7 @@ once_cell = "1.18"
log = "0.4.20"
handsome_logger = "0.8"
fun_time = { version = "0.3.1", features = ["log"] }
czkawka_core = { path = "../czkawka_core", version = "6.0.0", features = [] }
gtk4 = { version = "0.7", default-features = false, features = ["v4_6"] }

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name about_dialog.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkAboutDialog" id="about_dialog">
<property name="comments" translatable="yes">2020 - 2023 Rafał Mikrut(qarmin)

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name compare_images.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkDialog" id="window_compare">
<child>
<object class="GtkBox">

File diff suppressed because it is too large Load Diff

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name main_window.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="page-increment">10</property>
<property name="step-increment">1</property>

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name popover_right_click.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkPopover" id="popover_right_click">
<property name="child">
<object class="GtkBox">

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name popover_select.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkPopover" id="popover_select">
<property name="child">
<object class="GtkBox">

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name popover_sort.ui -->
<requires lib="gtk" version="4.6"/>

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name progress.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkDialog" id="window_progress">
<child>
<object class="GtkBox">

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.10.3 -->
<!-- Created with Cambalache 0.16.0 -->
<interface>
<!-- interface-name settings.ui -->
<requires lib="gtk" version="4.0"/>
<requires lib="gtk" version="4.6"/>
<object class="GtkDialog" id="window_settings">
<property name="modal">1</property>
<property name="title" translatable="yes">Czkawka Options</property>

@ -16,6 +16,7 @@ New versions of GTK fixes some bugs, so e.g. middle button selection will work o
| GTK | 4.6 | Only for the `GTK` backend |
#### Debian / Ubuntu
```shell
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
@ -23,13 +24,17 @@ sudo apt install -y libgtk-4-dev
```
#### Fedora / CentOS / Rocky Linux
```shell
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)
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)
```shell
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install rustup
@ -41,7 +46,8 @@ brew install gtk4 adwaita-icon-theme librsvg libheif webp-pixbuf-loader
Compiling Czkawka on Windows is possible, but due using GTK is very hard.
In CI we use cross compilation which simplify a lot of things, so for now there is no instruction how to compile native binaries on Windows.
In CI we use cross compilation which simplify a lot of things, so for now there is no instruction how to compile native
binaries on Windows.
### Docker
@ -52,21 +58,26 @@ 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)
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
```
@ -84,9 +95,14 @@ 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"
```
**Be aware, that heif support is not available on Windows, so you can't compile it with this feature, because
mingw-w64-x86_64-libheif is not available in fedora repos, which are used for cross compilation.**

@ -70,7 +70,7 @@ Sadly this doesn't work for all users, so feel free to update this part of docum
### Windows
By default, all needed libraries are bundled with the app, inside `windows_czkawka_gui.zip`, but if you compile the app or just move `czkawka_gui.exe`, then you will need to install the `GTK 4`
By default, all needed libraries are bundled with the app except libheif library which allows to scan/use heif files, inside `windows_czkawka_gui.zip`, but if you compile the app or just move `czkawka_gui.exe`, then you will need to install the `GTK 4`
runtime from [**here**](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases).
FFmpeg to be able to use Similar Videos, you can download and install from this [**link**](https://ffmpeg.org/).

Loading…
Cancel
Save