Open aprokop opened 6 days ago
This means that users cannot support both 1.x and 2.x versions in their own code. That's going to be a pain.
How about we conditionally us a version range when cmake is recent enough and we defer the actual update of our cmake minimum requirement?
For the current CMake, we switch to SameMajorVersion
?
This means that users cannot support both 1.x and 2.x versions in their own code. That's going to be a pain.
~Fair point. Do you suggest sticking with AnyNewerVersion
?
Do you envision users wanting to do that? In relation to that, we should probably also provide ARBORX_VERSION
macro to ease code writing depending on ArborX version.~
Actually, I'm not sure exactly what you mean by this. They could do find_package(ArborX REQUIRED)
without specifying version. Depending on what version they find, they could enable/disable their code.
They could do find_package(ArborX REQUIRED) without specifying version
I want to be able to require a minimum version because older versions did not have ray tracing.
I want to be able to require a minimum version because older versions did not have ray tracing.
Why not require ArborX 2.0? Though, that would likely only work for something small like Adamantine. Not sure about deal.II.
Though, that would likely only work for something small like Adamantine. Not sure about deal.II.
Yes, I could live with SameMajorVersion
in adamantine but it's a lot harder in deal.ii with all the dependencies. Someone is going to be stuck using an older version of Trilinos which means they cannot update Arborx, and so they cannot update deal.ii
We are not backwards compatible for version 2.0. Allowing users' 1.x code to build against 2.0 is almost 100% would lead to build failures. Would rather prevent that during configuration.
Switching to
SameMajorVersion
would likely be temporary, for a few 2.x releases, after which we would switch back.An alternative to switching to
SameMajorVersion
would be to update CMake requirements to at least 3.19 (release 11/18/2020, so about a year older than CMake we are using right now) and doThis has a benefit of not having to revisit this again later.
Note:
AnyNewerVersion
was introduced in #984.