-
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
Add tests requirements #260
Conversation
b84f1a2
to
ebaae6b
Compare
Will wash away failures on unsupported compilers from the regression board
ebaae6b
to
09c4f96
Compare
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.
LGTM. Thanks!
@stefanseefeld Shall we target this for our Boost 1.70 milestone? |
Sidenote: Your jamfiles have |
@Kojoley how would you suggest we express requirements ? |
@mloskot even though I would like to add this (as well as some / cleanup) into master, I'm afraid that this could trigger some failures, and thus affect the release schedule. It doesn't have any effect on the (user-visible) code, so I don't think it's urgent. |
@Kojoley Yes, I'm aware and @pdimov was pointing it out that our Jamfile needs clean-up (e.g. #149) @stefanseefeld The thing is, AFAIU, this PR actually fixes a known issue for the Boost regression matrix (#149) |
You should not force compiler standard flags from the tests, it will prevent you from testing higher standard versions, just skip the test via requirements or do nothing based on Boost.Config macros. The |
Yes, the idea is clear and I also try to achieve it in the CMake config, https://github.com/boostorg/gil/blob/develop/CMakeLists.txt#L26 and I planned to explore it further to get clear about exactly the same question as @stefanseefeld is asking earlier. Here is what I've learned so far:
But, is 1. and 2. enough to express minimum required version? |
In most cases the things Config and Predef provide should be enough. You can always write a check that will satisfy your particular requirements.
I am not an expert in CMake, but seems you are doing it wrong. It is the same thing as just setting |
Good.
I do not wish to write any custom checks, if that is what you suggest. The goal of this build configuration is as simple as this:
All other aspects, if any, are low priority. If, however, anyone feels anything else should be improved, great, then PRs are welcome.
I disagree. I would have been doing it wrong if there were public targets defined for use by GIL users.
Yes, it is and there is nothing wrong with that there. GIL's CMake config is not a pure modern CMake, yet. Regardless if it is modern or not, it is dedicated to those who wish build GIL tests and examples, and this config is not supposed to export anything to public or be well-behave interacting with any external CMake config. Shortly, it is purely for internal development purposes. Setting |
Actually I am not even sure what was your question, so the answer was broad.
Just remember that by not respecting platform defaults you are making troubles for package maintainers. |
Your points are clear and valid, in general. They just do not apply to GIL (not to its current setup; until we've got Boost official CMake, etc.) |
@Kojoley I should have clarified my point better. The current build configurations in GIL are for development purposes, for convenience of contributors. They are not free from hacks and they could follow best practices more. It's just that 1) it has not been my priority to improve it; 2) I have failed myself to see where or how to improve it (I know the CMake deserves modernisation though). I do not claim the current build configurations are optimal. If you know where to improve the build configs and if you are willing to help out, awesome, please do! |
Not a full list of used features, but it should be enough. Will wash away failures on unsupported compilers from the regression board.
References