The cangaroo project has been migrated from qmake (.pro/.pri files) to CMake (CMakeLists.txt files).
- Qt6 (Core, Widgets, Gui, Xml, SerialPort, Network)
- CMake 3.16 or newer
- C++17 compatible compiler
Linux/Unix:
# Ubuntu/Debian
sudo apt-get install libnl-3-dev libnl-route-3-dev
# RHEL/CentOS/Fedora
sudo yum install libnl3-develWindows:
- Visual Studio 2019 or newer
- Windows SDK (for SetupApi, Ole32, winusb)
mkdir build
cd build
cmake ..
cmake --build .The executable will be built in build/bin/cangaroo (or build/bin/cangaroo.exe on Windows).
- Root CMakeLists.txt: Project configuration, Qt6 setup, platform detection
- src/CMakeLists.txt: Main executable with all module dependencies
- src/core/CMakeLists.txt: Core backend library (Backend, CanTrace, etc.)
- src/driver/CMakeLists.txt: Base driver library + platform-specific drivers
- src/parser/dbc/CMakeLists.txt: DBC file parser
- src/window/*/CMakeLists.txt: Individual window modules
Automatically enabled based on platform:
- Windows: CandleApiDriver, AsclCANWinServiceDriver
- Linux: SocketCanDriver
Optional drivers (currently disabled):
- CANBlastDriver (cross-platform)
- SLCANDriver (cross-platform)
To enable optional drivers, uncomment the relevant lines in src/driver/CMakeLists.txt.
- All
.profiles replaced withCMakeLists.txt - All
.prifiles converted to library definitions - Platform conditionals moved to CMake syntax
- Qt5 dependencies updated to Qt6
- Build outputs organized under
build/binandbuild/lib
- Source code structure unchanged
- All existing functionality preserved
- Platform-specific compilation logic maintained
- Same external dependencies required