2026-09-23 11:11:49 +08:00
|
|
|
QT += core gui widgets multimedia 3dcore 3drender 3dextras 3dinput 3danimation
|
2026-09-18 16:22:20 +08:00
|
|
|
|
|
|
|
|
CONFIG += c++14 warn_on debug_and_release
|
|
|
|
|
TEMPLATE = app
|
|
|
|
|
|
|
|
|
|
DEFINES += QT_DEPRECATED_WARNINGS _WIN32_WINNT=0x0600
|
|
|
|
|
|
|
|
|
|
INCLUDE_DIR = $$clean_path($$PWD/include)
|
|
|
|
|
LIB_DIR = $$clean_path($$PWD/lib)
|
|
|
|
|
TOOLS_DIR = $$clean_path($$PWD/tools)
|
|
|
|
|
CERT_DIR = $$clean_path($$PWD/certs)
|
|
|
|
|
PROTO_ROOT = $$clean_path($$PWD/protos)
|
|
|
|
|
PROTO_GEN_DIR = $$clean_path($$PWD/generated_cpp)
|
|
|
|
|
PROTOC = $$TOOLS_DIR/run_protoc.cmd
|
|
|
|
|
GRPC_CPP_PLUGIN = $$TOOLS_DIR/grpc_cpp_plugin.exe
|
|
|
|
|
MSQUIC_DLL = $$LIB_DIR/msquic.dll
|
|
|
|
|
MSQUIC_TEST_CERT = $$CERT_DIR/quic-test-server.pfx
|
|
|
|
|
MSQUIC_TEST_CA = $$CERT_DIR/quic-test-ca.crt
|
|
|
|
|
RUNTIME_DLLS = $$files($$LIB_DIR/*.dll)
|
2026-09-23 11:11:49 +08:00
|
|
|
MODEL_DIR = $$clean_path($$PWD/models)
|
2026-09-18 16:22:20 +08:00
|
|
|
QT_SCENEPARSER_DIR = $$clean_path($$[QT_INSTALL_PLUGINS]/sceneparsers)
|
|
|
|
|
|
|
|
|
|
!exists($$PROTOC): error("protoc launcher not found. Run scripts/build_native_deps.ps1 first.")
|
|
|
|
|
!exists($$GRPC_CPP_PLUGIN): error("grpc_cpp_plugin.exe not found. Run scripts/build_native_deps.ps1 first.")
|
|
|
|
|
!exists($$MSQUIC_DLL): error("msquic.dll not found. Run scripts/install_msquic.ps1 first.")
|
|
|
|
|
!exists($$MSQUIC_TEST_CERT): error("QUIC test certificate not found. Run scripts/install_msquic.ps1 first.")
|
|
|
|
|
!exists($$MSQUIC_TEST_CA): error("QUIC test CA not found. Run scripts/install_msquic.ps1 first.")
|
|
|
|
|
!exists($$INCLUDE_DIR/libavcodec/avcodec.h): error("FFmpeg headers not found in include.")
|
|
|
|
|
!exists($$LIB_DIR/avcodec-58.dll): error("FFmpeg runtime DLLs not found in lib.")
|
|
|
|
|
!exists($$INCLUDE_DIR/urdf_parser/urdf_parser.h): error("urdfdom headers not found in include.")
|
|
|
|
|
!exists($$LIB_DIR/liburdfdom_model.dll.a): error("urdfdom link library not found in lib.")
|
|
|
|
|
!exists($$LIB_DIR/liburdfdom_model.dll): error("urdfdom runtime DLL not found in lib.")
|
|
|
|
|
|
|
|
|
|
PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/common.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/agv_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/agv_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/arm_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/arm_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/biohead_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/biohead_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/camera_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/camera_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/configuration_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/configuration_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/dexhand_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/dexhand_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/hlc_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/hlc_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/microphone_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/microphone_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/speaker_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/speaker_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/system_command.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/system_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/test_service.proto
|
|
|
|
|
|
|
|
|
|
GRPC_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/agv_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/arm_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/biohead_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/camera_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/configuration_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/dexhand_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/hlc_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/microphone_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/speaker_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/system_service.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/api/test_service.proto
|
|
|
|
|
|
|
|
|
|
MSG_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/msgs/agv.proto
|
|
|
|
|
|
|
|
|
|
CONFIG_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/agv_config/agv_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/arm_config/arm_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/aubo_robot_config/aubo_robot_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/biohead_config/biohead_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/camera_config/camera_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/cmvr_es_config/cmvr_es_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/device_manager_config/device_manager_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/dexhand_config/dexhand_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/grpc_server_config/grpc_server_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/logger_config/logger_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/microphone_config/microphone_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/motor_config/motor_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/quic_edge_config/quic_edge_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/self_collision_task_config/self_collision_task_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/speaker_config/speaker_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/task_manager_config/task_manager_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/touch_screen_task_config/touch_screen_task_config.proto
|
|
|
|
|
|
|
|
|
|
CONFIG_ROOT_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/cartesian_motion_validation_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/joint_limits_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/lawba_ik_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/pinocchio_dls_ik_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/pinocchio_qp_ik_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/srs_ik_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/touch_screen_algorithm_config.proto \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/touch_screen_common_config.proto
|
|
|
|
|
|
|
|
|
|
COMMON_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/common/geometry.proto
|
|
|
|
|
|
|
|
|
|
MUJOCO_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/config/mujoco_config/mujoco_world_config.proto
|
|
|
|
|
|
|
|
|
|
QUIC_PROTO_FILES = \
|
|
|
|
|
$$PROTO_ROOT/cmvr/quic_edge/v1/quic_edge.proto
|
|
|
|
|
|
|
|
|
|
# Show the complete local proto tree in Qt Creator without compiling unused APIs.
|
2026-09-23 11:11:49 +08:00
|
|
|
OTHER_FILES += $$files($$PROTO_ROOT/*.proto, true) $$files($$MODEL_DIR/*.urdf, true)
|
2026-09-18 16:22:20 +08:00
|
|
|
|
|
|
|
|
INCLUDEPATH += \
|
|
|
|
|
$$PROTO_GEN_DIR \
|
|
|
|
|
$$INCLUDE_DIR \
|
|
|
|
|
$$INCLUDE_DIR/urdfdom_headers
|
|
|
|
|
|
|
|
|
|
protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
protobuf_compiler.input = PROTO_FILES
|
|
|
|
|
protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/api/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PROTO_ROOT/cmvr/api/${QMAKE_FILE_BASE}.proto)
|
|
|
|
|
protobuf_compiler.depends = $$PROTO_FILES $$MSG_PROTO_FILES
|
|
|
|
|
protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
msg_protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
msg_protobuf_compiler.input = MSG_PROTO_FILES
|
|
|
|
|
msg_protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/msgs/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
msg_protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PROTO_ROOT/cmvr/msgs/${QMAKE_FILE_BASE}.proto)
|
|
|
|
|
msg_protobuf_compiler.depends = $$MSG_PROTO_FILES
|
|
|
|
|
msg_protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
msg_protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
config_protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
config_protobuf_compiler.input = CONFIG_PROTO_FILES
|
|
|
|
|
config_protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/config/${QMAKE_FILE_BASE}/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
config_protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PWD/${QMAKE_FILE_IN})
|
|
|
|
|
config_protobuf_compiler.depends = $$CONFIG_PROTO_FILES
|
|
|
|
|
config_protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
config_protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
config_root_protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
config_root_protobuf_compiler.input = CONFIG_ROOT_PROTO_FILES
|
|
|
|
|
config_root_protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/config/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
config_root_protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PWD/${QMAKE_FILE_IN})
|
|
|
|
|
config_root_protobuf_compiler.depends = $$CONFIG_ROOT_PROTO_FILES $$COMMON_PROTO_FILES
|
|
|
|
|
config_root_protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
config_root_protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
common_protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
common_protobuf_compiler.input = COMMON_PROTO_FILES
|
|
|
|
|
common_protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/common/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
common_protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PWD/${QMAKE_FILE_IN})
|
|
|
|
|
common_protobuf_compiler.depends = $$COMMON_PROTO_FILES
|
|
|
|
|
common_protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
common_protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
mujoco_protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
mujoco_protobuf_compiler.input = MUJOCO_PROTO_FILES
|
|
|
|
|
mujoco_protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/config/mujoco_config/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
mujoco_protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PWD/${QMAKE_FILE_IN})
|
|
|
|
|
mujoco_protobuf_compiler.depends = $$MUJOCO_PROTO_FILES
|
|
|
|
|
mujoco_protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
mujoco_protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
grpc_compiler.name = gRPC ${QMAKE_FILE_IN}
|
|
|
|
|
grpc_compiler.input = GRPC_PROTO_FILES
|
|
|
|
|
grpc_compiler.output = $$PROTO_GEN_DIR/cmvr/api/${QMAKE_FILE_BASE}.grpc.pb.cc
|
|
|
|
|
grpc_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --grpc_out=$$quote($$PROTO_GEN_DIR) --plugin=protoc-gen-grpc=$$quote($$GRPC_CPP_PLUGIN) $$quote($$PROTO_ROOT/cmvr/api/${QMAKE_FILE_BASE}.proto)
|
|
|
|
|
grpc_compiler.depends = $$PROTO_FILES $$MSG_PROTO_FILES
|
|
|
|
|
grpc_compiler.variable_out = SOURCES
|
|
|
|
|
grpc_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
quic_protobuf_compiler.name = Protobuf ${QMAKE_FILE_IN}
|
|
|
|
|
quic_protobuf_compiler.input = QUIC_PROTO_FILES
|
|
|
|
|
quic_protobuf_compiler.output = $$PROTO_GEN_DIR/cmvr/quic_edge/v1/${QMAKE_FILE_BASE}.pb.cc
|
|
|
|
|
quic_protobuf_compiler.commands = $$quote($$PROTOC) --proto_path=$$quote($$PROTO_ROOT) --cpp_out=$$quote($$PROTO_GEN_DIR) $$quote($$PROTO_ROOT/cmvr/quic_edge/v1/${QMAKE_FILE_BASE}.proto)
|
|
|
|
|
quic_protobuf_compiler.depends = $$QUIC_PROTO_FILES
|
|
|
|
|
quic_protobuf_compiler.variable_out = SOURCES
|
|
|
|
|
quic_protobuf_compiler.CONFIG += target_predeps
|
|
|
|
|
|
|
|
|
|
QMAKE_EXTRA_COMPILERS += protobuf_compiler msg_protobuf_compiler config_protobuf_compiler config_root_protobuf_compiler common_protobuf_compiler mujoco_protobuf_compiler grpc_compiler quic_protobuf_compiler
|
|
|
|
|
|
|
|
|
|
ABSL_STATIC_LIBS = $$files($$LIB_DIR/libabsl_*.a)
|
|
|
|
|
LIBS += \
|
|
|
|
|
-Wl,--start-group \
|
|
|
|
|
$$LIB_DIR/libgrpc++.a \
|
|
|
|
|
$$LIB_DIR/libgrpc.a \
|
|
|
|
|
$$LIB_DIR/libgpr.a \
|
|
|
|
|
$$LIB_DIR/libaddress_sorting.a \
|
|
|
|
|
$$LIB_DIR/libre2.a \
|
|
|
|
|
$$LIB_DIR/libupb.a \
|
|
|
|
|
$$LIB_DIR/libcares.a \
|
|
|
|
|
$$LIB_DIR/libssl.a \
|
|
|
|
|
$$LIB_DIR/libcrypto.a \
|
|
|
|
|
$$LIB_DIR/libzlibstatic.a \
|
|
|
|
|
$$LIB_DIR/libprotobuf.a \
|
|
|
|
|
$$ABSL_STATIC_LIBS \
|
|
|
|
|
-Wl,--end-group \
|
|
|
|
|
$$LIB_DIR/libavcodec.dll.a \
|
|
|
|
|
$$LIB_DIR/libavutil.dll.a \
|
|
|
|
|
$$LIB_DIR/libswscale.dll.a \
|
|
|
|
|
$$LIB_DIR/liburdfdom_model.dll.a \
|
|
|
|
|
-lws2_32 \
|
|
|
|
|
-lcrypt32 \
|
|
|
|
|
-ladvapi32 \
|
|
|
|
|
-lbcrypt \
|
|
|
|
|
-ldbghelp \
|
|
|
|
|
-liphlpapi \
|
|
|
|
|
-lsecur32 \
|
|
|
|
|
-lntdll
|
|
|
|
|
|
2026-09-23 11:11:49 +08:00
|
|
|
DEFINES += CMVR_WITH_GRPC=1 CMVR_WITH_MSQUIC=1
|
2026-09-18 16:22:20 +08:00
|
|
|
|
|
|
|
|
CONFIG(debug, debug|release) {
|
|
|
|
|
TARGET = CmvrControlStation_d
|
|
|
|
|
DESTDIR = $$clean_path($$PWD/bin/debug)
|
|
|
|
|
OBJECTS_DIR = build/debug/obj
|
|
|
|
|
MOC_DIR = build/debug/moc
|
|
|
|
|
RCC_DIR = build/debug/rcc
|
|
|
|
|
UI_DIR = build/debug/ui
|
|
|
|
|
DEFINES += CMVR_DEBUG_BUILD
|
|
|
|
|
ASSIMP_SCENE_PARSER = $$QT_SCENEPARSER_DIR/assimpsceneimportd.dll
|
|
|
|
|
} else {
|
|
|
|
|
TARGET = CmvrControlStation
|
|
|
|
|
DESTDIR = $$clean_path($$PWD/bin/release)
|
|
|
|
|
OBJECTS_DIR = build/release/obj
|
|
|
|
|
MOC_DIR = build/release/moc
|
|
|
|
|
RCC_DIR = build/release/rcc
|
|
|
|
|
UI_DIR = build/release/ui
|
|
|
|
|
DEFINES += NDEBUG
|
|
|
|
|
ASSIMP_SCENE_PARSER = $$QT_SCENEPARSER_DIR/assimpsceneimport.dll
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
!exists($$ASSIMP_SCENE_PARSER): error("Qt3D Assimp scene parser not found in the selected Qt Kit.")
|
|
|
|
|
|
|
|
|
|
SOURCES += \
|
|
|
|
|
src/audiostreammanager.cpp \
|
|
|
|
|
src/configeditorwidget.cpp \
|
|
|
|
|
src/main.cpp \
|
|
|
|
|
src/mainwindow.cpp \
|
|
|
|
|
src/mainwindow_ui.cpp \
|
|
|
|
|
src/quictestserver.cpp \
|
|
|
|
|
src/rpcservicewidget.cpp \
|
|
|
|
|
src/robotclient.cpp \
|
|
|
|
|
src/trendwidget.cpp \
|
|
|
|
|
src/urdfviewerwidget.cpp \
|
|
|
|
|
src/videodecoder.cpp \
|
|
|
|
|
src/videorenderwidget.cpp \
|
|
|
|
|
ui/handeyecalibrationwidget.cpp
|
|
|
|
|
|
|
|
|
|
HEADERS += \
|
|
|
|
|
src/audiostreammanager.h \
|
|
|
|
|
src/configeditorwidget.h \
|
|
|
|
|
src/mainwindow.h \
|
|
|
|
|
src/quictestserver.h \
|
|
|
|
|
src/rpcservicewidget.h \
|
|
|
|
|
src/robotclient.h \
|
|
|
|
|
src/trendwidget.h \
|
|
|
|
|
src/uiicons.h \
|
|
|
|
|
src/urdfviewerwidget.h \
|
|
|
|
|
src/videodecoder.h \
|
|
|
|
|
src/videoframe.h \
|
|
|
|
|
src/videorenderwidget.h \
|
|
|
|
|
ui/handeyecalibrationwidget.h
|
|
|
|
|
|
|
|
|
|
FORMS += \
|
|
|
|
|
ui/handeyecalibrationwidget.ui \
|
|
|
|
|
ui/mainwindow.ui \
|
|
|
|
|
ui/systemservicepage.ui \
|
|
|
|
|
ui/armservicepage.ui \
|
|
|
|
|
ui/cameraservicepage.ui \
|
|
|
|
|
ui/agvservicepage.ui \
|
|
|
|
|
ui/agvstatusdialog.ui \
|
|
|
|
|
ui/audioservicepage.ui \
|
|
|
|
|
ui/quicserverpage.ui \
|
|
|
|
|
ui/diagnosticspage.ui \
|
|
|
|
|
ui/rpcservicewidget.ui
|
|
|
|
|
|
|
|
|
|
RESOURCES += resources.qrc
|
|
|
|
|
|
|
|
|
|
runtime_library_deployment.files = $$RUNTIME_DLLS
|
|
|
|
|
runtime_library_deployment.path = $$DESTDIR
|
|
|
|
|
quic_certificate_deployment.files = $$MSQUIC_TEST_CERT
|
|
|
|
|
quic_certificate_deployment.path = $$DESTDIR
|
|
|
|
|
quic_ca_deployment.files = $$MSQUIC_TEST_CA
|
|
|
|
|
quic_ca_deployment.path = $$DESTDIR
|
|
|
|
|
assimp_scene_parser_deployment.files = $$ASSIMP_SCENE_PARSER
|
|
|
|
|
assimp_scene_parser_deployment.path = $$DESTDIR/sceneparsers
|
2026-09-23 11:11:49 +08:00
|
|
|
COPIES += runtime_library_deployment quic_certificate_deployment quic_ca_deployment assimp_scene_parser_deployment
|
|
|
|
|
|
|
|
|
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$shell_quote($$shell_path($$MODEL_DIR)) $$shell_quote($$shell_path($$DESTDIR/models))
|
2026-09-18 16:22:20 +08:00
|
|
|
|
|
|
|
|
win32 {
|
2026-09-23 11:11:49 +08:00
|
|
|
QMAKE_POST_LINK += $$escape_expand(\n\t) $$QMAKE_COPY_FILE $$shell_quote($$shell_path($$MSQUIC_TEST_CERT)) $$shell_quote($$shell_path($$DESTDIR/quic-test-server.pfx))
|
2026-09-18 16:22:20 +08:00
|
|
|
QMAKE_POST_LINK += $$escape_expand(\n\t) $$QMAKE_COPY_FILE $$shell_quote($$shell_path($$MSQUIC_TEST_CA)) $$shell_quote($$shell_path($$DESTDIR/quic-test-ca.crt))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
win32:RC_ICONS =
|