69 lines
2.0 KiB
CMake
69 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(StreamHubQtClient CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# The reused, framework-free Protocol.h / Model.h structs have members named
|
|
# "signals" (e.g. ZoomResponse::signals). Qt's default "signals"/"slots"/"emit"
|
|
# keyword macros would clobber them, so disable the macros and use the
|
|
# Q_SIGNALS / Q_SLOTS / Q_EMIT spellings in our own Qt classes instead.
|
|
add_compile_definitions(QT_NO_KEYWORDS)
|
|
|
|
# ── Qt5/Qt6 autodetect (prefer Qt6, fall back to Qt5) ─────────────────────────
|
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets WebSockets)
|
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets WebSockets)
|
|
message(STATUS "StreamHubQtClient: building against Qt${QT_VERSION_MAJOR} "
|
|
"(${QT_VERSION})")
|
|
|
|
# ── Reuse the wire layer from the ImGui client (single source of truth) ───────
|
|
set(REF_CLIENT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../streamhub)
|
|
|
|
set(SOURCES
|
|
main.cpp
|
|
Theme.cpp
|
|
Hub.cpp
|
|
WsClient.cpp
|
|
PlotWidget.cpp
|
|
PlotGrid.cpp
|
|
SourceSidebar.cpp
|
|
TriggerBar.cpp
|
|
StatsDialog.cpp
|
|
HistoryBar.cpp
|
|
MainWindow.cpp
|
|
# Reused, framework-free protocol implementation:
|
|
${REF_CLIENT_DIR}/Protocol.cpp
|
|
)
|
|
|
|
set(HEADERS
|
|
Model.h
|
|
Theme.h
|
|
Hub.h
|
|
WsClient.h
|
|
PlotWidget.h
|
|
PlotGrid.h
|
|
SourceSidebar.h
|
|
TriggerBar.h
|
|
StatsDialog.h
|
|
HistoryBar.h
|
|
MainWindow.h
|
|
)
|
|
|
|
add_executable(StreamHubQtClient ${SOURCES} ${HEADERS})
|
|
|
|
target_include_directories(StreamHubQtClient PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${REF_CLIENT_DIR} # Protocol.h, SignalBuffer.h
|
|
)
|
|
|
|
target_link_libraries(StreamHubQtClient PRIVATE
|
|
Qt${QT_VERSION_MAJOR}::Widgets
|
|
Qt${QT_VERSION_MAJOR}::WebSockets
|
|
)
|
|
|
|
target_compile_options(StreamHubQtClient PRIVATE -Wall -Wextra -Wno-unused-parameter)
|
|
|
|
install(TARGETS StreamHubQtClient DESTINATION bin)
|