cmake_minimum_required(VERSION 3.21)
project(whittle LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt6 REQUIRED COMPONENTS Widgets Svg)
add_executable(whittle
src/core/Comparator.cpp
src/core/ConfigStore.cpp
src/core/ConfigStore.h
src/core/MergeController.cpp
src/core/MergeController.h
src/core/ScanController.cpp
src/core/ScanController.h
src/core/Scanner.cpp
src/main.cpp
src/ui/DiffTableModel.cpp
src/ui/SettingsDialog.cpp
src/ui/SettingsDialog.h
src/ui/PanelTableView.cpp
src/ui/PanelTableView.h
src/ui/Palette.h
src/ui/FolderTreeModel.cpp
src/ui/FolderTreeModel.h
src/ui/MainWindow.cpp
src/ui/MainWindow.h
src/ui/StatusStrip.cpp
src/ui/StatusStrip.h
src/ui/SchemeDialogs.cpp
src/ui/SchemeDialogs.h
res/icons.qrc
)
target_include_directories(whittle PRIVATE src)
target_link_libraries(whittle PRIVATE Qt6::Widgets Qt6::Svg)
# statx() needs glibc >= 2.28 and Linux kernel >= 4.11 (fine on modern Ubuntu).
target_compile_definitions(whittle PRIVATE _GNU_SOURCE)