new pkg: py-psana (#37666)
This commit is contained in:
parent
e79a911bac
commit
fa98023375
49
var/spack/repos/builtin/packages/py-psana/package.py
Normal file
49
var/spack/repos/builtin/packages/py-psana/package.py
Normal file
@ -0,0 +1,49 @@
|
||||
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class PyPsana(PythonPackage):
|
||||
"""LCLS II Developement: PSAna Python."""
|
||||
|
||||
homepage = "https://github.com/slac-lcls/lcls2"
|
||||
url = "https://github.com/slac-lcls/lcls2/archive/refs/tags/3.3.37.tar.gz"
|
||||
|
||||
maintainers("valmar")
|
||||
|
||||
version("3.3.37", sha256="127a5ae44c9272039708bd877849a3af354ce881fde093a2fc6fe0550b698b72")
|
||||
|
||||
patch("setup.patch")
|
||||
|
||||
depends_on("py-setuptools", type="build")
|
||||
depends_on("py-cython", type="build")
|
||||
depends_on("py-numpy", type=("build", "run"))
|
||||
depends_on("py-matplotlib", type=("build", "run"))
|
||||
depends_on("py-psalg", type=("build", "run"))
|
||||
depends_on("py-requests", type=("build", "run"))
|
||||
depends_on("py-mpi4py", type=("build", "run"))
|
||||
depends_on("py-pymongo", type=("build", "run"))
|
||||
depends_on("py-amityping", type=("build", "run"))
|
||||
depends_on("py-mypy-extensions", type=("build", "run"))
|
||||
depends_on("py-h5py", type=("build", "run"))
|
||||
depends_on("py-pyzmq", type=("build", "run"))
|
||||
depends_on("py-psmon", type=("build", "run"))
|
||||
depends_on("py-lcls-krtc", type=("build", "run"))
|
||||
depends_on("py-psmon", type=("build", "run"))
|
||||
depends_on("py-ipykernel", type=("build", "run"))
|
||||
depends_on("opencv", type=("build", "run"))
|
||||
depends_on("py-scikit-learn", type=("build", "run"))
|
||||
depends_on("py-pyabel", type=("build", "run"))
|
||||
depends_on("xtcdata", type=("build", "run", "link"))
|
||||
depends_on("psalg", type=("build", "run", "link"))
|
||||
|
||||
build_directory = "psana"
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set("INSTDIR", "{0}".format(self.prefix))
|
||||
env.set("XTCDATADIR", "{0}".format(self.spec["xtcdata"].prefix))
|
||||
env.set("PSALGDIR", "{0}".format(self.spec["psalg"].prefix))
|
171
var/spack/repos/builtin/packages/py-psana/setup.patch
Normal file
171
var/spack/repos/builtin/packages/py-psana/setup.patch
Normal file
@ -0,0 +1,171 @@
|
||||
diff --git a/psana/setup.py b/psana/setup.py
|
||||
index 61412cf6..20ec023b 100644
|
||||
--- a/psana/setup.py
|
||||
+++ b/psana/setup.py
|
||||
@@ -18,6 +18,18 @@ if not instdir_env:
|
||||
raise Exception('Parameter --instdir is missing')
|
||||
instdir = instdir_env
|
||||
|
||||
+xtcdatadir_env = os.environ.get('XTCDATADIR')
|
||||
+if not xtcdatadir_env:
|
||||
+ xtcdatadir = instdir_env
|
||||
+else:
|
||||
+ xtcdatadir = xtcdatadir_env
|
||||
+
|
||||
+psalgdir_env = os.environ.get('PSALGDIR')
|
||||
+if not psalgdir_env:
|
||||
+ psalgdir = instdir_env
|
||||
+else:
|
||||
+ psalgdir = psalgdir_env
|
||||
+
|
||||
# Shorter BUILD_LIST can be used to speedup development loop.
|
||||
#Command example: ./build_all.sh -b PEAKFINDER:HEXANODE:CFD -md
|
||||
BUILD_LIST = ('PSANA','SHMEM','PEAKFINDER','HEXANODE','DGRAM','HSD','CFD','NDARRAY')# ,'XTCAV')
|
||||
@@ -63,6 +75,10 @@ else:
|
||||
openmp_link_args = ['-fopenmp']
|
||||
|
||||
extra_link_args_rpath = extra_link_args + ['-Wl,-rpath,'+ os.path.abspath(os.path.join(instdir, 'lib'))]
|
||||
+if xtcdatadir_env:
|
||||
+ extra_link_args_rpath = extra_link_args_rpath + ['-Wl,-rpath,'+ os.path.abspath(os.path.join(xtcdatadir, 'lib'))]
|
||||
+if psalgdir_env:
|
||||
+ extra_link_args_rpath = extra_link_args_rpath + ['-Wl,-rpath,'+ os.path.abspath(os.path.join(psalgdir, 'lib'))]
|
||||
|
||||
CYT_BLD_DIR = 'build'
|
||||
|
||||
@@ -76,21 +92,38 @@ INSTALL_REQS = []
|
||||
PACKAGE_DATA = {}
|
||||
ENTRY_POINTS = {}
|
||||
|
||||
+if xtcdatadir_env:
|
||||
+ xtc_headers = os.path.join(xtcdatadir, 'include')
|
||||
+ xtc_lib_path = os.path.join(xtcdatadir, 'lib')
|
||||
+else:
|
||||
+ xtc_headers = os.path.join(instdir, 'include')
|
||||
+ xtc_lib_path = os.path.join(instdir, 'lib')
|
||||
+
|
||||
+if psalgdir_env:
|
||||
+ psalg_headers = os.path.join(psalgdir, 'include')
|
||||
+ psalg_lib_path = os.path.join(psalgdir, 'lib')
|
||||
+else:
|
||||
+ psalg_headers = os.path.join(instdir, 'include')
|
||||
+ psalg_lib_path = os.path.join(instdir, 'lib')
|
||||
|
||||
if 'PSANA' in BUILD_LIST :
|
||||
dgram_module = Extension('psana.dgram',
|
||||
sources = ['src/dgram.cc'],
|
||||
libraries = ['xtc'],
|
||||
- include_dirs = ['src', np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs = ['src', np.get_include(), os.path.join(instdir, 'include'), ],
|
||||
+ #library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = ['src', np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
extra_link_args = extra_link_args_rpath,
|
||||
extra_compile_args = extra_cxx_compile_args)
|
||||
|
||||
container_module = Extension('psana.container',
|
||||
sources = ['src/container.cc'],
|
||||
libraries = ['xtc'],
|
||||
- include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ #library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = [np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
extra_link_args = extra_link_args_rpath,
|
||||
extra_compile_args = extra_cxx_compile_args)
|
||||
|
||||
@@ -122,6 +155,7 @@ if 'PSANA' in BUILD_LIST :
|
||||
'xtcavDisplay = psana.xtcav.app.xtcavDisplay:__main__',
|
||||
'shmemClientSimple = psana.app.shmemClientSimple:main',
|
||||
'epix10ka_pedestals_calibration = psana.app.epix10ka_pedestals_calibration:do_main',
|
||||
+ 'epix10ka_charge_injection = psana.app.epix10ka_charge_injection:do_main',
|
||||
'epix10ka_deploy_constants = psana.app.epix10ka_deploy_constants:do_main',
|
||||
'epix10ka_raw_calib_image = psana.app.epix10ka_raw_calib_image:do_main',
|
||||
'epix10ka_calib_components = psana.app.epix10ka_calib_components:__main__',
|
||||
@@ -137,8 +171,10 @@ if 'SHMEM' in BUILD_LIST and sys.platform != 'darwin':
|
||||
ext = Extension('shmem',
|
||||
sources=["psana/shmem/shmem.pyx"],
|
||||
libraries = ['xtc','shmemcli'],
|
||||
- include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ #library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = [np.get_include(), os.path.join(instdir, 'include'), xtc_headers, psalg_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path, psalg_lib_path],
|
||||
language="c++",
|
||||
extra_compile_args = extra_cxx_compile_args,
|
||||
extra_link_args = extra_link_args_rpath,
|
||||
@@ -239,8 +275,10 @@ if 'DGRAM' in BUILD_LIST :
|
||||
#packages=['psana.peakfinder',],
|
||||
sources=["psana/peakFinder/dgramCreate.pyx"],
|
||||
libraries = ['xtc'],
|
||||
- include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ #library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = [np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
language="c++",
|
||||
extra_compile_args = extra_cxx_compile_args,
|
||||
extra_link_args = extra_link_args_rpath,
|
||||
@@ -257,7 +295,11 @@ if 'DGRAM' in BUILD_LIST :
|
||||
|
||||
ext = Extension("psana.smdreader",
|
||||
sources=["psana/smdreader.pyx"],
|
||||
- include_dirs=["psana"],
|
||||
+ libraries = ['xtc'],
|
||||
+ #include_dirs=["psana"],
|
||||
+ #include_dirs = [np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ include_dirs = ["psana", np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
#extra_compile_args=extra_c_compile_args,
|
||||
extra_compile_args=extra_c_compile_args + openmp_compile_args,
|
||||
#extra_link_args=extra_link_args,
|
||||
@@ -284,8 +326,10 @@ if 'DGRAM' in BUILD_LIST :
|
||||
ext = Extension("psana.dgramedit",
|
||||
sources=["psana/dgramedit.pyx"],
|
||||
libraries = ['xtc'],
|
||||
- include_dirs=["psana",np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs=["psana",np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ #library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = ["psana", np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
language="c++",
|
||||
extra_compile_args = extra_cxx_compile_args,
|
||||
extra_link_args = extra_link_args_rpath,
|
||||
@@ -305,8 +349,10 @@ if 'DGRAM' in BUILD_LIST :
|
||||
ext = Extension("psana.dgramlite",
|
||||
sources=["psana/dgramlite.pyx"],
|
||||
libraries = ['xtc'],
|
||||
- include_dirs=["psana",np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs=["psana",np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ #iibrary_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = ["psana", np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
language="c++",
|
||||
extra_compile_args = extra_cxx_compile_args,
|
||||
extra_link_args = extra_link_args_rpath,
|
||||
@@ -316,15 +362,17 @@ if 'DGRAM' in BUILD_LIST :
|
||||
ext = Extension("psana.mypybuffer",
|
||||
sources=["psana/mypybuffer.pyx"],
|
||||
libraries = ['xtc'],
|
||||
- include_dirs=["psana",np.get_include(), os.path.join(instdir, 'include')],
|
||||
- library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ #include_dirs=["psana",np.get_include(), os.path.join(instdir, 'include')],
|
||||
+ #library_dirs = [os.path.join(instdir, 'lib')],
|
||||
+ include_dirs = ["psana", np.get_include(), os.path.join(instdir, 'include'), xtc_headers ],
|
||||
+ library_dirs = [os.path.join(instdir, 'lib'), xtc_lib_path],
|
||||
language="c++",
|
||||
extra_compile_args = extra_cxx_compile_args,
|
||||
- extra_link_args = extra_link_args_rpath,
|
||||
)
|
||||
CYTHON_EXTS.append(ext)
|
||||
|
||||
|
||||
+
|
||||
if 'HSD' in BUILD_LIST :
|
||||
ext = Extension("hsd",
|
||||
sources=["psana/hsd/hsd.pyx"],
|
Loading…
Reference in New Issue
Block a user