Updated CMake

This commit is contained in:
Digital Artifex
2026-06-06 22:44:54 -04:00
parent b88ec5b67b
commit aa52a82ba2
3 changed files with 79 additions and 8 deletions
+29 -1
View File
@@ -8,4 +8,32 @@ target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Quick Qt${QT_VERSION_MAJOR}::Quick
Qt${QT_VERSION_MAJOR}::Qml) Qt${QT_VERSION_MAJOR}::Qml)
if(ENABLE_ASAN)
message(STATUS "Building with AddressSanitizer")
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
message(FATAL_ERROR "ASan supported only with Clang/GCC")
endif()
target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -fsanitize=address -fno-omit-frame-pointer)
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -fsanitize=address)
endif()
if(ENABLE_CLANG_TIDY)
if(NOT DEFINED CLANG_TIDY)
if(DEFINED ENV{CLANG_TIDY})
set(CLANG_TIDY $ENV{CLANG_TIDY})
endif()
endif()
find_program(CLANG_TIDY_EXE NAMES ${CLANG_TIDY} clang-tidy)
if(CLANG_TIDY_EXE)
message(STATUS "Plugin Found clang-tidy: ${CLANG_TIDY_EXE}")
else()
message(STATUS "clang-tidy not found")
endif()
if(CLANG_TIDY_EXE)
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=modernize-*,performance-*,readability-*,header-filter=.*;--warnings-as-errors=*;--extra-arg=-Qunused-arguments")
endif()
endif()
+3 -1
View File
@@ -10,6 +10,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOU
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
@@ -22,7 +23,8 @@ set(QML_IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY}
find_package(Qt6 6.8 REQUIRED COMPONENTS Core Gui Widgets Qml Quick QuickControls2 QuickTimeline ShaderTools) find_package(Qt6 6.8 REQUIRED COMPONENTS Core Gui Widgets Qml Quick QuickControls2 QuickTimeline ShaderTools)
qt_standard_project_setup() qt_standard_project_setup()
qt_add_executable(${CMAKE_PROJECT_NAME}) qt_add_executable(${CMAKE_PROJECT_NAME}
README.md)
qt_add_resources(${CMAKE_PROJECT_NAME} "configuration" qt_add_resources(${CMAKE_PROJECT_NAME} "configuration"
PREFIX "/" PREFIX "/"
FILES FILES
+47 -6
View File
@@ -10,15 +10,56 @@ qt_add_qml_module(
VERSION VERSION
1.0 1.0
SOURCES SOURCES
SettingsManager.h settingsmanager.h
SettingsManager.cpp settingsmanager.cpp
InstalledPackManager.h installedpackmanager.h
InstalledPackManager.cpp installedpackmanager.cpp
SOURCES WallpaperMetaData.h common/wallpapercache.h
newestpacksmodel.h
newestpacksmodel.cpp
common/komplex_global.h
common/slidingcachecontroller.h
common/slidingcachecontroller.cpp
common/paginator.h
common/paginator.cpp
common/coreservices.h
common/coreservices.cpp
common/logging.h
common/fetchresult.h
paginators/newestpackspaginator.h
paginators/newestpackspaginator.cpp
) )
target_compile_definitions( target_compile_definitions(
KomplexHubPlugin KomplexHubPlugin
PUBLIC PUBLIC
KOMPLEX_PLUGIN KOMPLEX_PLUGIN
) )
if(ENABLE_ASAN)
message(STATUS "Building with AddressSanitizer")
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
message(FATAL_ERROR "ASan supported only with Clang/GCC")
endif()
target_compile_options(KomplexHubPlugin PRIVATE -fsanitize=address -fno-omit-frame-pointer)
target_link_options(KomplexHubPlugin PRIVATE -fsanitize=address)
endif()
if(ENABLE_CLANG_TIDY)
if(NOT DEFINED CLANG_TIDY)
if(DEFINED ENV{CLANG_TIDY})
set(CLANG_TIDY $ENV{CLANG_TIDY})
endif()
endif()
find_program(CLANG_TIDY_EXE NAMES ${CLANG_TIDY} clang-tidy)
if(CLANG_TIDY_EXE)
message(STATUS "Plugin Found clang-tidy: ${CLANG_TIDY_EXE}")
else()
message(STATUS "clang-tidy not found")
endif()
if(CLANG_TIDY_EXE)
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=modernize-*,performance-*,readability-*,header-filter=.*;--warnings-as-errors=*;--extra-arg=-Qunused-arguments")
endif()
endif()