-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a meson build system #12
base: master
Are you sure you want to change the base?
Conversation
Thanks for this contribution! There are a couple of things to address before it can be merged: includesThe change to Was there some failure which prompted this change? releasesThe new I plan to fix this for my various projects by changing the release process to create a release branch and commit the generated files to the branch. But of course that doesn't address the needs of CI for non-unix-like platforms so your reversion.py is heading in the right direction. So that's OK so far, but I would prefer not to have two parallel implementations of the same thing, especially since the old shell one is fairly horrible. Since you are re-doing it in a Real Programming Language 😄 it would be better to completely remove You don't need to do anything else with the release machinery: that's just me thinking out loud and providing a bit of context. |
Using To elaborate, with the current setup, inside Visual Studio, clicking on This means if I click on the file that shows up and make some changes/fixes etc. and hit recompile, I can see all of my changes being reflected in the compiled binary, however, the changes are made to a build specific copy and not the original, meaning when I go to do a
GitHub has a weird habit of wanting developers to work inside GitHub's weird system where if you want to make an actual "Release" and not just a snapshot of the repository at the tag, you would need to generate the artefacts yourself (git archive with
Sure, I can remove |
For the includes issue, I can think of a few ways to resolve it, in no order in particular
|
Changes the Makefiles to add -Iunix for the normal Makefile and -Iwin32 for the mingw one. This makes it easier to change which unifdef.h gets included in unifdef.c without needing to copy or move unifdef.c to the build folder Signed-off-by: Christopher Degawa <ccom@randomderp.com>
For now, I will opt to use the I have removed leaving 3f31c69 so I have a breadcrumb in case I need to go back |
Simple usage example ```bash meson build . ninja -C build ``` Signed-off-by: Christopher Degawa <ccom@randomderp.com>
Also remove references to version.sh Signed-off-by: Christopher Degawa <ccom@randomderp.com>
ping @fanf2 this came up in my work again, so I wanted to revisit adding this again and potentially adding it to msys2's packages |
Is there anything specific this PR is missing, atm? |
Allows for easy {cross-,}compilation for Windows and a lot of other systems
Adds a meson.build file that actually contains the directives for meson and the reversion.sh script written in basic python so it doesn't require a working
sh
Also modifies unifdef.c to use
<unifdef.h>
so it's possible to use-I
to influence where it decides to look for the header instead of looking relative to the file itself.Currently, only supports building and installing
unifdef$(EXE_SUFIX)
and the manpages, but does not support thetest
,realclean
,Changelong
,unifdef.txt
, andrelease
targets yet as those will need additional workto run a basic build,
meson builddir . ninja -C builddir sudo ninja -C builddir install
and that will produce
./builddir/unifdef
and install/usr/local/bin/unifdef
and the man pagesI am thinking of removing the sln file and the Makefile.mingw after I work on making sure there is nothing missing and after adding GitHub Actions