Refactor cmake
The merge has the following features:
- Native CUDA support with Cmake - CUDA as a first-class language in CMake
- Install psrdada_cpp as CMake package -> allows to find_package(psrdada_cpp), the following libraries are installed:
- psrdada_cpp::psrdada_cpp
- psrdada_cpp::common (-DENABLE_SUBMODULES=ON)
- psrdada_cpp::dadaflow (-DENABLE_DADAFLOW=ON)
- General cleanup of the CMake project
- prefer FetchContent over ExternalProject
- Libraries are linked using library::module (e.g. GTest::gtest) instead of -lgtest
- Remove unnecessary statements
- Consistent cmake prints
- More efficient include dependency strategy -> Only download from remote sources when CMake packages are not found
- Minor issues resolved, causing errors when compiling in debug mode (e.g. psrdada_cpp::gated_spectrometer::OutputDataStream had no virtual deconstructor, #include <psrdada/header.h> correctly)
- Internal dependency between googlebenchmark and googletest removed
Detected issues:
- find_package(OpenMP) fails in build container for ubuntu20.04 -> reason unknown
- psrdada_cpp::kernels::detect_and_accumulate tests are failing in DEBUG mode -> cudaLaunchKernel OutOfResources (TEST_P(detect_and_accumulate32bit, no_stride), TEST_P(detect_and_accumulate32bit, w_stride))
- Dadaflow can not built under Ubuntu 20.04 - boost::json not available
Edited by Niclas Esser