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
ninja/meson #10043
ninja/meson #10043
Conversation
edit: resolved, issue was related to uclibc++.mk and TARGET_CXX_NOCACHE, but as it turns out, ninja can't be built against uClibc++ I'm unsure where the build failure comes from:
Seems to work on my end?
|
be90516
to
893ca37
Compare
cc @thess who is the maintainer of the packages you propose to switch for meson build system introduced by this PR. |
I feel that a better way would be to introduce switch to meson in separate PR. |
I doubt uClibc++ can be used here. It's a C++98 library. C++11 or later is probably what's used. |
scons was just recently removed from host tools and moved to packages feed by 7087efd and openwrt/openwrt@60eb0e8 authored by @ynezz , so I think that devs have differing opinions on the approach regarding additional build tools ... |
updated:
|
I'm fairly confused on the issue of _HOST vs. _HOSTPKG. On IRC I've been told something equivalent to "_HOST should be used by packages in the tools/ directory". If we look at this tree, including this PR, we get
while _HOSTPKG has this:
edit: From looking at the packages, softethervpn, iotivity, and *odbc are most likely in the wrong. No comment on the others. |
dc2a06c
to
4e87457
Compare
I got the a similar response on irc. updated:
|
ping @jow- |
updated:
host builds were tested with 0001-XXX-meson-host-test.patch.txt @thess did you give this a try yet? |
updated:
|
Here's a tree that includes #10043 #10113 and above mentioned host build test patch. |
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.
I'm sorry I haven't paid enough attention these proposed changes. I am probably not going to have a chance to try/verify/review these packages in the near future. In fact, if someone else wants to take over maintainer-ship of MPD and friends, I have no objections. As it stands for the foreseeable future, my attention to these packages will be minimal if at all.
Dealing with packages requiring little used (at least here) build tools needs to be addressed so that packages like MPD can more forward without us having to maintain alternative builds (eg autotools). So... whatever you guys decide if fine with me.
Oh... well, if noone steps forward I guess I can take over mpd related packages for a while. How to we proceed with this MR? I'm happy with it, the foundation is there and it works nicely for me for #10052. For other packages we may need more features, but that can be dealt with as issues pop up. Another candidate to test drive this glib2, since v2.59.0 is the last version supporting autotools. @tripolar did you try this yet to build newer versions using meson? |
AFAIK the odd glib releases are unstable ones. |
updated:
|
I can update libsoup, grilo, and grilo-plugins once there exists an example of "porting" a package to use the project's Meson-based build. @neheb, glib2 2.59 is indeed a development version, but the subsequent 2.60 and 2.62 series also use Meson. |
@flyn-org have a look at |
Actually...why does the target build depend on the host build? |
Ninja is built using itself. It has a |
Edit: wrong issue, idiotic github login redirected to the wrong one |
PKG_RELEASE:=1 | ||
|
||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | ||
PKG_SOURCE_URL:=https://codeload.github.com/ninja-build/ninja/tar.gz/v$(PKG_VERSION)? |
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.
codeload should not be used directly. The normal release tarball listed under releases is preferred.
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.
Ok, I switched meson to that, but the ninja releases are different it seems. The link on the github releases redirects to codeload (curl "https://github.com/ninja-build/ninja/archive/v1.9.0.tar.gz"|xxd
) and that fails to download, so I kept codeload there.
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.
That seems bizarre. Note that https://github.com/ninja-build/ninja/archive/v1.9.0/ninja-1.9.0.tar.gz works. Well, it redirects to that codeload link. I'd just leave it.
This adds a host as well as a target package. ninja.mk is provided to execute ninja. The two patches have been taken from upstream to fix compile issues. Signed-off-by: Andre Heider <a.heider@gmail.com>
This adds a host as well as a target package. meson.mk is provided to build packages using meson. Signed-off-by: Andre Heider <a.heider@gmail.com>
Let's just get this in here. No point in delaying. |
Nice, thanks! |
Fantastic! This allows us to update a number of packages in OpenWrt that have been awaiting Meson, e.g., #10433. Thank you to everyone involved, especially @dhewg and also @br101 and @ja-pa for their earlier work. Discussion and work continued for over a year---I am grateful for the persistence displayed to get this done. |
Somehow CMake is not detected by Meson when trying to build libinput-1.14.3 :(
|
What do you need cmake for? As far as I understand, it's used as a fallback if a dependency is not found via pkg-config. Does libinput have a dependency without pkg-config support? |
What about to add it to |
No opposition from me. That being said, nothing in 19.07 requires it currently. In other news, I opened up an issue regarding uClibc++: ninja-build/ninja#1684 It's only the hash map feature that's the problem. |
This adds ninja/meson as host as well as target packages.
ninja.mk/meson.mk are provided for packages to use these tools, see the comments there how to use it.
libmpdclient/mpc are switched over from the gross autotools hack to meson. No further changes, but this should unblock updating the packages as well as sound/mpd.
Tested on boneblack and cubieboard2 (where one meson cross file is created per target in the host staging dir).
not tested:
c++ lib != libstdcppdone, ninja can only be built against libstdcppmeson builds where native tools are built and executed during the buildmost likely done, added support for host packages, which uses the same confignot done:
ccachedone, workscc:
@br101 @ja-pa (earlier attempts openwrt/openwrt#2147 openwrt/openwrt#2312
@ynezz (handling the earlier attempts)
@diizzyy (using ninja with cmake)
@tstenner @lucize @flyn-org @neilwhelchel (building packages using meson)
@thess (libmpdclient/mpc/mpd maintainer)