2.8 KiB
Windows native dependencies
The project uses Qt 5.12.4 with its 64-bit MinGW 7.3 kit:
- Qt:
C:\Qt\Qt5.12.4\5.12.4\mingw73_64 - Compiler:
C:\Qt\Qt5.12.4\Tools\mingw730_64 - gRPC 1.48.4 and Protobuf 3.19.5
- FFmpeg 4.4.5 with H.264, H.265/HEVC and MJPEG decoders
- MsQuic 2.5.9 OpenSSL x64
- urdfdom 4.0.3
Do not use an MSVC, 32-bit, or different MinGW kit. The native libraries in
lib use the Qt MinGW 7.3 64-bit ABI.
Project layout
The application build has no dependency on third_party/install:
include/ dependency headers
lib/ static libraries, import libraries and runtime DLLs
tools/ protoc.exe, grpc_cpp_plugin.exe and the protoc launcher
certs/ QUIC test certificate and CA
Both qmake and CMake link only from lib. qmake copies every lib/*.dll into
the selected executable directory (bin/debug or bin/release) during the
build. QUIC certificates and the demo URDF are deployed beside the executable
at the same time.
tools/run_protoc.cmd adds lib to the proto compiler process PATH. This lets
protoc.exe and grpc_cpp_plugin.exe load their MinGW runtime DLLs without
duplicating DLL files under tools.
Rebuilding dependencies
The checked-in include, lib, tools, and certs directories are enough to
build the application. To rebuild all native dependencies from source, run:
powershell -ExecutionPolicy Bypass -File .\scripts\build_native_deps.ps1 -Jobs 4
The script creates a temporary third_party download/build/install tree and
then runs scripts/stage_native_deps.ps1 to refresh the four project
directories above. third_party is ignored and can be removed after staging.
To refresh only the staged files from an existing install tree:
powershell -ExecutionPolicy Bypass -File .\scripts\stage_native_deps.ps1
Qt Creator
Open CmvrControlStation.pro, select the Desktop Qt 5.12.4 MinGW 64-bit kit,
run qmake, and then rebuild. Debug and Release are kept separate:
bin/debug/CmvrControlStation_d.exe
bin/release/CmvrControlStation.exe
Proto sources are read from the project-local protos directory and generated
under generated_cpp. No file from cmvr-es or another source repository is
required during compilation.
QUIC certificate
To generate a test server certificate containing the machine LAN address:
.\scripts\install_msquic.ps1 -ServerIp 192.168.0.118
.\scripts\stage_native_deps.ps1
The client must trust certs/quic-test-ca.crt. The PFX password is
cmvr-test.
Application deployment
The .pro file deploys native DLLs maintained in lib, including FFmpeg,
MsQuic, urdfdom, zlib, and the MinGW runtime. Qt framework DLLs and Qt plugins
remain owned by the selected Qt kit; use windeployqt when producing a
standalone distribution outside Qt Creator.