Commit ab44da36 authored by Alejandro Homs Puron's avatar Alejandro Homs Puron

* Added Espia support for ESRF/Linux 1.x - RedHat EL 4

* Allow strict (Core/Espia) dependency version linkage
  based on [LIMA_]LINK_STRICT_VERSION variable (from config.inc)
* Added TANGO EnvHelper to pre-fetch Lima.Core environment through
  auxiliary Python/TANGO subprocesses
* Read LIMA_LINK_STRICT_VERSION and CORE/ESPIA_VERSION files in
  target sub-modules to ensure the correct plugin dependency versioning
* In TACO, ensure that Lima.Frelon is loaded before Lima.Core
parent d00e2744
taco @ e6ec7098
Subproject commit 1e05f6e30f90caa48ef24755bafa56b39673204f
Subproject commit e6ec7098945d7692cc234a691b3c7f702fed6e9b
tango @ 95b56779
Subproject commit 998510eed96ea2ee21e796fd35b4f8e8baba6c47
Subproject commit 95b56779f01b87c096c1227c9a7646b9aed6c75d
This diff is collapsed.
adsc @ 3c76683e
Subproject commit 45b98d78bfa4e379797efebf6cd15c050807b0f2
Subproject commit 3c76683e849ef9e850818513395a56c41cc758bd
andor @ 297a0578
Subproject commit 0d283168989b9ca272bc2f81b417b8f5ca1a1452
Subproject commit 297a05787af4ee228c38e1718be73fdb38cf4dbc
basler @ a41cc590
Subproject commit 187227fa38ca6f63a1ce5c2af8f1ae2679dde256
Subproject commit a41cc59003651fe90b675be389c06b5dbb5b47db
espia @ 1b8e87a9
Subproject commit d60e3aab7aec2255e0d0675d0708f0e8b90e0d3f
Subproject commit 1b8e87a9d0f47212897d0f1ee3ab653e64a24bcd
frelon @ 61f571ed
Subproject commit a6e5283de94984a6115fbac378d5dcf40ccb9bfe
Subproject commit 61f571ed660362d353a1a33075f0af335975b5a3
maxipix @ 47c0efca
Subproject commit c65cc467cda585c2f9c8c1e93135770d0e0d0402
Subproject commit 47c0efca287c034b8fb44227069b1babf3ab4324
mythen @ 2e1123f6
Subproject commit 189f88257b7ba1160204f55f042d4c25041b6071
Subproject commit 2e1123f6876066434c55d6de8055b664943f1aad
pilatus @ a9bd8cb7
Subproject commit 1289fedb276066b792c259dd6aec061285392be5
Subproject commit a9bd8cb7bf0170040f8132761eb4cdbeff7fb0f0
prosilica @ 71ab39a6
Subproject commit 396ed9cb3aafdd3f52ae1a09cb0f819a4a23d8a5
Subproject commit 71ab39a6b9bbae4ffbd442ee63352e8e7b7bf722
roperscientific @ 3c06bf3a
Subproject commit 5e1b9daeb55b9e5561b3da997e658b10a1ca8f49
Subproject commit 3c06bf3a7b32d354f18ffa914784dd5a3c7f6e3a
......@@ -42,6 +42,7 @@ if version.upper() == 'LAST':
version_dirs = [x for x in os.listdir(root_name) if x.startswith('v')]
version_dirs.sort(version_cmp)
version = version_dirs[-1]
del version_dirs, x
else:
if version[0] != 'v':
version = 'v' + version
......@@ -50,6 +51,13 @@ mod_path = os.path.join(root_name, version)
if not (os.path.isdir(mod_path) or os.path.islink(mod_path)):
raise ImportError('Invalid %s: %s' % (env_var_name, req_version))
if os.environ['LIMA_LINK_STRICT_VERSION'] == 'FULL':
core_version_fname = os.path.join(mod_path, 'CORE_VERSION')
core_version_file = open(core_version_fname, 'rt')
core_version = core_version_file.readline().strip()
os.environ['LIMA_CORE_VERSION'] = core_version
del core_version_fname, core_version_file, core_version
__path__.append(mod_path)
ld_open_flags = sys.getdlopenflags()
......@@ -60,6 +68,6 @@ globals().update(_S.__dict__)
sys.setdlopenflags(ld_open_flags)
del root_name, mod_name, mod_path, x, env_var_name
del version, req_version, version_dirs, version_code, version_cmp
del root_name, mod_name, mod_path, env_var_name
del version, req_version, version_code, version_cmp
del os, sys, imp, glob, DLFCN
ueye @ 5caf5407
Subproject commit c6e930b606d47c7c2489a17dec6cc4937c94d557
Subproject commit 5caf54073e181297104de3f4abca9b62f6f3a114
xpad @ dbaaf8cd
Subproject commit 85ca51ee8df6ad859b5ac80c41ba460b994b3456
Subproject commit dbaaf8cd8a0fb2a2334fdfb4e4b1f007fab69324
import sys
from Lima import processlib as Processlib
sys.modules['processlib'] = sys.modules['Lima.processlib']
sys.modules['Lima.processlib'] = None
from Lima.limacore import *
sys.modules['limacore'] = sys.modules['Lima.limacore']
sys.modules['Lima.limacore'] = None
from Lima.Debug import *
......@@ -31,9 +31,9 @@ def version_cmp(x, y):
return cmp(version_code(x), version_code(y))
env_var_name = 'LIMA_%s_VERSION' % mod_name.upper()
try:
version = os.environ[env_var_name]
except KeyError:
if env_var_name in os.environ:
version = os.environ[env_var_name]
else:
version = 'LAST'
req_version = version
......@@ -42,6 +42,7 @@ if version.upper() == 'LAST':
version_dirs = [x for x in os.listdir(root_name) if x.startswith('v')]
version_dirs.sort(version_cmp)
version = version_dirs[-1]
del version_dirs, x
else:
if version[0] != 'v':
version = 'v' + version
......@@ -63,6 +64,6 @@ sys.setdlopenflags(ld_open_flags)
sys.path.remove(mod_path)
del root_name, mod_name, mod_path, x, env_var_name, ld_open_flags
del version, req_version, version_dirs, version_code, version_cmp
del root_name, mod_name, mod_path, env_var_name, ld_open_flags
del version, req_version, version_code, version_cmp
del os, sys, imp, glob, DLFCN
......@@ -39,9 +39,10 @@ COMPILE_ANDOR=0
COMPILE_PHOTONICSCIENCE=0
COMPILE_CBF_SAVING=0
COMPILE_NXS_SAVING=0
LINK_STRICT_VERSION=1
export COMPILE_CORE COMPILE_SPS_IMAGE COMPILE_SIMULATOR \
COMPILE_ESPIA COMPILE_FRELON COMPILE_MAXIPIX COMPILE_PILATUS \
COMPILE_BASLER COMPILE_PROSILICA COMPILE_ROPERSCIENTIFIC COMPILE_ADSC \
COMPILE_MYTHEN COMPILE_UEYE COMPILE_XPAD COMPILE_PERKINELMER \
COMPILE_ANDOR COMPILE_PHOTONICSCIENCE \
COMPILE_CBF_SAVING COMPILE_NXS_SAVING
COMPILE_CBF_SAVING COMPILE_NXS_SAVING LINK_STRICT_VERSION
......@@ -46,73 +46,72 @@ INSTALL_INCLUDE_DIR = $(INSTALL_PLAT_DIR)/include
INSTALL_PKG_CONFIG_DIR = $(INSTALL_LIB_DIR)/pkgconfig
INSTALL_CONFIG_DEFINES =
ifeq ($(LINK_STRICT_VERSION),0)
ENV_LINK_STRICT_VER = 'MAJOR'
else
ENV_LINK_STRICT_VER = 'FULL'
endif
GLOB_PYTHON_ENV = \(os.environ\['LIMA_LINK_STRICT_VERSION'\][ \t]*=[ \t]*\)
GLOB_PYTHON_INIT_SED = "s/$(GLOB_PYTHON_ENV)'[A-Z]\+'/\1$(ENV_LINK_STRICT_VER)/"
ifneq ($(COMPILE_CORE), 0)
INSTALL_CORE_DIR = $(INSTALL_PLAT_DIR)/Core
CORE_FULL_VERSION = $(shell cat common/VERSION)
CORE_MAJ_VERSION = $(shell echo $(CORE_FULL_VERSION) | cut -d. -f1)
INSTALL_CORE_VDIR = $(INSTALL_CORE_DIR)/v$(CORE_FULL_VERSION)
endif
ifneq ($(COMPILE_SIMULATOR), 0)
INSTALL_SIMU_DIR = $(INSTALL_PLAT_DIR)/Simulator
SIMU_FULL_VERSION = $(shell cat camera/simulator/VERSION)
SIMU_MAJ_VERSION = $(shell echo $(SIMU_FULL_VERSION) | cut -d. -f1)
INSTALL_SIMU_VDIR = $(INSTALL_SIMU_DIR)/v$(SIMU_FULL_VERSION)
endif
ifneq ($(COMPILE_ESPIA), 0)
INSTALL_ESPIA_DIR = $(INSTALL_PLAT_DIR)/Espia
ESPIA_FULL_VERSION = $(shell cat camera/common/espia/VERSION)
ESPIA_MAJ_VERSION = $(shell echo $(ESPIA_FULL_VERSION) | cut -d. -f1)
INSTALL_ESPIA_VDIR = $(INSTALL_ESPIA_DIR)/v$(ESPIA_FULL_VERSION)
endif
ifneq ($(COMPILE_FRELON), 0)
INSTALL_FRELON_DIR = $(INSTALL_PLAT_DIR)/Frelon
FRELON_FULL_VERSION = $(shell cat camera/frelon/VERSION)
FRELON_MAJ_VERSION = $(shell echo $(FRELON_FULL_VERSION) | cut -d. -f1)
INSTALL_FRELON_VDIR = $(INSTALL_FRELON_DIR)/v$(FRELON_FULL_VERSION)
endif
ifneq ($(COMPILE_MAXIPIX), 0)
INSTALL_MAXIPIX_DIR = $(INSTALL_PLAT_DIR)/Maxipix
MAXIPIX_FULL_VERSION = $(shell cat camera/maxipix/VERSION)
MAXIPIX_MAJ_VERSION = $(shell echo $(MAXIPIX_FULL_VERSION) | cut -d. -f1)
INSTALL_MAXIPIX_VDIR = $(INSTALL_MAXIPIX_DIR)/v$(MAXIPIX_FULL_VERSION)
endif
ifneq ($(COMPILE_PILATUS), 0)
INSTALL_PILATUS_DIR = $(INSTALL_PLAT_DIR)/Pilatus
PILATUS_FULL_VERSION = $(shell cat camera/pilatus/VERSION)
PILATUS_MAJ_VERSION = $(shell echo $(PILATUS_FULL_VERSION) | cut -d. -f1)
INSTALL_PILATUS_VDIR = $(INSTALL_PILATUS_DIR)/v$(PILATUS_FULL_VERSION)
endif
ifneq ($(COMPILE_BASLER), 0)
INSTALL_BASLER_DIR = $(INSTALL_PLAT_DIR)/Basler
BASLER_FULL_VERSION = $(shell cat camera/basler/VERSION)
BASLER_MAJ_VERSION = $(shell echo $(BASLER_FULL_VERSION) | cut -d. -f1)
INSTALL_BASLER_VDIR = $(INSTALL_BASLER_DIR)/v$(BASLER_FULL_VERSION)
endif
ifneq ($(COMPILE_PROSILICA), 0)
INSTALL_PROSILICA_DIR = $(INSTALL_PLAT_DIR)/Prosilica
PROSILICA_FULL_VERSION = $(shell cat camera/prosilica/VERSION)
PROSILICA_MAJ_VERSION = $(shell echo $(PROSILICA_FULL_VERSION) | cut -d. -f1)
INSTALL_PROSILICA_VDIR = $(INSTALL_PROSILICA_DIR)/v$(PROSILICA_FULL_VERSION)
endif
ifneq ($(COMPILE_ROPERSCIENTIFIC), 0)
INSTALL_ROPERSCIENTIFIC_DIR = $(INSTALL_PLAT_DIR)/RoperScientific
ROPERSCIENTIFIC_FULL_VERSION = $(shell cat camera/roperscientific/VERSION)
ROPERSCIENTIFIC_MAJ_VERSION = $(shell echo $(ROPERSCIENTIFIC_FULL_VERSION) | cut -d. -f1)
INSTALL_ROPERSCIENTIFIC_VDIR = $(INSTALL_ROPERSCIENTIFIC_DIR)/v$(ROPERSCIENTIFIC_FULL_VERSION)
endif
ifneq ($(COMPILE_ADSC), 0)
INSTALL_ADSC_DIR = $(INSTALL_PLAT_DIR)/Adsc
ADSC_FULL_VERSION = $(shell cat camera/adsc/VERSION)
ADSC_MAJ_VERSION = $(shell echo $(ADSC_FULL_VERSION) | cut -d. -f1)
INSTALL_ADSC_VDIR = $(INSTALL_ADSC_DIR)/v$(ADSC_FULL_VERSION)
endif
......@@ -120,28 +119,24 @@ endif
ifneq ($(COMPILE_MYTHEN), 0)
INSTALL_MYTHEN_DIR = $(INSTALL_PLAT_DIR)/Mythen
MYTHEN_FULL_VERSION = $(shell cat camera/mythen/VERSION)
MYTHEN_MAJ_VERSION = $(shell echo $(MYTHEN_FULL_VERSION) | cut -d. -f1)
INSTALL_MYTHEN_VDIR = $(INSTALL_MYTHEN_DIR)/v$(MYTHEN_FULL_VERSION)
endif
ifneq ($(COMPILE_UEYE), 0)
INSTALL_UEYE_DIR = $(INSTALL_PLAT_DIR)/Ueye
UEYE_FULL_VERSION = $(shell cat camera/ueye/VERSION)
UEYE_MAJ_VERSION = $(shell echo $(UEYE_FULL_VERSION) | cut -d. -f1)
INSTALL_UEYE_VDIR = $(INSTALL_UEYE_DIR)/v$(UEYE_FULL_VERSION)
endif
ifneq ($(COMPILE_ANDOR), 0)
INSTALL_ANDOR_DIR = $(INSTALL_PLAT_DIR)/Andor
ANDOR_FULL_VERSION = $(shell cat camera/andor/VERSION)
ANDOR_MAJ_VERSION = $(shell echo $(ANDOR_FULL_VERSION) | cut -d. -f1)
INSTALL_ANDOR_VDIR = $(INSTALL_ANDOR_DIR)/v$(ANDOR_FULL_VERSION)
endif
ifneq ($(COMPILE_XPAD), 0)
INSTALL_XPAD_DIR = $(INSTALL_PLAT_DIR)/Xpad
XPAD_FULL_VERSION = $(shell cat camera/xpad/VERSION)
XPAD_MAJ_VERSION = $(shell echo $(XPAD_FULL_VERSION) | cut -d. -f1)
INSTALL_XPAD_VDIR = $(INSTALL_XPAD_DIR)/v$(XPAD_FULL_VERSION)
endif
......@@ -164,7 +159,8 @@ PROCESSOR_TYPE := $(shell uname -i)
install:
mkdir -p $(INSTALL_LIMA_DIR)
cp python/__init__.py $(INSTALL_LIMA_DIR)
sed $(GLOB_PYTHON_INIT_SED) python/__init__.py > \
$(INSTALL_LIMA_DIR)/__init__.py
mkdir -p $(INSTALL_LIB_DIR)
mkdir -p $(INSTALL_INCLUDE_DIR)
mkdir -p $(INSTALL_PKG_CONFIG_DIR)
......@@ -182,8 +178,6 @@ ifneq ($(COMPILE_CORE), 0)
cp -d third-party/Processlib/build/libprocesslib.so* $(INSTALL_LIB_DIR)
cp third-party/Processlib/sip/processlib.so $(INSTALL_CORE_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimacore.so*
#cp build/liblimacore.so.$(CORE_FULL_VERSION) $(INSTALL_LIB_DIR)
#cp -d build/liblimacore.so.$(CORE_MAJ_VERSION) $(INSTALL_LIB_DIR)
cp -d build/liblimacore.so* $(INSTALL_LIB_DIR)
cp sip/core/limacore.so $(INSTALL_CORE_VDIR)
cp common/python/Debug.py $(INSTALL_CORE_VDIR)
......@@ -197,6 +191,7 @@ endif
ifneq ($(COMPILE_SIMULATOR), 0)
mkdir -p $(INSTALL_SIMU_VDIR)
cp camera/simulator/python/__init__.py $(INSTALL_SIMU_DIR)
cp camera/simulator/python/CORE_VERSION $(INSTALL_SIMU_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimasimulator.so*
cp -d build/liblimasimulator.so* $(INSTALL_LIB_DIR)
cp sip/simulator/limasimulator.so $(INSTALL_SIMU_VDIR)
......@@ -205,6 +200,7 @@ endif
ifneq ($(COMPILE_ESPIA), 0)
mkdir -p $(INSTALL_ESPIA_VDIR)
cp camera/common/espia/python/__init__.py $(INSTALL_ESPIA_DIR)
cp camera/common/espia/python/CORE_VERSION $(INSTALL_ESPIA_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaespia.so*
cp -d build/liblimaespia.so* $(INSTALL_LIB_DIR)
cp sip/espia/limaespia.so $(INSTALL_ESPIA_VDIR)
......@@ -213,6 +209,7 @@ endif
ifneq ($(COMPILE_FRELON), 0)
mkdir -p $(INSTALL_FRELON_VDIR)
cp camera/frelon/python/__init__.py $(INSTALL_FRELON_DIR)
cp camera/frelon/python/ESPIA_VERSION $(INSTALL_FRELON_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimafrelon.so*
cp -d build/liblimafrelon.so* $(INSTALL_LIB_DIR)
cp sip/frelon/limafrelon.so $(INSTALL_FRELON_VDIR)
......@@ -222,6 +219,7 @@ endif
ifneq ($(COMPILE_MAXIPIX), 0)
mkdir -p $(INSTALL_MAXIPIX_VDIR)
cp camera/maxipix/python/__init__.py $(INSTALL_MAXIPIX_DIR)
cp camera/maxipix/python/ESPIA_VERSION $(INSTALL_MAXIPIX_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimamaxipix.so*
cp -d build/liblimamaxipix.so* $(INSTALL_LIB_DIR)
cp sip/maxipix/limamaxipix.so $(INSTALL_MAXIPIX_VDIR)
......@@ -231,12 +229,14 @@ endif
ifneq ($(COMPILE_PILATUS), 0)
mkdir -p $(INSTALL_PILATUS_VDIR)
cp camera/pilatus/python/__init__.py $(INSTALL_PILATUS_DIR)
cp camera/pilatus/python/CORE_VERSION $(INSTALL_PILATUS_VDIR)
cp camera/pilatus/python/*.py $(INSTALL_PILATUS_VDIR)
cp camera/pilatus/include/*.h $(INSTALL_INCLUDE_DIR)
endif
ifneq ($(COMPILE_BASLER), 0)
mkdir -p $(INSTALL_BASLER_VDIR)
cp camera/basler/python/__init__.py $(INSTALL_BASLER_DIR)
cp camera/basler/python/CORE_VERSION $(INSTALL_BASLER_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimabasler.so*
cp -d build/liblimabasler.so* $(INSTALL_LIB_DIR)
cp sip/basler/limabasler.so $(INSTALL_BASLER_VDIR)
......@@ -245,6 +245,7 @@ endif
ifneq ($(COMPILE_PROSILICA), 0)
mkdir -p $(INSTALL_PROSILICA_VDIR)
cp camera/prosilica/python/__init__.py $(INSTALL_PROSILICA_DIR)
cp camera/prosilica/python/CORE_VERSION $(INSTALL_PROSILICA_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaprosilica.so*
rm -rf $(INSTALL_LIB_DIR)/libPvAPI.so
cp -d build/liblimaprosilica.so* $(INSTALL_LIB_DIR)
......@@ -268,6 +269,7 @@ endif
ifneq ($(COMPILE_ROPERSCIENTIFIC), 0)
mkdir -p $(INSTALL_ROPERSCIENTIFIC_VDIR)
cp camera/roperscientific/python/__init__.py $(INSTALL_ROPERSCIENTIFIC_DIR)
cp camera/roperscientific/python/CORE_VERSION $(INSTALL_ROPERSCIENTIFIC_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaroperscientific.so*
cp -d build/liblimaroperscientific.so* $(INSTALL_LIB_DIR)
cp sip/roperscientific/limaroperscientific.so $(INSTALL_ROPERSCIENTIFIC_VDIR)
......@@ -277,6 +279,7 @@ endif
ifneq ($(COMPILE_ADSC), 0)
mkdir -p $(INSTALL_ADSC_VDIR)
cp camera/adsc/python/__init__.py $(INSTALL_ADSC_DIR)
cp camera/adsc/python/CORE_VERSION $(INSTALL_ADSC_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaadsc.so*
cp -d build/liblimaadsc.so* $(INSTALL_LIB_DIR)
cp sip/adsc/limaadsc.so $(INSTALL_ADSC_VDIR)
......@@ -288,6 +291,7 @@ endif
ifneq ($(COMPILE_MYTHEN), 0)
mkdir -p $(INSTALL_MYTHEN_VDIR)
cp camera/mythen/python/__init__.py $(INSTALL_MYTHEN_DIR)
cp camera/mythen/python/CORE_VERSION $(INSTALL_MYTHEN_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimamythen.so*
cp -d build/liblimamythen.so* $(INSTALL_LIB_DIR)
cp sip/mythen/limamythen.so $(INSTALL_MYTHEN_VDIR)
......@@ -297,6 +301,7 @@ endif
ifneq ($(COMPILE_UEYE), 0)
mkdir -p $(INSTALL_UEYE_VDIR)
cp camera/ueye/python/__init__.py $(INSTALL_UEYE_DIR)
cp camera/ueye/python/CORE_VERSION $(INSTALL_UEYE_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaueye.so*
cp -d build/liblimaueye.so* $(INSTALL_LIB_DIR)
cp sip/ueye/limaueye.so $(INSTALL_UEYE_VDIR)
......@@ -305,6 +310,7 @@ endif
ifneq ($(COMPILE_ANDOR), 0)
mkdir -p $(INSTALL_ANDOR_VDIR)
cp camera/andor/python/__init__.py $(INSTALL_ANDOR_DIR)
cp camera/andor/python/CORE_VERSION $(INSTALL_ANDOR_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaandor.so*
cp -d build/liblimaandor.so* $(INSTALL_LIB_DIR)
cp sip/andor/limaandor.so $(INSTALL_ANDOR_VDIR)
......@@ -314,6 +320,7 @@ endif
ifneq ($(COMPILE_XPAD), 0)
mkdir -p $(INSTALL_XPAD_VDIR)
cp camera/xpad/python/__init__.py $(INSTALL_XPAD_DIR)
cp camera/xpad/python/CORE_VERSION $(INSTALL_XPAD_VDIR)
rm -rf $(INSTALL_LIB_DIR)/liblimaxpad.so*
cp -d build/liblimaxpad.so* $(INSTALL_LIB_DIR)
cp sip/xpad/limaxpad.so $(INSTALL_XPAD_VDIR)
......
......@@ -40,8 +40,9 @@ if get_os is not None:
lima_plat = os.path.join(root_name, plat)
__path__.insert(0, lima_plat)
import Core
# This mandatory variable is systematically overwritten by 'make install'
os.environ['LIMA_LINK_STRICT_VERSION'] = 'FULL'
if get_os is not None:
all_dirs = os.listdir(lima_plat)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment