projectm
projectm copied to clipboard
[DEV BUG] Can't build on bullseye
Please confirm the following points:
- [x] This report is NOT about the Android apps in the Play Store
- [x] I have searched the project page to check if the issue was already reported
Affected Project
libprojectM (including the playlist library)
Affected Version
= 4.0.0
Operating Systems and Architectures
Linux (x86_64)
Build Tools
Build Tool: CMake
Additional Project, OS and Toolset Details
debian bullseye with recommended packages installed
Type of Defect
Build failure (compiler/linker or toolset error)
Log Output
Describe the Issue
On debian bullseye, I am not able to get any of the 4.x.x versions to build. It seems you're depending on a relatively new version of cmake which has made changes that are incompatible with earlier versions (commit 433ca9f9b55df469563fa3fc9bb4268e12c92c7b). I tried lowering the required version but that gives me an Unknown CMake command "check_source_compiles" error.
Your build instructions say that there's an autotools option but then the instructions only say to use cmake, and I don't see the regular autotools / configure script in the repo.
I think you've removed the autotools option but not updated the instructions to say that?
How to build 4.x on bullseye?
Debian 11 delivers a relatively old version of CMake (3.18). We have to use a more modern version of CMake because of different bugs and missing features and compiler support in those old versions, so simply reducing the required minimum version will not work without rewriting some parts of the build system.
And yes, we've removed autotools and any other build system from the repo, so this is certainly something we should also remove from the docs.
With CMake, it's always recommended to use the most recent version available. You can try installing a binary build from their download page - if that doesn't work, building CMake from source is also an option, as it's really easy to do: first, uninstall Debian's CMake package, get the latest CMake source and unpack it. cd into the unpacked source dir and run:
./bootstrap && make -j && sudo make install
This will install CMake in your system and projectM should build fine. If you don't want to install it system-wide, don''t use sudo with make install and instead add DESTDIR=$HOME/cmake to the last command and add the $HOME/cmake/bin dir to your PATH env variable.
I've updated the build instructions in master, removing any references to autotools usage and adding some additional information.
Thanks! I'll give that a try. And your updated docs look great! 👍