implement ui

This commit is contained in:
2026-04-20 20:33:37 +02:00
parent 498b97db20
commit 94123e93d6
19 changed files with 2312 additions and 19 deletions

View File

@@ -71,16 +71,44 @@ unset(SRCS)
# ============================================================
# ui — QtWidgets + QOpenGLWidget
# Depends on lib. No sources yet; declared as INTERFACE library.
# When UI source files are added under src/ui/, change this to
# a regular static library and enable AUTOMOC on the target.
# Depends on lib.
# ============================================================
set(HDRS)
set(SRCS)
add_subdirectory(ui)
add_library(${TARGET_UI_NAME} INTERFACE)
set(CMAKE_AUTOMOC ON)
target_link_libraries(${TARGET_UI_NAME} INTERFACE
set(RELATIVE_HDRS)
foreach (_file ${HDRS})
file(RELATIVE_PATH _relPath "${SRC_DIR}" "${_file}")
list(APPEND RELATIVE_HDRS "${_relPath}")
endforeach()
set(RELATIVE_SRCS)
foreach (_file ${SRCS})
file(RELATIVE_PATH _relPath "${SRC_DIR}" "${_file}")
list(APPEND RELATIVE_SRCS "${_relPath}")
endforeach()
add_files(UI_FILES ${RELATIVE_HDRS} ${RELATIVE_SRCS})
add_library(${TARGET_UI_NAME} STATIC ${UI_FILES})
create_source_groups(${UI_FILES})
set_target_properties(${TARGET_UI_NAME} PROPERTIES
AUTOMOC ON
CXX_STANDARD 17
)
set_property(TARGET ${TARGET_UI_NAME} PROPERTY INCLUDE_DIRECTORIES
"${TARGET_UI_INCLUDE_DIRS}"
"${TARGET_LIB_INCLUDE_DIRS}"
"${LIB_INCLUDE_PATH}"
)
target_link_libraries(${TARGET_UI_NAME}
${TARGET_LIB_NAME}
Qt5::Widgets
${OPENGL_LIBRARIES}
@@ -89,11 +117,13 @@ target_link_libraries(${TARGET_UI_NAME} INTERFACE
Qt5::Charts
)
target_include_directories(${TARGET_UI_NAME} INTERFACE
"${TARGET_UI_INCLUDE_DIRS}"
"${TARGET_LIB_INCLUDE_DIRS}"
"${LIB_INCLUDE_PATH}"
)
set(CMAKE_AUTOMOC OFF)
unset(UI_FILES)
unset(RELATIVE_HDRS)
unset(RELATIVE_SRCS)
unset(HDRS)
unset(SRCS)
# ============================================================
@@ -145,6 +175,9 @@ set_property(TARGET ${TARGET_APP_NAME} PROPERTY CXX_STANDARD 17)
set_target_properties(${TARGET_APP_NAME} PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY "${OUTPUT_ROOT_PATH}/$(Configuration)/app/"
)
target_compile_definitions(${TARGET_APP_NAME} PRIVATE
DOTA_FACTORY_CONFIG_DIR="${CMAKE_SOURCE_DIR}/bin/config"
)
target_link_libraries(${TARGET_APP_NAME} ${TARGET_UI_NAME})
unset(APP_FILES)