Files

83 lines
1.9 KiB
CMake
Raw Permalink Normal View History

cmake_minimum_required(VERSION 3.16)
project(BudgetPro VERSION 1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Qt 6 Configuration
find_package(Qt6 REQUIRED COMPONENTS Widgets Sql)
# Define directories for easier management
set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(SRC_DIR ${SOURCE_DIR}/src)
set(GUI_DIR ${SOURCE_DIR}/src/gui)
set(WIDGET_DIR ${SOURCE_DIR}/src/gui/widgets)
set(FORMS_DIR ${SOURCE_DIR}/src/gui/forms)
set(MODELS_DIR ${SOURCE_DIR}/src/models)
set(DAO_DIR ${SOURCE_DIR}/src/dao)
set(UTILS_DIR ${SOURCE_DIR}/src/utils)
set(APP_DIR ${SOURCE_DIR}/src/app)
set(ROOT_WIDGET_DIR ${SOURCE_DIR}/widget)
# Include Paths
include_directories(
${GUI_DIR}
${WIDGET_DIR}
${FORMS_DIR}
${MODELS_DIR}
${DAO_DIR}
${UTILS_DIR}
${APP_DIR}
${ROOT_WIDGET_DIR}
${SOURCE_DIR}/data
${SOURCE_DIR}/gui/SARibbon
${SOURCE_DIR}/gui/qtRibbonGUI
)
# SARibbon Library Integration
# Assuming SARibbon is integrated as a sub-project or pre-compiled
add_subdirectory(gui/SARibbon)
# Collect Sources
file(GLOB_RECURSIVE SOURCES
"src/*.cpp"
"src/*.h"
"widget/*.cpp"
"widget/*.h"
"utils/*.cpp"
"utils/*.h"
)
# Collect Forms
file(GLOB_RECURSIVE FORMS
"src/gui/*.ui"
"src/gui/forms/*.ui"
"widget/*.ui"
)
# Collect Resources
file(GLOB_RECURSIVE RESOURCES
"resources/*.qss"
"resources/*.svg"
"resources/*.png"
"*.qrc"
)
# Create Executable
add_executable(BudgetPro
${SOURCES}
${FORMS}
${RESOURCES}
)
# Link Libraries
target_link_libraries(BudgetPro PRIVATE Qt6::Widgets Qt6::Sql SARibbonBar)
# OS Specific configurations
if(WIN32)
set_target_properties(BudgetPro PROPERTIES WIN32_EXECUTABLE TRUE)
target_compile_definitions(BudgetPro PRIVATE NOMINMAX)
elseif(APPLE)
set_target_properties(BudgetPro PROPERTIES MACOSX_BUNDLE TRUE)
endif()