-
Notifications
You must be signed in to change notification settings - Fork 112
[RFC] meson: replace GNU Make-based build system with Meson #150
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
base: master
Are you sure you want to change the base?
Conversation
335f648 to
bfe3ebe
Compare
bfe3ebe to
78a6c6e
Compare
|
The changes require some refinement, as I haven't added the checkpatch target yet. Additionally, I need to address an issue with the VERSION option in older versions of Meson (UPDATE: FIXED, old versions of meson require options to be listed in the file The motivation for this change was a @lumag suggestion in #148 @lumag @andersson FYI |
ece3d85 to
5dacf18
Compare
|
Should I just keep a minimal Makefile wrapper for all these meson commands, so users accustomed to the make command can continue using it? |
7a19347 to
ef74bd4
Compare
No need to |
|
Windows build also fails when running in CI; however, it works on my local PC. I probably need more time to investigate and experiment with the CI pipelines here (UPDATE: FIXED) |
10c9107 to
65e4b92
Compare
|
@lumag all issues are fixed, added checkpatch targets |
6f9925d to
57ec45a
Compare
|
Why? What problem does switching to meson solve? |
|
@andersson The motivation for this change originated from another PR, #148, and suggestions there to explore better solutions like Meson |
57ec45a to
a069a7d
Compare
|
Also makes it possible to easily build a static qdl with |
|
I suppose the proposed cleanup of build output, provided by #148, was nice. I don't see the benefit of building debug and release builds in that fashion. I presume meson would handle that better for us - without having "make all" build the project twice. But I'm not convinced about the benefits. Perhaps I just don't know the capabilities of meson well enough? But are we just trading some clutter in the source directory for the addition of two new dependencies? @z3ntu tell me more, when do you use this? Regarding the change itself, it should contain the motivation for the change. It should be possible for someone to look back at this PR, or the git log, and understand why we did choose to completely replace the build system. |
|
@andersson Just some of my observations.:
Given that the project is rapidly growing, meson will help us in future to automate what makes us micromanage |
a069a7d to
50092e0
Compare
|
Rebased onto the latest master |
50092e0 to
0e8c7da
Compare
|
@andersson @lumag If there’s anything else you think should be adjusted or improved, I’m happy to address it - just let me know. |
e5a9ba9 to
33c10c7
Compare
|
Updated PR to include |
33c10c7 to
9336892
Compare
Replaces the legacy GNU Make–based build system with a modern,
cross-platform Meson.
* Added meson.build files defining all three executables:
- qdl
- qdl-ramdump
- ks
* Replicated original Makefile logic:
- Source file lists and dependency linking (libusb-1.0, libxml-2.0)
- Platform-specific link options (-lws2_32 on Windows)
- Automatic version.h generation using git describe,
with fallback to $VERSION or "unknown-version"
- Recreated tests integration via Meson’s test() function,
including support for script arguments (e.g. --builddir)
Usage:
$ meson setup build
$ meson compile -C build
$ meson test -C build
$ meson compile check -C build
Signed-off-by: Igor Opaniuk <[email protected]>
Provide meson instructions instead of GNU-make for building/testing qdl. Signed-off-by: Igor Opaniuk <[email protected]>
9336892 to
06f8e25
Compare
Replaces the legacy GNU Make–based build system with a modern, cross-platform Meson.
To build QDL and run tests: