Skip to content

Remove libGalil and libZaber and add exts/CMakeLists.txt

Daniel Joseph Antrim requested to merge dantrim_remove_motion_control into devel

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.

Edited by Daniel Joseph Antrim

Merge request reports