Comments (6)
This is the error message:
"CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool."
This looks like a setup problem outside the project's control.
from raze.
Wow there @coelckers I think you were way to quick and hasty closing this as you didn't fully look into the issue at all. I can see the build script is doing things incorrectly or at least that's causing issues, I copied the build instructions from the AUR packages https://aur.archlinux.org/packages/zmusic and https://aur.archlinux.org/packages/raze and was able to build both without any issues and I didn't need to change anything on my end.
Also vcpkg on the AUR has no issues building https://aur.archlinux.org/packages/vcpkg
after I installed that (just to be safe and incase it was still needed) I built both ZMusic and Raze following the AUR package build commands they used to have it compiled. Turns out vcpkg isn't even needed to build either of them.
For example with Raze doing if I follow the AUR package and use these following commands to build will successfully build without issues
mkdir -p build
cmake -B build \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_CXX_FLAGS="${CXXFLAGS} -ffile-prefix-map=\"$PWD\"=." \
-D DYN_GTK=OFF \
-D DYN_OPENAL=OFF \
-D CMAKE_INSTALL_PREFIX=/usr \
-D SYSTEMINSTALL=ON
make -j $(nproc) -C build
While these commands cause issues for building Raze
cmake -S .. -B . \
-DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DVCPKG_INSTALLLED_DIR=./vcpkg_installed/
make -j $(nproc); rc=$?
from raze.
I will quite be the first to admit that the build script could use improvements. I know this because I am the one who designed it.
But I cannot test it in every possible environment that it is going to run in. I also have no idea how to account for the wildly different ways distros do things.
Personally, I'd be happier with pull requests that suggest improvements to it than snippy comments at the developer because you aren't happy with how he handled it. But it needs to be able to account for the environments within which it does still work and not break in those. If you need you can simply make a copy of the file and call it "auto-setup-linux-arch.sh" and call it a day and it will be accepted sight-unseen if it resembles doing anything it is supposed to be doing.
from raze.
Wow hey I am on your side here and I haven't made any snippy comments here, all I said was you were quick to close this and blame the user in a friendly,constructive and informative way and show where the issue happened and how to fix it.
I would suggest making generic build instructions instead of a generic build script as they can cause problems and be a pain to maintain for multiple distros and those build instructions would work on other distros as well. :)
I would appreciate it if the issue was reopened and the tag got changed back to bug.
from raze.
Sorry I misread your meaning then, inflection does not carry through in text.
Documentation actually is a secondary purpose to the build scripts. If they fail they serve as documentation for instructions on how to compile and can be adjusted as needed or even just manually replayed from the command line. For that reason we don't want them to get too complicated and only branch when absolutely necessary. It's one of the reasons why the Ubuntu package names are listed in the comments header - that helps someone figure out what packages they need for their own distro to make this work.
I know it's kind of a weird way of doing things, but if the requested packages are present there is no reason other than something the script cannot anticipate, that it shouldn't work. As is the case, here. If the scripts break in their intended environment then this serves as a first point where they need to be updated - which, in a way, forces us to keep them updated somehow or other.
We'd prefer things to be automatic to be as convenient as possible - we know that isn't always going to be possible in every environment. But that's why the script is committed as chmod +x'd.
from raze.
It's no problem, I didn't take it personally haha
Yeah I get that tho I honestly think it can't get any simpler for you and the user by just having the proper build commands, it will be far less hassle for you to maintain and it's only a couple simple commands/steps to build both projects to play Duke3D tho if zmusic was a submodule for Raze it would be even easier and more convenient
from raze.
Related Issues (20)
- [BUG] [Duke WT] `Code: C0000005 (Access Violation - tried to read address 0000000000000000)`
- [BUG] [Powerslave] Game starts glitching when hits enemies
- A few little "C-isms" is causing GCC to panic. HOT 1
- [BUG] Various mouse issues with multiple video drivers on ARM64
- [BUG] autoexec regression
- [BUG] Pink screen Vulkan render HOT 4
- Fails to compile Fedora 40 - gcc 14.0.1 HOT 2
- [BUG] [Blood] Acid pod doesn't cause damage HOT 1
- [Feature] [Blood] Add an ability to add new sounds from DEF files
- [BUG] [Blood] Missing sound in Death Wish 1.7
- [BUG] [Blood] Crash on level load
- [BUG] [SW] Enemies are alerted to the player through doors and windows that they should not be able to see through HOT 6
- [BUG] [SW] Enemy sounds are scrambled (wrong sounds play for what the enemy is doing) HOT 3
- [BUG] [Powerslave] Player cannot jump out of water onto certain ledges
- [Feature] Add `-s#` or `-skill #` cmd parameter to launch the game with selected skill level or show skill selection menu when launching single map
- [Feature] Support for .kpf files. HOT 1
- [Feature] Port ifmatch subtoken for voxel token from EDuke32
- [Feature] SteamAPI/Achievement Support for Duke3D World Tour HOT 2
- [BUG] tile2241-tile2249 replacement not working
- [BUG] Duke Caribbean not showing up on game select screen.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from raze.