-
Notifications
You must be signed in to change notification settings - Fork 4
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
Problems building dependent packages #10
Comments
@tmadlener, one of my colleagues (@greenc-FNAL) noticed recently that I made an implicit assumption about MPD--namely, it really only works right now for developing dependent packages that are using the Cetmodules build system, which alters some of the CMake behavior to make inter-package development possible. I did not intend to limit MPD to only packages using Cetmodules, so I'd like to find a way to fix this. Stay tuned. |
Just to add a bit more information to this after playing around a bit. I think in this case the problem is not only related to how What does work is using the include(ExternalProject)
ExternalProject_Add(podio
SOURCE_DIR /path/to/podio
CMAKE_ARGS <whatever-cmake-args>
)
ExternalProject_Add(EDM4HEP
SOURCE_DIR /path/to/EDM4hep
CMAKE_ARGS
<whatever-cmake-args>
-Dpodio_DIR=/podio-install-prefix/lib/cmake/podio # This is rather brittle
DEPENDS podio
) NB:
As you can see dependency management probably get's complicated this way. This also has the following issues that would require additional work:
|
@tmadlener, thanks for the extra info. I was just about to update this issue. I've verified that MPD can be adjusted to instruct CMake where to find the (e.g.) CMake Error at /home/knoepfel/scratch/test-edm4hep/build/podio/podioConfig.cmake:29 (message):
File or directory /home/knoepfel/scratch/include referenced by variable
podio_INCLUDE_DIR does not exist !
Call Stack (most recent call first):
/home/knoepfel/scratch/test-edm4hep/build/podio/podioConfig.cmake:45 (set_and_check)
edm4hep/CMakeLists.txt:12 (find_package) The error occurring simply because |
This might again be just me not fully understanding the concept yet, but maybe it's also the way the packages are structured and depend on each other.
I tried to make a minimal non-trivial test by building
podio
andEDM4hep
.EDM4hep
depends onpodio
, as that provides the code generator and some libraries that it links against.I did the following:
spack mpd-project -T $(pwd)/edm4hep-minimal --name edm4hep-minimal cxxstd=20 %[email protected]
edm4hep-minimal/srcs
(making sure to lowercase them to make match the names spack expects)spack mpd refresh
spack env activate edm4hep-minimal/local
spack mpd build
With this I run into the following issue:
I am not sure I fully understand yet why this happens, as
podioConfig.cmake
andpodioConfigVersion.cmake
are present in thepodio
build folder:Is this a podio issue (not being completely fetch-content-able) or is this something that can be fixed in
spack-mpd
?The text was updated successfully, but these errors were encountered: