-
Notifications
You must be signed in to change notification settings - Fork 165
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
Some fixes to cmake files #79
Conversation
These stem from CMake behaviour changes. The given changes in |
The warnings are a bit noisy when they are enabled. I have no idea if it is normal to individually turn them off like this. We can drop this on if you think it is better? |
Sorry, for stringing you by, but I'm currently occupied with an university project. I think I might be able to further review this at the weekend. W.r.t. requiring a newer cmake version I did some research a few months a go:
So from my POV 3.13.4 would be fine. However, I really would like to hear from other cmake users first 😅 like @madebr, @dotnwat or @vglavnyy |
@BurningEnlightenment I've taken your updates, squashed and force pushed. It works well for me. Thanks for reviewing. |
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.
@aklomp I think this is ready to be merged
(I think a sane quality gate going forward would be two approvals from contributors who made substantial cmake contributions)
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.
Edit: in reference to 8abb204a
This commit really needs some more explanation in the commit body about why the tests are being disabled. Without context, I have no clue why this change was made, and my inclination is to reject it.
b3c2979 contains install commands for all test binaries, because yocto (the package manager used by htot) won't pick them up otherwise which in turn is desirable if you want to verify that your cross compiled binaries work. However, in the general case library consumers don't need the test binaries at all i.e. they are bloat and not worth to be compiled or installed. So I thought we should make the majority use case the default and put the configuration burden on the developing minority. Alternatively we can add another config option which controls whether the test binaries will be installed or not and turn that off by default instead. |
I believe as a default, the idea is only the library is built. But with the cmake gui you can change these defaults during configure (as well as turn on openmp, turn off sse4 etc). For me, the Yocto recipe overrides all defaults and builds everything, so the defaults don't matter. And then everything is packaged into it's respective deb package (-dev, -dbg, -tools etc.). To clarify: Yocto is a project that builds tools to build distributions. Similar that Debian has a large set of tools to build/test/package/deploy to repositories. Except Yocto builds your distribution. The base tool is So, let's say you have some device with embedded linux, the image could be built with |
@BurningEnlightenment When you put it like that, it makes total sense. If the user is running The commit would be much better if it included that reasoning, because the commit is the output of this process, and also the artifact that reflects the change. It should strive to be self-describing. |
@htot Thanks for clarifying your use-case a bit. I'm slightly familiar with Yocto and have run into it in the past when trying to recompile some software for an embedded board. Man, what a monster, I much prefer Buildroot :) |
I'll fix up the commits based on above discussion. @aklomp Yes, I heard buildroot is more lightweight. And I don't like python. But it really is a brilliant piece of work. It sometimes makes me wonder why Suse/Redhat/Debian don't ditch their own tooling and collaborate on this :-) I case you wonder, my recipe is here. As you can see, it pulls from aklomp/master, applies my patches (for now). As it uses |
See https://cliutils.gitlab.io/modern-cmake/chapters/packages/OpenMP.html Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
CMake `3.9` introduced the library target `OpenMP::OpenMP_C` which is way more portable than the old compiler flag based approach. Due to the required version bump we surveyed the available CMake versions on widely used OS distributions. Considering 3.10.2 is oldest suported in Ubuntu 18.04 LTS (EOL april 2023): https://packages.ubuntu.com/search?keywords=cmake we choose `3.10.2` as the new required version which only excludes RHEL7. https://lists.llvm.org/pipermail/llvm-dev/2020-April/140578.html
Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
8d0674e contains install commands for all test binaries. This is convenient for tools like Yocto to pick them up and package them. However, in the general case library consumers don't need the test binaries at all do not need to be compiled or installed. Signed-off-by: Ferry Toth <ftoth@exalondelft.nl> Signed-off-by: Henrik Gaßmann <BurningEnlightenment@users.noreply.github.com>
Co-authored-by: Henrik Gaßmann <BurningEnlightenment@users.noreply.github.com> Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
I think I resolved all comments now and set Kate to always removing training white spaces. I squashed the 2 commits and added suggestions to commit messages. Thanks all for review. |
Thanks @htot. I'll merge this patchset, but I do think it's a bit messy:
Thanks everyone for contributing! |
Hi,
Here are some fixes after the recent pull of cmake support.
My motherboard i7-4770 @ 3.4 GHz DDR1600 died, I won't be able to update these. I could provide a set on i7-10700 CPU @ 2.90GHz DDR4 3200?