Remove libGalil and libZaber and add exts/CMakeLists.txt
What
This MR aims to remove copied external library code from the src/
directory of labRemote, as well
as update the CMake configuration of the external libraries appearing under src/exts
.
CMake configuration of external libraries
This MR moves the majority of the CMake configuration of the libraries appearing under src/exts
to
a src/exts/CMakeLists.txt
. Prior to this MR, there is no CMakeLists.txt
file appearing under
src/exts
but rather the configuration of all libraries appearing under src/exts
occurs in src/CMakeLists.txt.
In the newly created src/exts/CMakeLists.txt
, there is also a check that the submodule directories
appearing under exts/
are non-empty so that issues related to users not having recursively cloned the labRemote
repository will appear earlier and more clearly.
libGalil
This MR removes libGalil
from being a labRemote library, under labRemote/src
. This is because the Galil libraries were 100% copied from the Galil source files and are thereby not maintainable by labRemote.
Instead, the Galil motion control libraries should be installed like any other external package using yum
:
yum install gclib gcapsd
See the official Galil documentation page for more details.
The labRemote build will then rely on Findlibgclib.cmake to find the gclib
shared library.
libZaber
The Zaber library is also another library that is 100% copied from an external library and therefore not maintainable by labRemote.
This MR therefore adds a new submodule under src/exts/zaber
with the source files for the Zaber core-c library which we had simply copied and pasted into src/libZaber
previously.
As before, a shared library Zaber
is created during the compilation of labRemote. The Zaber
library is specified
under the newly created src/exts/CMakeLists.txt
file.
The Future
The Zaber libraries we are/were relying on are outdated. As mentioned in their repository, those using C++ should move to the new Zaber Motion Library, which has both C++ and Python bindings.