71 lines
2.2 KiB
CMake
71 lines
2.2 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.18)
|
|
|
|
PROJECT(Jungfraujoch VERSION 1.0 LANGUAGES C CXX)
|
|
|
|
SET(CMAKE_CXX_STANDARD 20)
|
|
SET(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -mtune=native")
|
|
SET(CMAKE_C_FLAGS_RELEASE "-O3 -march=native -mtune=native")
|
|
|
|
SET(HDF5_USE_STATIC_LIBRARIES ON)
|
|
|
|
INCLUDE(CheckLanguage)
|
|
CHECK_LANGUAGE(CUDA)
|
|
|
|
SET(CMAKE_CUDA_ARCHITECTURES 70 75 80 86 89) # V100, T4, A100, RTX A4000, L4
|
|
SET(CMAKE_CUDA_STANDARD 17)
|
|
SET(CMAKE_CUDA_FLAGS_RELEASE "-O3")
|
|
|
|
IF (CMAKE_CUDA_COMPILER)
|
|
ENABLE_LANGUAGE(CUDA)
|
|
MESSAGE(STATUS "CUDA VERSION: ${CMAKE_CUDA_COMPILER_VERSION}")
|
|
ADD_COMPILE_DEFINITIONS(JFJOCH_USE_CUDA)
|
|
FIND_LIBRARY(CUDART_LIBRARY cudart_static PATHS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES} REQUIRED)
|
|
ENDIF()
|
|
|
|
SET(JFJOCH_WRITER_ONLY OFF CACHE BOOL "Compile HDF5 writer only")
|
|
|
|
INCLUDE_DIRECTORIES(include)
|
|
INCLUDE(CheckIncludeFile)
|
|
|
|
FIND_LIBRARY(NUMA_LIBRARY NAMES numa DOC "NUMA Library")
|
|
CHECK_INCLUDE_FILE(numaif.h HAS_NUMAIF)
|
|
CHECK_INCLUDE_FILE(numa.h HAS_NUMA_H)
|
|
|
|
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
FIND_PACKAGE(ZeroMQ 4 REQUIRED)
|
|
|
|
ADD_SUBDIRECTORY(jungfrau)
|
|
ADD_SUBDIRECTORY(compression)
|
|
ADD_SUBDIRECTORY(common)
|
|
ADD_SUBDIRECTORY(writer)
|
|
ADD_SUBDIRECTORY(frame_serialize)
|
|
|
|
IF (JFJOCH_WRITER_ONLY)
|
|
MESSAGE(STATUS "Compiling HDF5 writer only")
|
|
SET(jfjoch_executables jfjoch_writer)
|
|
ELSE()
|
|
ADD_SUBDIRECTORY(broker)
|
|
ADD_SUBDIRECTORY(etc)
|
|
ADD_SUBDIRECTORY(fpga)
|
|
ADD_SUBDIRECTORY(acquisition_device)
|
|
ADD_SUBDIRECTORY(receiver)
|
|
ADD_SUBDIRECTORY(image_analysis)
|
|
ADD_SUBDIRECTORY(detector_control)
|
|
ADD_SUBDIRECTORY(tests)
|
|
ADD_SUBDIRECTORY(tools)
|
|
SET(jfjoch_executables jfjoch_broker jfjoch_writer CatchTest CompressionBenchmark HDF5DatasetWriteTest jfjoch_udp_simulator sls_detector_put sls_detector_get)
|
|
ENDIF()
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT frontend_ui/build/index.html
|
|
COMMAND npm run build
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/frontend_ui)
|
|
ADD_CUSTOM_TARGET(frontend DEPENDS frontend_ui/build/index.html)
|
|
|
|
ADD_CUSTOM_TARGET(jfjoch DEPENDS ${jfjoch_executables})
|
|
|
|
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
SET(CMAKE_INSTALL_PREFIX /opt/jfjoch CACHE PATH "Default directory" FORCE)
|
|
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|