75 lines
2.0 KiB
CMake
75 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(HIS 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)
|
|
|
|
find_package(Qt6 COMPONENTS Widgets Charts REQUIRED)
|
|
|
|
# 通用核心逻辑库(模型+业务服务),供 CLI/GUI 共用
|
|
set(COMMON_SOURCES
|
|
# Models
|
|
src/models/ward.cpp
|
|
src/models/patient.cpp
|
|
src/models/patient_case.cpp
|
|
src/models/doctor.cpp
|
|
src/models/medicine.cpp
|
|
src/models/check.cpp
|
|
src/models/department.cpp
|
|
src/models/payment.cpp
|
|
src/models/settlement.cpp
|
|
|
|
# Core services / composition root
|
|
src/core/his_core.cpp
|
|
src/core/ward_service.cpp
|
|
src/core/patient_service.cpp
|
|
src/core/patient_case_service.cpp
|
|
src/core/report_service.cpp
|
|
src/core/doctor_service.cpp
|
|
src/core/medicine_service.cpp
|
|
src/core/check_service.cpp
|
|
src/core/department_service.cpp
|
|
src/core/payment_service.cpp
|
|
src/core/settlement_service.cpp
|
|
src/core/payment_management_service.cpp
|
|
|
|
# Utils
|
|
src/utils/file_manager.cpp
|
|
src/utils/logger.cpp
|
|
src/utils/uuid.cpp
|
|
src/utils/json/JsonParse.cpp
|
|
src/utils/json/JsonValue.cpp
|
|
src/utils/json/JsonSerializer.cpp
|
|
src/utils/json/JsonError.cpp
|
|
)
|
|
|
|
add_library(his_core_lib STATIC ${COMMON_SOURCES})
|
|
|
|
target_include_directories(his_core_lib PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/utils/json
|
|
)
|
|
|
|
add_executable(his src/main_shell.cpp src/cli/repl_shell.cpp src/cli/table_printer.cpp)
|
|
target_link_libraries(his PRIVATE his_core_lib)
|
|
|
|
add_executable(his_gui
|
|
gui/main_gui.cpp
|
|
gui/mainwindow.cpp
|
|
gui/dialogs/patient_dialog.cpp
|
|
gui/dialogs/department_detail_dialog.cpp
|
|
gui/dialogs/payment_dialog.cpp
|
|
gui/dialogs/payment_management_dialog.cpp
|
|
gui/dialogs/settlement_dialog.cpp
|
|
)
|
|
target_link_libraries(his_gui PRIVATE his_core_lib Qt6::Widgets Qt6::Charts)
|
|
|
|
target_include_directories(his_gui PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/gui
|
|
)
|
|
|