...
 
Commits (1117)
......@@ -19,3 +19,12 @@ install
/test.sh
*_test.py
~*vcproj
*.tmp
/.cproject
/.pydevproject
/.settings
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
scripts/config.txt
build/
stages:
- build
- deploy
.build-conda: &build-conda
stage: build
artifacts:
paths:
- dist/
tags:
- conda
build-linux:
<<: *build-conda
script:
- git submodule update --init --recursive third-party/bitshuffle
- conda build ./conda/debug --prefix-length=80 --output-folder=dist/ --channel=http://bcu-ci.esrf.fr/stable
- conda build ./conda/release --prefix-length=80 --output-folder=dist/ --channel=http://bcu-ci.esrf.fr/stable
tags:
- linux
build-win:
<<: *build-conda
script:
- git submodule update --init --recursive third-party/bitshuffle
- call conda build ./conda/debug --prefix-length=80 --output-folder=dist/ --channel=http://bcu-ci.esrf.fr/stable
- call conda build ./conda/release --prefix-length=80 --output-folder=dist/ --channel=http://bcu-ci.esrf.fr/stable
tags:
- win
deploy-devel:
stage: deploy
environment:
name: devel/$CI_COMMIT_REF_NAME
url: http://bcu-ci.esrf.fr/devel
dependencies:
- build-linux
- build-win
script:
- cp -Rf dist/* /conda-devel/
- conda index /conda-devel/
tags:
- conda
- linux
only:
- branches
except:
- stable
when: manual
deploy-stable:
stage: deploy
environment:
name: production
url: http://bcu-ci.esrf.fr/stable
dependencies:
- build-linux
- build-win
script:
- cp -Rf dist/* /conda/
- conda index /conda/
tags:
- conda
- linux
only:
- tags
- stable
[submodule "third-party/CBFLib"]
path = third-party/CBFLib
url = git://git.epn-campus.eu/repositories/CBFlib.git
[submodule "third-party/Sps"]
path = third-party/Sps
url = git://git.epn-campus.eu/repositories/Sps.git
url = git://github.com/esrf-bliss/Sps
[submodule "third-party/Processlib"]
path = third-party/Processlib
url = git://github.com/esrf-bliss/Processlib.git
url = ../Processlib
[submodule "camera/basler"]
path = camera/basler
url = git://github.com/esrf-bliss/Lima-camera-basler
url = ../Lima-camera-basler
[submodule "applications/spec"]
path = applications/spec
url = git://github.com/esrf-bliss/Lima-spec
url = ../Lima-spec
[submodule "camera/pco"]
path = camera/pco
url = git://github.com/esrf-bliss/Lima-camera-pco
url = ../Lima-camera-pco
[submodule "camera/pilatus"]
path = camera/pilatus
url = git://github.com/esrf-bliss/Lima-camera-pilatus
[submodule "applications/tango"]
path = applications/tango
url = git://github.com/esrf-bliss/Lima-tango
url = ../Lima-camera-pilatus
[submodule "camera/maxipix"]
path = camera/maxipix
url = git://github.com/esrf-bliss/Lima-camera-maxipix
[submodule "documentation"]
path = documentation
url = git://github.com/esrf-bliss/Lima-documentation
url = ../Lima-camera-maxipix
[submodule "camera/frelon"]
path = camera/frelon
url = git://github.com/esrf-bliss/Lima-camera-frelon
url = ../Lima-camera-frelon
[submodule "camera/common/espia"]
path = camera/common/espia
url = git://github.com/esrf-bliss/Lima-camera-common-espia
[submodule "applications/taco"]
path = applications/taco
url = git://github.com/esrf-bliss/Lima-taco
[submodule "third-party/yat"]
path = third-party/yat
url = git://git.epn-campus.eu/repositories/yat
url = ../Lima-camera-common-espia
[submodule "camera/prosilica"]
path = camera/prosilica
url = git://github.com/esrf-bliss/Lima-camera-prosilica
url = ../Lima-camera-prosilica
[submodule "camera/xpad"]
path = camera/xpad
url = git://github.com/esrf-bliss/Lima-camera-xpad
url = ../Lima-camera-xpad
[submodule "camera/marccd"]
path = camera/marccd
url = git://github.com/esrf-bliss/Lima-camera-marccd
url = ../Lima-camera-marccd
[submodule "camera/adsc"]
path = camera/adsc
url = git://github.com/esrf-bliss/Lima-camera-adsc
url = ../Lima-camera-adsc
[submodule "camera/roperscientific"]
path = camera/roperscientific
url = git://github.com/esrf-bliss/Lima-camera-roperscientific
url = ../Lima-camera-roperscientific
[submodule "camera/mythen"]
path = camera/mythen
url = git://github.com/esrf-bliss/Lima-camera-mythen
url = ../Lima-camera-mythen
[submodule "camera/ueye"]
path = camera/ueye
url = git://github.com/esrf-bliss/Lima-camera-ueye
url = ../Lima-camera-ueye
[submodule "camera/perkinelmer"]
path = camera/perkinelmer
url = git://github.com/esrf-bliss/Lima-camera-perkinelmer
url = ../Lima-camera-perkinelmer
[submodule "camera/andor"]
path = camera/andor
url = git://github.com/esrf-bliss/Lima-camera-andor
url = ../Lima-camera-andor
[submodule "camera/photonicscience"]
path = camera/photonicscience
url = git://github.com/esrf-bliss/Lima-camera-photonicscience
[submodule "third-party/CCfits"]
path = third-party/CCfits
url = git://git.epn-campus.eu/repositories/CCfits
[submodule "third-party/cfitsio"]
path = third-party/cfitsio
url = git://git.epn-campus.eu/repositories/cfitsio
url = ../Lima-camera-photonicscience
[submodule "camera/rayonixhs"]
path = camera/rayonixhs
url = git://github.com/esrf-bliss/Lima-camera-rayonixhs
url = ../Lima-camera-rayonixhs
[submodule "camera/andor3"]
path = camera/andor3
url = git://github.com/esrf-bliss/Lima-camera-andor3.git
[submodule "third-party/libconfig"]
path = third-party/libconfig
url = git://github.com/esrf-bliss/libconfig.git
url = ../Lima-camera-andor3
[submodule "camera/pointgrey"]
path = camera/pointgrey
url = git://github.com/esrf-bliss/Lima-camera-pointgrey.git
url = ../Lima-camera-pointgrey
[submodule "camera/xh"]
path = camera/xh
url = git://github.com/esrf-bliss/Lima-camera-xh
url = ../Lima-camera-xh
[submodule "camera/imxpad"]
path = camera/imxpad
url = git://github.com/esrf-bliss/Lima-camera-imxpad
url = ../Lima-camera-imxpad
[submodule "camera/dexela"]
path = camera/dexela
url = git://github.com/esrf-bliss/Lima-camera-dexela.git
url = ../Lima-camera-dexela
[submodule "camera/xspress3"]
path = camera/xspress3
url = ../Lima-camera-xspress3
[submodule "camera/ultra"]
path = camera/ultra
url = ../Lima-camera-ultra
[submodule "third-party/gldisplay"]
path = third-party/gldisplay
url = ../gldisplay
[submodule "camera/aviex"]
path = camera/aviex
url = ../Lima-camera-aviex
[submodule "camera/merlin"]
path = camera/merlin
url = ../Lima-camera-merlin
[submodule "camera/mythen3"]
path = camera/mythen3
url = ../Lima-camera-mythen3
[submodule "camera/hamamatsu"]
path = camera/hamamatsu
url = ../Lima-camera-hamamatsu
[submodule "camera/v4l2"]
path = camera/v4l2
url = ../Lima-camera-v4l2
[submodule "applications/tango/python"]
path = applications/tango/python
url = ../Lima-tango-python
[submodule "applications/tango/cpp"]
path = applications/tango/cpp
url = git://github.com/esrf-bliss/Lima-tango-cpp
[submodule "camera/eiger"]
path = camera/eiger
url = ../Lima-camera-eiger
[submodule "camera/pixirad"]
path = camera/pixirad
url = ../Lima-camera-pixirad
[submodule "camera/hexitec"]
path = camera/hexitec
url = ../Lima-camera-hexitec
[submodule "camera/slsdetector"]
path = camera/slsdetector
url = ../Lima-camera-slsdetector
[submodule "third-party/bitshuffle"]
path = third-party/bitshuffle
url = git://github.com/kiyo-masui/bitshuffle
[submodule "camera/lambda"]
path = camera/lambda
url = ../Lima-camera-lambda
[submodule "camera/fli"]
path = camera/fli
url = ../Lima-camera-fli
[submodule "camera/zwo"]
path = camera/zwo
url = ../Lima-camera-zwo
[submodule "camera/simulator"]
path = camera/simulator
url = ../Lima-camera-simulator.git
[submodule "camera/common/meta"]
path = camera/common/meta
url = ../Lima-camera-meta.git
[submodule "camera/qhyccd"]
path = camera/qhyccd
url = ../Lima-camera-qhyccd
sudo: required
language: cpp
git:
submodules: false
services:
- docker
before_install:
- docker pull esrfbliss/lima-ci-debian8
- docker run --name lima-ci-docker -v $(pwd):/root/Lima -dit esrfbliss/lima-ci-debian8
script:
- echo "Lima code in Lima/, cloning only processlib sbmodule"
- docker exec lima-ci-docker /bin/sh -c 'unset https_proxy && unset http_proxy && cd /root && ./install_lima_submodule'
- echo "Compilation of limacore with python and tests as options."
- docker exec lima-ci-docker /bin/sh -c 'cd /root/Lima/ && ./install.sh python tests'
- echo "Executing tests in cmake-build repository"
- docker exec lima-ci-docker /bin/sh -c 'cd /root/Lima/build/ && ctest --timeout 10'
after-script:
- docker stop lima-ci-docker
- docker rm lima-ci-docker
branches:
only:
- cmake
The LIMA team (lima@esrf.fr)
The LIMA team, ESRF, Grenoble, France
---------------------------------------
Alejandro Homs Puron
Sebastien Petitdemange
Laurent Claustre
Roberto Homs-Regojo
Emmanuel Papillon
Tiago Coutinho
Aitor Henry
Cyril Guilloud
Yves Watier
Assen Kirov
Contributors
-------------
Florent Langlois, SOLEIL Synchrotron, Paris, France
Arafat Noureddine, SOLEIL Synchrotron, Paris, France
Serge Cohen, SOLEIL Synchrotron, Paris, France
Maria-Teresa Nunez Pardo de Vera, DESY laboratory, Hambourg, Germany
Geoff Mant, STFC Daresbury Laboratory, Warrington, UK
Jordi Andreu, ALBA Synchrotron, Barcelona, Spain
Andrea Parenti, European XFEL, Hamburg, Germany
Alexander Lenz, MLZ, Germany
Andreas Persson, MAXLAB Laboratory, Lund, Sweden
Sebastien Gara, Nexeya, France
Justin Anderson, Rayonix L.L.C, Evanston, Illinois, USA
Julien Cristau, Logilab, France
Philippe Pepiot, Logilab, France
Yann Voté, Cristau, Logilab, France
Sebastien Petitdemange (ESRF)
Alejandro Homs Puron (ESRF)
Emmanuel Papillon (ESRF)
Laurent Claustre (ESRF)
Assen Kirov (ESRF)
Florent Langlois (SOLEIL)
Arafat Noureddine (SOLEIL)
This diff is collapsed.
Type ./install.sh --help for instructions.
# Set install dir for SIP files and CMake packages
set(SIP_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/sip/lima)
set(CMAKE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/cmake/lima)
if(NOT LIMA_BUILD_SUBMODULES)
# Generate and install package config file and version
set(PROJECT_LIBRARIES limacore h5bshuf)
include(cmake/package_config.cmake)
include(cmake/components_config.cmake)
endif()
install(
TARGETS limacore
EXPORT "${TARGETS_EXPORT_NAME}"
COMPONENT runtime
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # import library
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so files are libraries
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} # .dll files are binaries
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # this does not actually install anything (but used by downstream projects)
)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.h
${CMAKE_CURRENT_BINARY_DIR}/limacore_export.h
COMPONENT devel
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lima
)
install(
DIRECTORY ${CMAKE_SOURCE_DIR}/common/include/
COMPONENT devel
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h"
)
install(
DIRECTORY ${CMAKE_SOURCE_DIR}/hardware/include/
COMPONENT devel
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h"
)
install(
DIRECTORY ${CMAKE_SOURCE_DIR}/control/include/
COMPONENT devel
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h"
)
install(
DIRECTORY ${CMAKE_SOURCE_DIR}/control/software_operation/include/
COMPONENT devel
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h"
)
if(NOT LIMA_BUILD_SUBMODULES)
install(
FILES ${CMAKE_SOURCE_DIR}/cmake/checksipexc.py
${CMAKE_SOURCE_DIR}/cmake/FindNumPy.cmake
${CMAKE_SOURCE_DIR}/cmake/FindSIP.cmake
${CMAKE_SOURCE_DIR}/cmake/FindSIP.py
${CMAKE_SOURCE_DIR}/cmake/SIPMacros.cmake
${CMAKE_SOURCE_DIR}/cmake/sip_init_numpy.cpp.in
${CMAKE_SOURCE_DIR}/cmake/package_config.cmake
${CMAKE_SOURCE_DIR}/cmake/components_config.cmake
${CMAKE_SOURCE_DIR}/cmake/project_version.cmake
${CMAKE_SOURCE_DIR}/cmake/project_version.cc.in
${CMAKE_SOURCE_DIR}/cmake/project_version.h.in
${CMAKE_SOURCE_DIR}/cmake/LimaTools.cmake
COMPONENT tools
DESTINATION ${CMAKE_INSTALL_DIR}
)
endif()
if(LIMA_ENABLE_PYTHON)
install(
DIRECTORY python/Lima/
COMPONENT sip
DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/Lima")
file(GLOB SIP_SOURCES
"${CMAKE_SOURCE_DIR}/common/sip/*.sip"
"${CMAKE_SOURCE_DIR}/common/sip/*.sip"
"${CMAKE_SOURCE_DIR}/hardware/sip/*.sip"
"${CMAKE_SOURCE_DIR}/control/sip/*.sip"
"${CMAKE_SOURCE_DIR}/control/software_operation/sip/*.sip")
if(NOT LIMA_BUILD_SUBMODULES)
install(
FILES ${SIP_SOURCES}
${CMAKE_CURRENT_BINARY_DIR}/sip/limacore.sip
${CMAKE_SOURCE_DIR}/sip/limamodules.sip.in
COMPONENT sip
DESTINATION ${SIP_INSTALL_DIR}
)
endif()
endif()
//###########################################################################
// This file is part of LImA, a Library for Image Acquisition
//
// Copyright (C) : 2009-2013
// Copyright (C) : 2009-2019
// European Synchrotron Radiation Facility
// BP 220, Grenoble 38043
// CS40220 38043 Grenoble Cedex 9
// FRANCE
//
// Contact: lima@esrf.fr
//
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
......
###########################################################################
This file is part of LImA, a Library for Image Acquisition
Copyright (C) : 2009-2013
Copyright (C) : 2009-2019
European Synchrotron Radiation Facility
BP 220, Grenoble 38043
CS40220 38043 Grenoble Cedex 9
FRANCE
Contact: lima@esrf.fr
This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
......
##############################################################################
#
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2011
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
sub-dirs = third-party common hardware control camera build
all: src test
include config.inc
include global.inc
config.inc:
@echo "*** Creating default \"config.inc\" with LImA core"
@echo "*** Please edit it to activate compilation of hardware modules"
cp config.inc_default config.inc
@false
config:
cd third-party/Processlib/sip; python configure.py
$(MAKE) -C sip config
include install.inc
###########################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2017
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# Contact: lima@esrf.fr
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
# Use submodules
option(LIMA_BUILD_SUBMODULES "Build with submodules (vs prebuilt packages)?" ON)
if(UNIX)
# Spec-like shared memory
if(DEFINED ENV{COMPILE_SPS_IMAGE})
set(LIMA_ENABLE_SPS_IMAGE "$ENV{COMPILE_SPS_IMAGE}" CACHE BOOL "compile sps_image?" FORCE)
else()
option(LIMA_ENABLE_SPS_IMAGE "compile sps_image?" OFF)
endif()
# openGL real-time display
if(DEFINED ENV{COMPILE_GLDISPLAY})
set(LIMA_ENABLE_GLDISPLAY "$ENV{COMPILE_GLDISPLAY}" CACHE BOOL "compile gldisplay?" FORCE)
else()
option(LIMA_ENABLE_GLDISPLAY "compile sps_image?" OFF)
endif()
endif()
#--------------------------------------------------------------------------------
# Compile tests
#--------------------------------------------------------------------------------
option(LIMA_ENABLE_TESTS "compile test directories ?" OFF)
#--------------------------------------------------------------------------------
# Compile with trace (debug information)
#--------------------------------------------------------------------------------
option(LIMA_ENABLE_DEBUG "compile with trace ?" ON)
#--------------------------------------------------------------------------------
# libconfig
#--------------------------------------------------------------------------------
if(DEFINED ENV{LIMA_ENABLE_CONFIG})
set(LIMA_ENABLE_CONFIG "$ENV{LIMA_ENABLE_CONFIG}" CACHE BOOL "compile with libconfig code?" FORCE)
else()
option(LIMA_ENABLE_CONFIG "compile with libconfig?" OFF)
endif()
#--------------------------------------------------------------------------------
# Saving formats can be enabled from environment variables using config.inc file
#--------------------------------------------------------------------------------
if(UNIX)
# The formats have not been tested on windows
if(DEFINED ENV{LIMA_ENABLE_CBF})
set(LIMA_ENABLE_CBF "$ENV{LIMA_ENABLE_CBF}" CACHE BOOL "compile CBF saving code?" FORCE)
else()
option(LIMA_ENABLE_CBF "compile CBF saving code?" OFF)
endif()
if(DEFINED ENV{LIMA_ENABLE_FITS})
set(LIMA_ENABLE_FITS "$ENV{LIMA_ENABLE_FITS}" CACHE BOOL "compile FITS saving code?" FORCE)
else()
option(LIMA_ENABLE_FITS "compile FITS saving code?" OFF)
endif()
if(DEFINED ENV{LIMA_ENABLE_NXS})
set(LIMA_ENABLE_NXS "$ENV{LIMA_ENABLE_NXS}" CACHE BOOL "compile Nexus saving code?" FORCE)
else()
option(LIMA_ENABLE_NXS "compile Nexus saving code?" OFF)
endif()
endif()
if(DEFINED ENV{LIMA_ENABLE_TIFF})
set(LIMA_ENABLE_TIFF "$ENV{LIMA_ENABLE_TIFF}" CACHE BOOL "compile TIFF saving code?" FORCE)
else()
option(LIMA_ENABLE_TIFF "compile TIFF saving code?" OFF)
endif()
if(DEFINED ENV{LIMA_ENABLE_EDFLZ4})
set(LIMA_ENABLE_EDFLZ4 "$ENV{LIMA_ENABLE_EDFLZ4}" CACHE BOOL "compile EDF.LZ4 saving code?" FORCE)
else()
option(LIMA_ENABLE_EDFLZ4 "compile EDF.LZ4 saving code?" OFF)
endif()
if(DEFINED ENV{LIMA_ENABLE_EDFGZ})
set(LIMA_ENABLE_EDFGZ "$ENV{LIMA_ENABLE_EDFGZ}" CACHE BOOL "compile EDF.GZ saving code?" FORCE)
else()
option(LIMA_ENABLE_EDFGZ "compile EDF.GZ saving code?" OFF)
endif()
if(DEFINED ENV{LIMA_ENABLE_HDF5})
set(LIMA_ENABLE_HDF5 "$ENV{LIMA_ENABLE_HDF5}" CACHE BOOL "compile HDF5 saving code?" FORCE)
else()
option(LIMA_ENABLE_HDF5 "compile HDF5 saving code?" OFF)
endif()
if(DEFINED ENV{LIMA_ENABLE_HDF5_BS})
set(LIMA_ENABLE_HDF5_BS "$ENV{LIMA_ENABLE_HDF5_BS}" CACHE BOOL "compile HDF5/BS saving code?" FORCE)
else()
option(LIMA_ENABLE_HDF5_BS "compile HDF5/BS saving code?" OFF)
endif()
# Compile python wrapping code generated using SIP
IF(DEFINED ENV{LIMA_ENABLE_PYTHON})
set(LIMA_ENABLE_PYTHON "$ENV{LIMA_ENABLE_PYTHON}" CACHE BOOL "compile python modules?" FORCE)
else()
option(LIMA_ENABLE_PYTHON "compile python modules?" OFF)
endif()
# Python Tango server
IF(DEFINED ENV{LIMA_ENABLE_PYTANGO_SERVER})
set(LIMA_ENABLE_PYTANGO_SERVER "$ENV{LIMA_ENABLE_PYTANGO_SEVER}" CACHE BOOL "install python tango server?" FORCE)
else()
option(LIMA_ENABLE_PYTANGO_SERVER "install python tango server?" OFF)
endif()
# LImA
[![License](https://img.shields.io/github/license/esrf-bliss/lima.svg?style=flat)](https://opensource.org/licenses/GPL-3.0)
[![Gitter](https://img.shields.io/gitter/room/esrf-bliss/lima.svg?style=flat)](https://gitter.im/esrf-bliss/LImA)
[![Conda](https://img.shields.io/conda/dn/esrf-bcu/lima-core.svg?style=flat)](https://anaconda.org/esrf-bcu)
[![Version](https://img.shields.io/conda/vn/esrf-bcu/lima-core.svg?style=flat)](https://anaconda.org/esrf-bcu)
[![Platform](https://img.shields.io/conda/pn/esrf-bcu/lima-core.svg?style=flat)](https://anaconda.org/esrf-bcu)
Lima ( **L** ibrary for **Im** age **A** cquisition) is a project for the unified control of 2D detectors. The aim is to clearly separate hardware specific code from common software configuration and features, like setting standard acquisition parameters (exposure time, external trigger), file saving and image processing.
Lima is a C++ library which can be used with many different cameras. The library also comes with a [Python](http://python.org) binding and provides a [PyTango](http://pytango.readthedocs.io/en/stable/) device server for remote control.
## Documentation
The documentation is available [here](http://lima.blissgarden.org). Thank you to the people running Read the Docs for such an excellent service.
The source for the documentation is in the `docs` folder. Here are the instructions to built and read it locally. The documentation is built with [Doxygen](http://www.doxygen.org/) and [Sphinx](http://www.sphinx-doc.org). The sphinx template is from [ReadtheDocs](https://docs.readthedocs.io). [Breathe](https://breathe.readthedocs.io) provides a bridge between the Sphinx and Doxygen documentation systems.
pip install --user sphinx sphinx-autobuild sphinx_rtd_theme breathe recommonmark
apt-get doxygen
cd docs
doxygen common.dox
doxygen control.dox
doxygen hardware.dox
make html
The html documentation is generated in `docs/.build/html`.
# file .../Lima/README_WINDOW
#===============================================================================
# Compilation of python Lima Modules for Windows
#
# use the special command prompt console to compile!!!
# start -> Programs -> MS visual c++ 2008 Express Edition
# -> visual studio tools -> VS 2008 Cmd Prompt
#===============================================================================
- first copy config.inc_default to config.inc
- configure config.inc
- go to third-party\Processlib\sip
- then run python configure.py
- then go back to Lima
- then run windowSipCompilation --config
- then run windowSipCompilation
#===============================================================================
# For Linux platform, It's manage by the master Makefile
#===============================================================================
- got to the Lima root project
- then run make config
- then run make -C sip -j3
This diff is collapsed.
###########################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2017
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# Contact: lima@esrf.fr
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
set(saving_definitions)
set(saving_libs)
set(saving_private_libs)
set(saving_includes)
if(LIMA_ENABLE_EDFGZ)
find_package(ZLIB)
if(${ZLIB_FOUND})
list(APPEND saving_definitions -DWITH_Z_COMPRESSION)
list(APPEND saving_libs ${ZLIB_LIBRARIES})
list(APPEND saving_includes ${ZLIB_INCLUDE_DIRS})
else()
message(FATAL_ERROR "ZLIB library not found, please install or disable LIMA_ENABLE_EDFGZ")
endif()
endif()
if(LIMA_ENABLE_EDFLZ4)
find_package(LZ4)
if (${LZ4_FOUND})
list(APPEND saving_definitions -DWITH_LZ4_COMPRESSION)
list(APPEND saving_libs ${LZ4_LIBRARIES})
list(APPEND saving_includes ${LZ4_INCLUDE_DIRS})
else()
message(FATAL_ERROR "LZ4 library: required version = 1.8.2, please update or switch off LIMA_ENABLE_EDFLZ4")
endif()
endif()
if(LIMA_ENABLE_CBF)
find_package(CBF)
if (${CBF_FOUND})
list(APPEND saving_definitions -DWITH_CBF_SAVING)
list(APPEND saving_definitions -DPROTOTYPES)
list(APPEND control_srcs control/src/CtSaving_Cbf.cpp)
list(APPEND saving_libs ${CBF_LIBRARIES} crypto)
list(APPEND saving_includes ${CBF_INCLUDE_DIRS})
else()
message(FATAL_ERROR "CBF library not found, please install or disable LIMA_ENABLE_CBF")
endif()
endif()
if(LIMA_ENABLE_FITS)
find_package(CCFits)
if(${CCFITS_FOUND})
list(APPEND saving_definitions -DWITH_FITS_SAVING)
list(APPEND control_srcs control/src/CtSaving_Fits.cpp)
list(APPEND saving_libs ${CFITSIO_LIBRARY} ${CCFITS_LIBRARY})
list(APPEND saving_includes ${CFITSIO_INCLUDE_DIR})
else()
message(FATAL_ERROR "CFITSIO and/or CCFITS library not found, please install or disable LIMA_ENABLE_FITS")
endif()
endif()
if(LIMA_ENABLE_HDF5)
#set (HDF5_USE_STATIC_LIBRARIES ON)
find_package(HDF5 COMPONENTS CXX HL)
if(${HDF5_FOUND})
list(APPEND saving_definitions -DWITH_HDF5_SAVING ${HDF5_DEFINITIONS})
list(APPEND control_srcs control/src/CtSaving_Hdf5.cpp)
list(APPEND saving_libs ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES} ${LIB_SZIP} ${LIB_ZLIB})
list(APPEND saving_includes ${HDF5_INCLUDE_DIRS})
else()
message(FATAL_ERROR "HDF5 library not found, please install or disable LIMA_ENABLE_HDF5")
endif()
if(LIMA_ENABLE_HDF5_BS)
#set(BITSHUFFLE_EXTERNALLY_CONFIGURED ON)
add_subdirectory(control/bitshuffle)
list(APPEND saving_definitions -DWITH_BS_COMPRESSION)
list(APPEND saving_includes ${CMAKE_CURRENT_SOURCE_DIR}/third-party/bitshuffle/src)
list(APPEND saving_private_libs h5bshuf_static)
# set(LIB_BS_INCLUDE_DIR "/usr/local/include/" CACHE PATH "Path to BitShuffle include files")
# link_directories(${LIB_HDF5_PLUGIN})
# find_library(LIB_HDF5_BS h5bshuf ${LIB_HDF5_PLUGIN})
# find_path(LIB_BS_INCLUDE_DIR bitshuffle.h)
# list(APPEND saving_libs ${LIB_HDF5_BS})
# list(APPEND saving_includes ${LIB_BS_INCLUDE_DIR})
endif()
endif()
if(LIMA_ENABLE_NXS)
find_package(NXS)
if(${NXS_FOUND})
list(APPEND saving_definitions -DWITH_NXS_SAVING)
list(APPEND control_srcs control/src/CtSaving_NXS.cpp)
list(APPEND saving_includes ${NXS_INCLUDE_DIRS})
list(APPEND saving_libs ${NXS_LIBRARIES})
else()
message(FATAL_ERROR "NEXUS cpp library not installed, please install or disable LIMA_ENABLE_NXS")
endif()
endif()
if(LIMA_ENABLE_TIFF)
find_package(TIFF)
if(${TIFF_FOUND})
list(APPEND saving_definitions -DWITH_TIFF_SAVING)
list(APPEND control_srcs control/src/CtSaving_Tiff.cpp)
list(APPEND saving_libs ${TIFF_LIBRARIES})
list(APPEND saving_includes ${TIFF_INCLUDE_DIRS})
else()
message(FATAL_ERROR "TIFF library not found, please install or disable LIMA_ENABLE_TIFF")
endif()
endif()
import re
import os
import glob
import sys
import platform
import imp
lima_includes = set()
lima_dirs = ['common',
'control',
'control/software_operation',
'hardware',
]
base_script_path,_ = os.path.split(os.path.realpath(__file__))
#load processlib namespace
processlib_rel_path = 'third-party/Processlib/add_include_namespace.py'
processlib = imp.load_source('processlib',
os.path.join(base_script_path,processlib_rel_path))
processlib.init()
for lima_include_path in lima_dirs:
includes = glob.glob(os.path.join(base_script_path,lima_include_path,
'include','lima','*.h'))
lima_includes.update([os.path.split(x)[1] for x in includes])
if platform.system() == 'Windows':
file_list = []
for arg in sys.argv[1:]:
file_list.extend(glob.glob(arg))
else:
file_list = sys.argv[1:]
processlib.sed(file_list)
match_include = re.compile('^\s*#include\s+["<](.+?)[">]\s*$')
for file in file_list:
with open(file,'r+') as f:
w_buffer = ''
modify = False
for line in f:
match_group = match_include.match(line)
if match_group and match_group.group(1) in lima_includes:
w_buffer += '#include "lima/%s"\n' % match_group.group(1)
modify = True
else:
w_buffer += line
if modify:
f.seek(0,0)
f.write(w_buffer)
This diff is collapsed.
Subproject commit bc533f2d099dabcdb54e736b1892e87dfb6e7a1b
Subproject commit 91d21e0b8cc84f16de506b8a2b57d4c31f37b0f2
Subproject commit e50b74fa3f09573ae7dfdc0367399c8c3a3142ab
Subproject commit 393a29e45508ae39ac749351c374d1c39f94d162
Subproject commit 66c2e0dc0d8bbb72d74cc921fa8f2cc9cde46a31
Subproject commit df09b4e4a373220c73414965f9a0b5a456b789de
version: 1.0.{build}
os: Visual Studio 2015
platform: x64
configuration: Release
branches:
only:
- cmake
matrix:
fast_finish: false # set this flag to immediately finish build once one of the jobs fails.
environment:
matrix:
# for further test with nmake
# - PLATFORM: x64
# BUILDER: "CMake"
# CONFIGURATION: "Release"
# GENERATOR: "NMake Makefiles"
# PYTHON: "C:\\Python27-x64"
- PLATFORM: x64
BUILDER: "CMake"
CONFIGURATION: "Release"
GENERATOR: "Visual Studio 12 2013 Win64"
PYTHON: "C:\\Python27-x64"
- PLATFORM: x86
BUILDER: "CMake"
CONFIGURATION: "Release"
GENERATOR: "Visual Studio 12 2013"
PYTHON: "C:\\Python27"
init:
- ps: 'Write-Host "Building LIMA branch: $env:APPVEYOR_REPO_BRANCH" -ForegroundColor Magenta'
- if [%PLATFORM%]==[x64] "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
- if [%PLATFORM%]==[x64] call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
- if [%PlATFORM%]==[x86] call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
- set PATH=%PYTHON%;%PATH%
install:
- ps: 'Write-Host "Installing submodule third-party/Processlib :" -ForegroundColor Magenta'
- git submodule init third-party/Processlib
- git submodule update
- git submodule foreach "git checkout cmake"
- ps: 'Write-Host "Installing GSL :" -ForegroundColor Magenta'
- if [%PLATFORM%]==[x64] (
appveyor.exe DownloadFile http://ftp.esrf.fr/pub/bliss/lima/gsl-1.15-dev-win64.zip &&
7z.exe x gsl-1.15-dev-win64.zip -o"c:\Program Files\gsl-1.15-win64"
)
- if [%PLATFORM%]==[x86] (
appveyor.exe DownloadFile http://ftp.esrf.fr/pub/bliss/lima/gsl-1.8-lib.zip &&
7z.exe x gsl-1.8-lib.zip -o"c:\Program Files\gsl-1.8-win32"
)
- ps: 'Write-Host "Installing NUMPY :" -ForegroundColor Magenta'
- "%PYTHON%/Scripts/pip.exe install numpy"
- ps: 'Write-Host "Installing SIP" -ForegroundColor Magenta'
- appveyor.exe DownloadFile https://sourceforge.net/projects/pyqt/files/sip/sip-4.18/sip-4.18.zip
- 7z.exe x sip-4.18.zip
- cd sip-4.18
- python.exe configure.py
- nmake
- nmake install
- cd ..
before_build:
- ps: 'Write-Host "Running $env:BUILDER with $env:GENERATOR :" -ForegroundColor Magenta'
- mkdir build
- cd build
- cmake -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DLIMACAMERA_SIMULATOR=1 -DLIMA_ENABLE_PYTHON=1 -DLIMA_ENABLE_TESTS=1 ..
build_script:
- ps: 'Write-Host "Running $env:BUILDER :" -ForegroundColor Magenta'
- cmake --build . --config %CONFIGURATION%
test_script:
- ps: 'Write-Host "Running tests :" -ForegroundColor Magenta'
# - ctest -VV --debug --output-on-failure -C %CONFIGURATION%
This diff is collapsed.
Debug
Release
*.vcproj.*
*.ncb
*.suo

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibLimaCore", "LimaCore.vcproj", "{A4B703A6-C50F-442F-8952-54FB8EA51FF3}"
ProjectSection(ProjectDependencies) = postProject
{F6556656-D091-43AF-B46F-355F4ABA5DB6} = {F6556656-D091-43AF-B46F-355F4ABA5DB6}
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE} = {A0C36CE7-D908-4573-8B69-249EEEB7D2BE}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libprocesslib", "..\..\..\..\third-party\Processlib\build\msvc\9.0\libprocesslib\libprocesslib.vcproj", "{F6556656-D091-43AF-B46F-355F4ABA5DB6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libconfig++", "..\..\..\..\third-party\libconfig\lib\libconfig++.vcproj", "{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Debug|Win32.ActiveCfg = Debug|Win32
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Debug|Win32.Build.0 = Debug|Win32
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Debug|x64.ActiveCfg = Debug|Win32
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Debug|x64.Build.0 = Debug|Win32
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Release|Win32.ActiveCfg = Release|Win32
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Release|Win32.Build.0 = Release|Win32
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Release|x64.ActiveCfg = Release|x64
{A4B703A6-C50F-442F-8952-54FB8EA51FF3}.Release|x64.Build.0 = Release|x64
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Debug|Win32.ActiveCfg = Debug|Win32
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Debug|Win32.Build.0 = Debug|Win32
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Debug|x64.ActiveCfg = Debug|Win32
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Debug|x64.Build.0 = Debug|Win32
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Release|Win32.ActiveCfg = Release|Win32
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Release|Win32.Build.0 = Release|Win32
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Release|x64.ActiveCfg = Release|x64
{F6556656-D091-43AF-B46F-355F4ABA5DB6}.Release|x64.Build.0 = Release|x64
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Debug|Win32.ActiveCfg = Debug|Win32
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Debug|Win32.Build.0 = Debug|Win32
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Debug|x64.ActiveCfg = Debug|Win32
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Debug|x64.Build.0 = Debug|Win32
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Release|Win32.ActiveCfg = Release|Win32
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Release|Win32.Build.0 = Release|Win32
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Release|x64.ActiveCfg = Release|x64
{A0C36CE7-D908-4573-8B69-249EEEB7D2BE}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
This diff is collapsed.
========================================================================
DYNAMIC LINK LIBRARY : LimaCore Project Overview
========================================================================
AppWizard has created this LimaCore DLL for you.
This file contains a summary of what you will find in each of the files that
make up your LimaCore application.
LimaCore.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
LimaCore.cpp
This is the main DLL source file.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named LimaCore.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////
========================================================================
CONSOLE APPLICATION : Simulator Project Overview
========================================================================
AppWizard has created this Simulator application for you.
This file contains a summary of what you will find in each of the files that
make up your Simulator application.
Simulator.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
Simulator.cpp
This is the main application source file.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named Simulator.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simulator", "Simulator.vcproj", "{AF18B006-7B23-4550-A9B6-530E9813A58E}"
ProjectSection(ProjectDependencies) = postProject
{F6556656-D091-43AF-B46F-355F4ABA5DB6} = {F6556656-D091-43AF-B46F-355F4ABA5DB6}
{A4B703A6-C50F-442F-8952-54FB8EA51FF3} = {A4B703A6-C50F-442F-8952-54FB8EA51FF3}
{3E1490E7-66C0-4E77-9746-0632466FF270} = {3E1490E7-66C0-4E77-9746-0632466FF270}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibSimulator", "..\LibSimulator\LibSimulator.vcproj", "{3E1490E7-66C0-4E77-9746-0632466FF270}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibLimaCore", "..\LimaCore\LimaCore.vcproj", "{A4B703A6-C50F-442F-8952-54FB8EA51FF3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libprocesslib", "..\..\..\..\third-party\Processlib\build\msvc\9.0\libprocesslib\libprocesslib.vcproj", "{F6556656-D091-43AF-B46F-355F4ABA5DB6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AF18B006-7B23-4550-A9B6-530E9813A58E}.Debug|Win32.ActiveCfg = Debug|Win32