Can't compile pytango device server in conda environment (linux) for roperscientific camera plugin
Hi, I tried compiling the roperscientific camera plugin with pytango device server on debian12, in the following conda environment:
mamba create -n lima-roperscientific -c esrf-bcu sip=4.19 processlib libconfig=1.7 zlib lz4-c=1.9.1 hdf5=1.14.3 libtiff openssl=3 libnuma
I took the version numbers from lima/conda/release/meta.yaml, but also tried with the less specific ones mentioned on readthedocs, with the same result.
The compilation succeeds for the roperscientific camera plugin, i.e. with -DLIMA_ENABLE_PYTHON=false -DLIMA_ENABLE_PYTANGO_SERVER=false
. But when I try to build the python modules, I run into errors:
home/labuser/Documents/src/lima/build/camera/roperscientific/sip/siplimaroperscientificpart1.cpp: In function ‘void assign_RoperScientific_Interface(void*, Py_ssize_t, void*)’:
/home/labuser/Documents/src/lima/build/camera/roperscientific/sip/siplimaroperscientificpart1.cpp:779:133: error: use of deleted function ‘lima::RoperScientific::Interface& lima::RoperScientific::Interface::operator=(const lima::RoperScientific::Interface&)’
779 | reinterpret_cast< ::RoperScientific::Interface *>(sipDst)[sipDstIdx] = *reinterpret_cast< ::RoperScientific::Interface *>(sipSrc);
| ^
In file included from /home/labuser/Documents/src/lima/camera/roperscientific/sip/RoperScientificInterface.sip:6:
/home/labuser/Documents/src/lima/camera/roperscientific/include/RoperScientificInterface.h:26:30: note: ‘lima::RoperScientific::Interface& lima::RoperScientific::Interface::operator=(const lima::RoperScientific::Interface&)’ is implicitly deleted because the default definition would be ill-formed:
26 | class LIBROPERSCIENTIFIC_API Interface: public HwInterface
| ^~~~~~~~~
/home/labuser/Documents/src/lima/camera/roperscientific/include/RoperScientificInterface.h:26:30: error: non-static reference member ‘lima::RoperScientific::Camera& lima::RoperScientific::Interface::m_cam’, cannot use default assignment operator
I'm afraid I don't know what to do with this error. Do you have a working linux build environment for this camera plugin with pytango DS? Or could you even provide a conda package for this detector? These are highly appreciated and make deployment so much easier...
Many thanks and kind regards!
Here is the cmake output before building:
Click to expand
cmake .. -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=../install -DPYTHON_SITE_PACKAGES_DIR=../install/python -DLIMACAMERA_ROPERSCIENTIFIC=true -DLIMA_ENABLE_TIFF=true -DLIMA_ENABLE_PYTHON=true -DLIMA_ENABLE_PYTANGO_SERVER=true -DCMAKE_CXX_FLAGS=-I\ /home/labuser/Documents/src/lima/camera/roperscientific/include\ -I\ /home/labuser/Documents/src/lima/camera/roperscientific/sdk/linux/include
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc-11 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++-11 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GIT_VERSION: 1.10.1
-- PROJECT_VERSION: 1.10.1
-- PACKAGE_VERSION: 1.10.1
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- GIT_VERSION: 1.9.0
-- PROJECT_VERSION: 1.9.0
-- PACKAGE_VERSION: 1.9.0
-- Found GSL: /home/labuser/miniforge3/envs/lima-roperscientific/include (found version "2.2.1")
-- Found PythonInterp: /home/labuser/miniforge3/envs/lima-roperscientific/bin/python (found version "3.10.14")
-- Found PythonLibs: /home/labuser/miniforge3/envs/lima-roperscientific/lib/libpython3.10.so (found version "3.10.14")
-- Found SIP version: 4.19.25
-- Found NumPy: /home/labuser/miniforge3/envs/lima-roperscientific/lib/python3.10/site-packages/numpy/core/include
-- Found components for NumPy
-- NUMPY_ROOT_DIR = /home/labuser/Documents/src/lima/install
-- NUMPY_INCLUDE_DIRS = /home/labuser/miniforge3/envs/lima-roperscientific/lib/python3.10/site-packages/numpy/core/include
-- NUMPY_LIBRARIES =
-- NUMPY_API_VERSION = 1.26.4
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found components for NumPy
-- NUMPY_ROOT_DIR = /home/labuser/Documents/src/lima/install
-- NUMPY_INCLUDE_DIRS = /home/labuser/miniforge3/envs/lima-roperscientific/lib/python3.10/site-packages/numpy/core/include
-- NUMPY_LIBRARIES =
-- NUMPY_API_VERSION = 1.26.4
-- Found SIP version: 4.19.25
-- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.5.0")
#####################################
/home/labuser/Documents/src/lima/build
#####################################
-- GIT_VERSION: 1.10.0
-- PROJECT_VERSION: 1.10.0
-- PACKAGE_VERSION: 1.10.0
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
CMake Warning (dev) at cmake/LimaTools.cmake:27 (message):
limatools_set_library_soversion is DEPRECATED: check the camera plugin
template to update your CMakeFile to use git tags instead.
Call Stack (most recent call first):
camera/roperscientific/CMakeLists.txt:81 (limatools_set_library_soversion)
This warning is for project developers. Use -Wno-dev to suppress it.
-- GIT_VERSION: 1.9.2
-- PROJECT_VERSION: 1.9.2
-- PACKAGE_VERSION: 1.9.2+10+gae42e60
-- Configuring done
-- Generating done
-- Build files have been written to: /home/labuser/Documents/src/lima/build