-
Notifications
You must be signed in to change notification settings - Fork 27
Raise CMake minimum version req to 3.5 (lowest still supported by >=CMake-4) #32
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
base: 3.6
Are you sure you want to change the base?
Conversation
…Make-4) Signed-off-by: Andreas Sturmlechner <[email protected]>
There are a few potential problems here, which is why we've not done this already:
All this isn't necessarily to say this PR isn't something we want (although it'll need to enable exports at least under Clang for all the applications and examples to work around the CMP0065 regression), just that it needs an abundance of caution, and if we can think of a more reliable way to avoid problems, it might be preferable. |
Thanks a lot for your reply. I hope we can work out those problems, along with silencing more warnings in current cmake output, with more eyes on the PR. The primary workaround to avoid a CMake error w/ >=CMake-4 for other distributions will be simply setting OSG upstream's inactivity has already lead to another fork: https://gitlab.com/flightgear/openscenegraph This is very unfortunate for distributions who are faced with namespace colliding libs and ending up dealing with the same issues in multiple packages ... They have already bumped to 3.20 though, and their repository could be skimmed for related fallout fixes, even if they are more agressively disabling stuff they don't need. |
If packagers make changes without testing them properly and it breaks their packages, that's their own responsibility and not something that OpenMW's maintainers have to end up dealing with. We still have the option of recommending people use CMake 3.x. Project-specific forks aren't generally a good candidate to install system-wide, and should really be installed to their own directory or kept as part of the build system of the project that uses them. E.g. the Fedora package for OpenMW statically links this fork to avoid conflicting with the upstream OSG package. |
Packagers very often do not have that choice, and chances of that increase over time and spread of conflicting build system version ranges preferred by upstreams. Already, we need to discourage other upstreams to choose CMake 4 as minimum version, which if simply accepted as-is, ultimately leads to a hard decision on which packages to kick out of a repository in order to keep the others. |
And that's those packager's problem, not the OpenMW team's problem, whereas if we're the ones carrying the version bump that breaks something, it would be our problem. We'll try and make things easy for packagers within reason, but certain configurations will always be at the packager's own risk because we don't have the resources to confirm they work. |
And do you prefer to do this fully on your own pace, without any outside input? Please note that filing a PR does not mean I expect it to be merged the next day, verbatim, either. But one of these days another packager may come along, look over and test the change, and with combined CMake build system experience, we can get something done that eventually may be merged. |
Signed-off-by: Andreas Sturmlechner <[email protected]>
Signed-off-by: Andreas Sturmlechner <[email protected]>
Help is welcome, but it's important to keep in mind that once something's in our repos, it's got an implicit promise of some level of functionality and support from us that a downstream packager's patches wouldn't have, so we need to have a higher standard of being sure things work before we merge them than a downstream packager does. If someone submits a patch to us as their first contribution and it turns out to break something, they might have disappeared forever by the time it's discovered, and then we're on the hook to investigate it and fix it. |
No description provided.