DuneMacros.cmake: find_dune_package version check differs from version check in dunecontrol
While looking at dune-localfunctions!117 (closed) we noticed that our buildsystem implements two different version checks:
- dunecontrol uses
check_version(inlib/dunemodules.lib) - cmake has a version check in
find_dune_package(incmake/modules/DuneMacros.cmake)
These version checks differ in several ways:
- dunecontrol allows multiple constraints (e.g.
dune-common (>= 2.7 && < 2.8)), cmake only one - dunecontrol implements
<,>,=,<=and>=; cmake only the last three
In particular the comparison introduced in dune-localfunctions!117 (closed) is only parsed as dune-common (>= 2.7) in cmake; it also fails if additional whitespace is added (i.e. dune-common (>=2.7&&<2.8) works, but dune-common (>= 2.7 && < 2.8) results in a cmake error)