From 3457dffdcad54a2f7d95aa7bf3215fd6e94d910d Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Mon, 5 Aug 2019 14:02:23 -0500 Subject: 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. --- .../repos/builtin/packages/openpmd-api/package.py | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index ccda775a1c..91084ba468 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -92,3 +92,26 @@ class OpenpmdApi(CMakePackage): 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) -- cgit v1.2.3-70-g09d2