Open tmadlener opened 3 years ago
Arguments for going to cmake > 3.15: https://cmake.org/cmake/help/latest/policy/CMP0094.html#policy:CMP0094
https://github.com/iLCSoft/LCIO/pull/132#issuecomment-832071129 for two more points:
FindPython
to detect pythonBUILD_TESTING
option is considered for all testsSome more considerations for the choice of the minimum required cmake version: https://github.com/iLCSoft/LCIO/pull/132#issuecomment-832555662
This remark fits to this issue, but feel free to open a separate one: I noticed that the two files LCIOConfig.cmake and LCIOConfigVersion.cmake end up after 'make install' in
Yes, definitely part of this issue. I need to find some time to finalize #140 and then this should also be fixed.
When I build latest version v2-20-2, LCIOConfig.cmake
is placed under lib/cmake/LCIO/LCIOConfig.cmake
and SIOTargets.cmake
goes into lib/cmake/SIO/SIOTargets.cmake
(notice the different directories). This leads to the problem when LCIOConfig.cmake
around line 75 looks for SIOTargets.cmake
in the line include("${CMAKE_CURRENT_LIST_DIR}/SIOTargets.cmake")
. Of course the easiest way for fix would be to hard-code SIO path as include("${CMAKE_CURRENT_LIST_DIR}/.../SIO//SIOTargets.cmake")
but I'm sure, there is a more elegant way, I'm just not so familiar with CMake.
I have moved your issue (@jan-busa) into a separate one, because I this one is much broader and more work in general than solving yours (I hope)
The cmake configuration of several ilcsoft packages is pretty old and could potentially profit from exploiting newer cmake functionalities and in general newer cmake paradigms, e.g. target based configurations. Since LCIO is at the very base of everything, it could serve as a good starting point to check what would need changing and could then serve as an example for other packages as well.
A few points that should be decided/considered beforehand:
XXX_LIBRARIES
,XXX_INCLUDE_DIRS
approach can co-exist (see, e.g. SIO, so that it should be possible to update this package by package without breaking everything while updating.A more modern cmake configuration has the potential to make some of the cmake macros that are part of ilcsoft obsolete, as cmake can now handle many things for which these macros were originally designed by itself. To which degree we can remove these macros is hard to estimate and will be something we find out along the way.
Other TODOs (keeping them here because then they show up as X of Y in the overview):
FindPython
to detect pythonBUILD_TESTING
option is considered for all tests