redai/CMakeLists.txt

78 lines
No EOL
2 KiB
CMake

# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
# SPDX-License-Identifier: CC0-1.0
cmake_minimum_required(VERSION 3.25)
project(Redai VERSION 0.1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(QT_MAJOR_VERSION 6)
set(QT_MIN_VERSION 6.5)
set(KF_MIN_VERSION 5.240)
find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(ECMFindQmlModule)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMSetupVersion)
include(ECMGenerateHeaders)
include(ECMPoQmTools)
include(KDEGitCommitHooks)
include(KDEClangFormat)
find_package(Qt6 ${QT_MIN_VERSION} NO_MODULE REQUIRED COMPONENTS
Core
Gui
Widgets
Concurrent)
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS CoreAddons XmlGui I18n)
find_package(QCoro6 REQUIRED COMPONENTS Core Network DBus)
qcoro_enable_coroutines()
add_executable(Redai)
target_sources(Redai PRIVATE
src/artconfigwindow.h
src/artconfigwindow.cpp
src/artconfigwindow.h
src/artdetailwindow.cpp
src/artdetailwindow.h
src/artmodel.cpp
src/artmodel.h
src/characterdetailwindow.cpp
src/characterdetailwindow.h
src/charactermodel.cpp
src/charactermodel.h
src/featuredartmodel.cpp
src/featuredartmodel.h
src/imagelabel.cpp
src/imagelabel.h
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h)
target_link_libraries(Redai
Qt6::Core
Qt6::Gui
Qt6::Widgets
Qt6::Concurrent
KF6::I18n
KF6::CoreAddons
KF6::XmlGui
QCoro::Core
QCoro::Network)
target_compile_options(Redai PRIVATE -fexceptions)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES src/*.cpp src/*.h)
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)