readout software for 2 channels [0 and 1] of the tdc-gpx2 board with raspberry pi 3B SPI readout. This code is a fork of the original design by marvin.peter@physik.uni-giessen.de https://github.com/marvin5300/tdc-gpx2_software
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.8 KiB

1 year ago
  1. cmake_minimum_required(VERSION 3.10)
  2. project(readout LANGUAGES CXX C)
  3. set(PROJECT_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
  4. set(PROJECT_HEADER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
  5. set(PROJECT_CONFIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/config")
  6. set(LIBRARY_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../gpx2-raspi-lib/include/")
  7. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../bin")
  8. include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.cmake")
  9. set(CMAKE_CXX_STANDARD 17)
  10. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  11. set(CMAKE_C_STANDARD 11)
  12. set(CMAKE_C_STANDARD_REQUIRED ON)
  13. if(${BUILD_TIDY})
  14. set(CMAKE_CXX_CLANG_TIDY
  15. clang-tidy;
  16. -header-filter=^global;
  17. -checks=-*,readability-*,bugprone-*,performace-*,clang-analyzer-*,modernize-*,hicpp-*;
  18. )
  19. endif(${BUILD_TIDY})
  20. add_compile_options(
  21. -Wall
  22. -Wextra
  23. -Wshadow
  24. -Wpedantic
  25. -O3
  26. )
  27. configure_file(
  28. "${PROJECT_CONFIG_DIR}/version.h"
  29. "${PROJECT_HEADER_DIR}/version.h"
  30. )
  31. set(READOUT_HEADER_FILES
  32. "${PROJECT_HEADER_DIR}/gpio.h"
  33. "${PROJECT_HEADER_DIR}/readout.h"
  34. )
  35. set(READOUT_SOURCE_FILES
  36. "${PROJECT_SRC_DIR}/main.cpp"
  37. "${PROJECT_SRC_DIR}/gpio.cpp"
  38. "${PROJECT_SRC_DIR}/readout.cpp"
  39. )
  40. add_executable(readout ${READOUT_SOURCE_FILES} ${READOUT_HEADER_FILES})
  41. target_include_directories(readout PUBLIC
  42. ${PROJECT_HEADER_DIR}
  43. "${CMAKE_CURRENT_SOURCE_DIR}/../spi/include/spidevices/gpx2/"
  44. )
  45. target_link_directories(readout PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/../lib/")
  46. if (!WIN32)
  47. find_library(LIBGPIOD libgpiod REQUIRED)
  48. endif()
  49. set(THREADS_PREFER_PTHREAD_FLAG ON)
  50. find_package(Threads REQUIRED)
  51. target_link_libraries(readout
  52. Threads::Threads
  53. spi_static
  54. gpiod
  55. )
  56. #set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
  57. #set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")