-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
WIP: Add support for building subprojects with other build systems #4321
Conversation
c85decc
to
cbb058e
Compare
cbb058e
to
0516056
Compare
Almost no project is relocatable. That is, they are only guaranteed to work if installed to their final resting place such as under Further this is an "environment setup" kind of action, not a build action. |
@jpakkane When doing Again, here we don't have to provide any guarantee, we can just provide a tool that works in some limited scope. Like, for now, we can already use pkgconfig files from there. I don't think we should reject a feature that makes 90% of the use-cases easier, just because we could theoretically think about cases where it won't work.
Meson is about making life of developers easier. Ignoring the reality that not all project of the world use meson is not going to help anyone. |
btw, if this is an "environment setup" kind of action, then we can just drop completely the whole concept of subprojects. That's a ton of code in meson that only setup your environment. You can just install each of them manually in the prefix. |
Wouldn't the installed projects' pkg-config files point to the wrong place (i.e. the DESTDIRless install dir) and thus the output would not be usable because the libraries are not there? |
That can be fixed by setting PKG_CONFIG_SYSROOT_DIR, my PR does that. |
Ok, changed my mind about generating a |
0516056
to
87996bc
Compare
9c9618b
to
f74c058
Compare
Here is an example of
And this is to build AOM, a cmake project:
Both are working pretty well in gst-build. |
950538e
to
713ab48
Compare
c1435f7
to
88610b5
Compare
5ac8480
to
07cf0fe
Compare
50afd16
to
54c4804
Compare
54c4804
to
e871519
Compare
e871519
to
bf9da83
Compare
With this extra patch, I successfully cross compiled ffmpeg for Android with gst-build. |
bf9da83
to
88eb5f9
Compare
88eb5f9
to
5843a82
Compare
87244e9
to
2018929
Compare
2018929
to
4c3f118
Compare
Sometimes the subproject's build system is simple enough that it can be done in a single meson.build at the root of the subproject's directory. In that case it is overkill to create a tarball. This will be especially important when we'll support building projects with other build systems than meson, the subproject's meson.build could consist only of a few lines calling into external build systems.
This adds an experimental meson module to build projects with other build systems. Closes: mesonbuild#4316
4c3f118
to
8139770
Compare
This ensures that external project uses the same pkg-config environment as meson, with the addition of meson-uninstalled directory to be able to depend on libraries built by meson itself.
Let's close this PR, I'll open a new one with revisited code. |
8139770
to
659b171
Compare
For those interested, let's continue there: #6920. |
This adds an experimental meson module to build projects with other
build systems (atm only configure/make). The project will be configured,
compiled and installed inside meson's build directory and during meson's
configuration phase.