[ENHANCEMENT] .github/workflows/build*, cmake/toolchains/*, cmake/cpack*, cmake/directories.cmake, cmake/files.cmake, scripts/install_dependencies.sh, .gitignore, CMakeLists.txt, CMakePresets.json, CONTRIBUTING.md, README.md: Add support for generating DEB, RPM, NSIS, ZIP and source packages for easier installation and distribution.
[ENHANCEMENT] cmake/install.cmake: Add support for component-based installation in CMake.
[ENHANCEMENT] cmake/files.cmake, cmake/install.cmake: Install the license file.
[ENHANCEMENT] .github/workflows/*, CMakePresets.json, CONTRIBUTING.md, README.md: Erase the release tag from the CMake presets.
[ENHANCEMENT] cmake/toolchains/*, cmake/magicxxConfig.cmake.in, cmake/options.cmake, documentation/CMakeLists.txt: Format CMake files.
[ENHANCEMENT] cmake/directories.cmake, cmake/files.cmake, cmake/generate_default_database_files.cmake, CMakeLists.txt: Use the dir naming convention instead of path in the CMake files.
[v7.0.0] - 24-04-2025
[ENHANCEMENT] .github/workflows/*, cmake/install.cmake, cmake/options.cmake, cmake/targets.cmake, examples/CMakeLists.txt, scripts/workflows.sh, tests/CMakeLists.txt, CMakeLists.txt, CMakePresets.json, CONTRIBUTING.md, README.md: Update build system to support simultaneous compilation of shared and static libraries.
[ENHANCEMENT] .scripts/launch_container.py, CONTRIBUTING.md: Merge launch_container scripts into one Python script.
[BUGFIX] .github/workflows/*, cmake/dependencies.cmake, CMakeLists.txt: Refactor CMake dependencies and update database generation commands for the Windows build.
[BUGFIX] cmake/dependencies.cmake, inc/magic.hpp, tests/*, .gitignore, CMakeLists.txt: Generate default database files & Refactor default database file handling to pass the tests.
[ENHANCEMENT] inc/magic.hpp, src/magic.cpp, CMakeLists.txt: Adapt default database file path based on the target operating system.
[BUGFIX] Containerfile: Fix script execution path in Containerfile.
[BUGFIX] scripts/workflows.sh, CMakeLists.txt, CMakePresets.json: Export compile commands to a location easily accessible by Clangd.
[BUGFIX] CONTRIBUTING.md: Fix path syntax for launching the container in Windows.
[ENHANCEMENT] external/file, external/googletest, tests/magic_version_test.cpp: Update file version to v5.46, googletest version to v1.16.0.
[ENHANCEMENT] .github/workflows/*, cmake/toolchains/windows-x86_64-mingw64.cmake, cmake/dependencies.cmake, scripts/install_dependencies.sh, src/magic.cpp, CMakeLists.txt, CMakePresets.json, README.md: Add support for Windows build using MinGW64.
[ENHANCEMENT] external/libgnurx, .gitsubmodules, README.md: Add libgnurx submodule for the x86_64-w64-mingw32 build.
[ENHANCEMENT] external/file, external/googletest, .gitsubmodules, CMakeLists.txt, CONTRIBUTING.md: Refactor submodule paths to use 'external/' directory for better organization.
[v5.7.1] - 23-03-2025
[BUGFIX] cmake/dependencies.cmake, .scripts/initialize.sh, CMakePresets.json, CONTRIBUTING.md, README.md: Move the project initialization process from CMake workflow to a bash script to fix CMake initialization workflow error.
[v5.7.0] - 23-03-2025
[BUGFIX] .scripts/commit_release.sh: Remove unused DOXYFILE variable from commit_release script to fix the runtime error.
[ENHANCEMENT] scripts/launch_container.ps1, scripts/launch_container.sh: Enhance container launch scripts to support image updates and improve usage instructions.
[DOCUMENTATION] CONTRIBUTING.md, README.md: Update contributing guidelines and README to include project initialization step.
[BUGFIX] .github/workflows/build_and_test_on_linux_using_clang.yml, .github/workflows/build_and_test_on_linux_using_gcc.yml: Fix CI workflows.
[BUGFIX] cmake/dependencies.cmake, scripts/install_dependencies.sh, CMakePresets.json, Containerfile, CONTRIBUTING.md, README.md: Bring back the install_dependencies.sh script.
[BUGFIX] Containerfile: Add missing development tools installation to Containerfile.
[ENHANCEMENT] cmake/dependencies.cmake, CMakePresets.json, Containerfile, CONTRIBUTING.md, README.md: Embed the install_dependencies.sh script to the CMake workflows && Add new CMake workflow presets install-dependencies, initialize-and-update-git-submodules and initialize.
[ENHANCEMENT] cmake/dependencies.cmake,CMakeLists.txt: Embed the magic_header target into the configure_file target..
[ENHANCEMENT] cmake/format_source_code.cmake, scripts/commit_release.sh, CMakeLists.txt, CMakePresets.json, CONTRIBUTING.md: Replace format script with CMake workflow for source code formatting.
[ENHANCEMENT] cmake/dependencies.cmake, CMakeLists.txt: Refactor the CMake configuration by adding custom targets for the magicxx dependencies to speed up the configuration process.
[ENHANCEMENT] CMakeLists.txt, CMakePresets.json: Rename BUILD_MAGICXX_DOCUMENTATION_ONLY build option to BUILD_MAGICXX_DOCUMENTATION.
[ENHANCEMENT] CMakeLists.txt, CMakePresets.json: Rename BUILD_AS_STATIC build option to BUILD_MAGICXX_AS_STATIC.
[ENHANCEMENT] CMakeLists.txt, CMakePresets.json, CONTRIBUTING.md, doc/CMakeLists.txt, scripts/commit_release.sh, scripts/generate_documentation.sh: Add support for building documentation from CMake and remove generate_documentation.sh script.
[ENHANCEMENT] inc/utility.hpp: Add concepts for range containers and string converters to improve maintainability.
[ENHANCEMENT] src/magic.cpp: Explicitly capture the required scope variables & Remove the redundant return type.
[ENHANCEMENT] inc/magic_exception.hpp: Refactor magic_exception constructor to inherit from std::runtime_error.
[ENHANCEMENT] inc/magic_exception.hpp, src/magic.cpp: Use std::format instead of concatenating pieces manually.
[ENHANCEMENT] .clang-format: Update .clang-format to adjust line breaking penalties and compound requirement settings.
[ENHANCEMENT] .clang-format: Add SPDX license information and clang-format version to .clang-format.
[v5.4.1] - 17-02-2025
[BUGFIX] scripts/launch_container.ps1, scripts/launch_container.sh: Remove container name specification in launch scripts to fix the container name is already used error.
[v5.4.0] - 17-02-2025
[ENHANCEMENT] CONTRIBUTING.md, Containerfile, scripts/launch_container.ps1, scripts/launch_container.sh: Add container development environment setup and scripts.
[ENHANCEMENT] scripts/*: Improve error handling in scripts.
[v5.3.2] - 16-02-2025
[BUGFIX] CMakeLists.txt: Fix compilation errors.
[v5.3.1] - 15-02-2025
[BUGFIX] file: Set the version of File to 5.45 to fix compilation errors.
[v5.3.0] - 15-02-2025
[ENHANCEMENT] CMakeLists.txt, scripts/build.sh: Add build as static option.
[ENHANCEMENT] CMakeLists.txt, scripts/build.sh: Remove rebuild the libmagic option.