-
Notifications
You must be signed in to change notification settings - Fork 921
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
dnsdist: Install binary, man page and systemd unit files with meson #15138
Conversation
Pull Request Test Coverage Report for Build 13304780866Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
Hmm, right, it worked locally because I already had a |
No immediate clue myself either, but I can take a look as well if you want. |
I tried to get out of this corner by using |
I pushed a new version using |
This commit moves to `custom_target` to build the man pages since we don't want to have to explicitely run a different meson command to build them. As opposed to `run_target`, `custom_target` does not have access to the build and source roots via env variables, so the man pages generation script now takes these as required parameters.
This commit moves to `custom_target` to build the man pages since we don't want to have to explicitely run a different meson command to build them. As opposed to `run_target`, `custom_target` does not have access to the build and source roots via env variables, so the man pages generation script now takes these as required parameters.
This commit moves to `custom_target` to build the man pages since we don't want to have to explicitely run a different meson command to build them. As opposed to `run_target`, `custom_target` does not have access to the build and source roots via env variables, so the man pages generation script now takes these as required parameters.
e0d1a7f
to
42b922a
Compare
For dnsdist on macOS, the generation of the man pages works with the diff below (might be because of my specific python version)
But the install step says:
|
FFS. |
Yeah, struggled with that a lot when I did meson.build for rec. |
I'll sleep on it but at this point I'm no longer sure I want to move to meson. |
A agree that the custom target stuff is ugly, but in general I'm pretty happy with meson. |
I worked around the limitation for now, I think.
I still prefer meson to autotools, but right now I have the same feeling than with |
I see a warning on install with meson version 1.6.1:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works here (there's a warning in the dnsdist install case, see other comment). Rec and auth install targets are not complete yet, but that can be done separately.
The original design behind this came from the meson project lead's frustration with, IIRC, trying to debug cmake builds where a build rule in one directory created outputs in another directory, while the other directory had its own build file that had entirely different, unrelated logic. There was no mapping from the place where a target is created to where it was originally defined so it was perceived as extremely difficult to figure out what the definition of such a target even was. There is an RFC design discussion to relax this in meson to allow subdirectories in outputs without allowing scribbling all over another build file's scope. Still need to write the code for that, though. :( |
Thanks, it should be fixed now! |
I 100% agree that this is a good rule to have, it totally makes sense for new projects. Having the ability to relax it to deal with existing design choices (bad ones, no question there, so I don't blame |
You can always get it done at the "small" cost of defining the build rule itself in lib/foo.h for internal use, but installed as foo/foo.h, foo/config.h, foo/util.h and that's how downstream consumers are expected to write their includes. It is thus impossible to use that as a subproject dependency fallback without somehow "installing" the headers, and that usually means creating a foo/meson.build that copies the headers into a more The other common use case I hear about is also related to headers :) but in the form of code generators that produce structured outputs with internally-consistent includes in a free format. Protobuf etc. Meson has |
Short description
Checklist
I have: