Switch to Meson instead of GNUmakefile#665
Conversation
Fix builds hopefully Remove outdated docs
Remove old make files
|
Does meson require all the build files to be mentioned? What happens if we restructure the code but omit updating the build files? |
|
@oocube Yes files are mentioned but in meson.build files in each subfolder under src rather than in one long file in the root |
|
You definitely know more about Meson and C++ projects than I do. |
|
I noticed a problem with the Windows installer - I will investigate |
|
@phkb Given this is a fairly large change, please can you check it works for you. One thing I've noticed with this and older versions like Oolite 1.93.1-kja-sdl3.2 is that speech doesn't work for me on Windows. This is unrelated to this change. I'm guessing it's related to SDL3. With 1.92.1, speech works ok for me on Windows. On Linux, there is no issue with speech. |
|
Looks like there some things we need to check for regularly. I extended |
|
How do I add meson to my build environment? |
|
I ran |
|
I notice the install script is failing: I'm running the command from root level of the source tree, which is where I would normally run the "make" process. Is that correct? |
It's probably simplest to just run setup.cmd from a command prompt to create a fresh up to date environment. setup.cmd installs msys2 and downloads latest dependencies which are then installed by install_deps.sh (which is called by setup.cmd). Alternatively, you need to download the dependencies manually into build/packages if you just want to run install_deps.sh from an existing msys2: https://github.com/OoliteProject/oolite_windeps_build/releases/tag/0.1.4. Prior to running install_deps.sh, it is a good idea to run |
|
I've debugged the Windows sound issue - requires fixing pcaudiolib due to SDL3 change: |
|
OK, after some fiddling around, I've got the build working. A couple of points:
|
Meson (using ninja backend) is faster
Meson integrates with IDEs (tested with CLion)
It can generate XCode projects apparently
No need to source GNUstep.sh with all its obscure magic - all required flags are in the build
Top level Makefile remains (although refactored and calls meson)
Also added to manifest:
Fixes #577