Prerequisites
All Platforms
- CMake 3.16 or later
- Qt 5.x or 6.x with the following modules:
- Core, Gui, Multimedia, MultimediaWidgets, Network, PrintSupport
- Qml, Quick, Svg, Test, Widgets, LinguistTools
- For QML UI (QLC+ 5): 3DCore, 3DInput, 3DLogic, 3DQuick, 3DQuickExtras, 3DRender, WebSockets
- pkg-config
- C++ compiler with C++11 support
Linux
macOS
Windows
Build Configuration
Project Version
The project is configured in the rootCMakeLists.txt:2:
Build Types
Available build types:- Debug (default) - Debug symbols, no optimizations
- Release - Optimizations enabled, no debug symbols
- RelWithDebInfo - Optimizations + debug symbols
- MinSizeRel - Size optimizations
Build Options
Build QLC+ 5 with QML UI instead of QtWidgets UI (QLC+ 4)
Installation root directory
Building on Linux
Running Without Installing
On Unix systems, use the customrun target:
LD_LIBRARY_PATH automatically (CMakeLists.txt:188-193).
Building on macOS
Follow the same steps as Linux, but ensure Qt is in your PATH:Creating DMG Package
Building on Windows
Creating Installer
Build Targets
Standard Targets
Testing Targets
Development Targets
Project Structure
The build system is organized into subdirectories (CMakeLists.txt:73-89):- hotplugmonitor/ - USB device hotplug detection
- engine/ - Core engine library
- resources/ - Fixtures, icons, translations
- plugins/ - I/O plugins (DMX, Art-Net, etc.)
- webaccess/ - Web interface
- qmlui/ - QML UI (QLC+ 5)
- ui/ - QtWidgets UI (QLC+ 4)
- main/ - Main application entry point
- fixtureeditor/ - Fixture definition editor
- launcher/ - macOS launcher
- platforms/ - Platform-specific packaging
Troubleshooting
Full Rebuild Required
If you encounter unresolved symbols or linking errors aftergit pull, perform a clean rebuild:
Library Not Found at Runtime
On Linux, if libraries are not found:make run target which handles this automatically.
Qt Version Conflicts
Ensure you’re using the correct Qt version:Missing Platform Headers
Linux: Install udev development headers:Cross-Platform Notes
Installation Paths
The build system usesCMAKE_INSTALL_RPATH_USE_LINK_PATH to preserve library paths (CMakeLists.txt:13).
Shared Library Prefix
On Windows, the shared library prefix is set to empty (CMakeLists.txt:70):Android/iOS
Building for mobile automatically enables QML UI (CMakeLists.txt:25-27):Packaging
Next Steps
- Read Contributing Guidelines
- Learn about Testing
- Explore the Architecture
