openPMD-api: pre-load depend libs (#12279)

When loading `openpmd-api` as a lib to build outside of
spack or to build depending spack packages, the "CMake-PUBLIC"
header-only library MPark.Variant must be available. Also,
the `*Config.cmake` package must be able to find dependent
libs if used.
This commit is contained in:
Axel Huebl 2019-08-05 14:02:23 -05:00 committed by GitHub
parent 5560d5b601
commit 3457dffdca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -92,3 +92,26 @@ def cmake_args(self):
args.append('-DopenPMD_USE_INTERNAL_CATCH:BOOL=OFF')
return args
def setup_environment(self, spack_env, run_env):
spec = self.spec
# pre-load dependent CMake-PUBLIC header-only libs
run_env.prepend_path('CMAKE_PREFIX_PATH', spec['mpark-variant'].prefix)
run_env.prepend_path('CPATH', spec['mpark-variant'].prefix.include)
# more deps searched in openPMDConfig.cmake
if spec.satisfies("+mpi"):
run_env.prepend_path('CMAKE_PREFIX_PATH', spec['mpi'].prefix)
if spec.satisfies("+adios1"):
run_env.prepend_path('CMAKE_PREFIX_PATH', spec['adios'].prefix)
if spec.satisfies("+adios2"):
run_env.prepend_path('CMAKE_PREFIX_PATH', spec['adios2'].prefix)
if spec.satisfies("+hdf5"):
run_env.prepend_path('CMAKE_PREFIX_PATH', spec['hdf5'].prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# pre-load dependent CMake-PUBLIC header-only libs
spack_env.prepend_path('CMAKE_PREFIX_PATH',
self.spec['mpark-variant'].prefix)
spack_env.prepend_path('CPATH',
self.spec['mpark-variant'].prefix.include)