-
Notifications
You must be signed in to change notification settings - Fork 10
Install the cmake files to lib/cmake/<PACKAGE_NAME> #36
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
Conversation
8fc9ad3 to
54d0f51
Compare
From an organization point of view: Can this one be merged without the PR in RAIDA or do they have to go in at the same time? |
|
Just found out while trying this out: RAIDA has to go first. |
before the root installation folder. This change works with the existing version of iLCUtil and also with a future change where the Config files are installed to lib/cmake instead of the root of the installation folder. See iLCSoft/iLCUtil#36
before the root installation folder. This change works with the existing version of iLCUtil and also with a future change where the Config files are installed to lib/cmake instead of the root of the installation folder. See iLCSoft/iLCUtil#36
before the root installation folder. This change works with the existing version of iLCUtil and also with a future change where the Config files are installed to lib/cmake instead of the root of the installation folder. See iLCSoft/iLCUtil#36
54d0f51 to
4379230
Compare
|
closing and opening again to re-trigger the previously disabled key4hep workflows |
|
iLCSoft/RAIDA#10 is harmless so let's go ahead with this one and we'll see tomorrow... |
|
Builds went fine and are deployed now, it seems everything is working in the Key4hep stack (Spack) at least. |
BEGINRELEASENOTES
ENDRELEASENOTES
Currently how it works is that the
Config.cmakefiles from packages that use iLCUtil are installed to the top directory. For LCGCMake views, the files in the top level directory do not belong in the view, and while building the stack works fine, building any package that needs to find theseConfig.cmakefiles won't work.I propose to install them to
lib/cmake(usingGNUInstallDirsdoes not work since all the packages that are using the macro would need to have that included and that is not the case right now). This is how the installation folder ends up looking like:Packages that were already looking for the
Config.cmakefile in the top level folder will still find it because they also look inlib/cmake/<PACKAGE_NAME>(*with one exception below). In addition, leaving theDeps.cmakefile underlib/cmakemeans no paths need to be changed in all those packages that hardcode it, see for example https://github.com/iLCSoft/CED/blob/8bcaae8d2c7f4800710d64a0613a1b4555aba6e1/cmake/CEDConfig.cmake.in#L57 or https://github.com/iLCSoft/KalDet/blob/a667b1799f185e3ed201eaec5d40ce9e685d95e5/cmake/KalDetConfig.cmake.in#L61.*The exception is RAIDA. Many packages use
find_package(AIDA), which means they look for theConfig.cmakefiles underlib/cmake/AIDAwhich wouldn't be there unless the installation is changed. In addition,AIDAConfig.cmakehardcodes findingRAIDAConfig.cmaketo some location which would stop working (see https://github.com/iLCSoft/RAIDA/blob/master/cmake/AIDAConfig.cmake.in#L6), so a change would be needed.In summary: This PR, together with one in RAIDA and a change in the installation instructions for RAIDA (for example in the spack recipe), make it possible to make stacks based on views on LCGCMake (probably any view-based stack) work.