Batch image format conversion tool.
imogrify encourages community involvement and contributions, check CONTRIBUTING.md for details. Contributors can be found in the contributors list.
imogrify is licensed under the Mozilla Public License, v. 2.0. See the LICENSE file and the MPL 2.0 FAQ for details.
Building imogrify requires CMake 3.25 or newer and a compiler with C++20 support. It supports the Windows and Linux operative systems.
CMAKE_COMPILE_WARNING_AS_ERROR: Compilers treat warnings as errors. Off by default.IMOGRIFY_BUILD_UNIT_TESTS: Builds unit tests. Off by default.IMOGRIFY_CLANG_FORMAT: Check code formatting using clang-format. Warnings will be treated as errors ifCMAKE_COMPILE_WARNING_AS_ERRORis enabled. Off by default.IMOGRIFY_CLANG_TIDY: Analyze the project using clang-tidy. Warnings will be treated as errors ifCMAKE_COMPILE_WARNING_AS_ERRORis enabled. Off by default.IMOGRIFY_CMAKE_VERBOSE: Show additional information during CMake configuration. Off by default.IMOGRIFY_SHOW_DEBUG_REPORTS: Display debug reports on release builds. Off by default.IMOGRIFY_USE_LIBCPUID: Provide runtime information using libcpuid. Off by default.IMOGRIFY_USE_LIBASSERT: Implement asserts using libassert. Off by default.
Dependencies are retrieved through the find_package CMake feature.
-
ConcurrentQueue: An industrial-strength lock-free queue for C++.
-
fmt: Modern formatting and printing library.
- tl-expected: Single header implementation of
std::expectedwith functional-style extensions.
These are only required if a CMake option is enabled.
-
Catch2: A modern, C++-native, test framework for unit-tests.
IMOGRIFY_BUILD_UNIT_TESTS. -
libcpuid: Provides CPU identification.
IMOGRIFY_USE_LIBCPUID. -
libassert: The most over-engineered C++ assertion library.
IMOGRIFY_USE_LIBASSERT.
These libraries are included in the imogrify repository. They reside in the thirdparty subfolder, and each one includes its separate, original license. These libraries are not modified from upstream unless explicitly mentioned.
- Enchantum: A modern header-only library for compile-time enum reflection.
imogrify has optional vcpkg support, disabled by default. imogrify uses custom ports for some of its dependencies, which can be found in the cmake/vcpkg/ports subfolder.
imogrify provides a set of CMake presets used during development.
Check the ACKNOWLEDGEMENTS.md file for details.