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