73 lines
2.3 KiB
CMake
73 lines
2.3 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(JFJOCH_COMPILE_WRITER ON CACHE BOOL "Compile HDF5 writer")
|
|
SET(JFJOCH_COMPILE_RECEIVER ON CACHE BOOL "Compile image receiver")
|
|
SET(JFJOCH_COMPILE_DETECTOR ON CACHE BOOL "Compile detector control")
|
|
SET(JFJOCH_COMPILE_INDEXER ON CACHE BOOL "Compile indexer")
|
|
SET(JFJOCH_COMPILE_TESTS OFF CACHE BOOL "Compile tests")
|
|
|
|
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(frame_serialize)
|
|
ADD_SUBDIRECTORY(grpc)
|
|
ADD_SUBDIRECTORY(compression)
|
|
ADD_SUBDIRECTORY(common)
|
|
ADD_SUBDIRECTORY(broker)
|
|
ADD_SUBDIRECTORY(etc)
|
|
|
|
SET(jfjoch_executables jfjoch_broker)
|
|
|
|
IF (JFJOCH_COMPILE_TESTS OR JFJOCH_COMPILE_RECEIVER)
|
|
ADD_SUBDIRECTORY(receiver)
|
|
ADD_SUBDIRECTORY(image_analysis)
|
|
LIST(APPEND jfjoch_executables jfjoch_receiver)
|
|
ENDIF()
|
|
|
|
IF (JFJOCH_COMPILE_DETECTOR)
|
|
ADD_SUBDIRECTORY(detector_control)
|
|
LIST(APPEND jfjoch_executables jfjoch_detector)
|
|
ENDIF()
|
|
|
|
IF (JFJOCH_COMPILE_TESTS OR JFJOCH_COMPILE_WRITER)
|
|
ADD_SUBDIRECTORY(writer)
|
|
LIST(APPEND jfjoch_executables jfjoch_writer jfjoch_writer_multi)
|
|
ENDIF()
|
|
|
|
IF (JFJOCH_COMPILE_TESTS)
|
|
ADD_SUBDIRECTORY(tests)
|
|
ADD_SUBDIRECTORY(tools)
|
|
LIST(APPEND jfjoch_executables CatchTest DataAnalysisPerfTest CompressionBenchmark HDF5DatasetWriteTest jfjoch_udp_simulator)
|
|
ENDIF()
|
|
|
|
LIST(APPEND jfjoch_executables)
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT frontend_ui/build/index.html
|
|
COMMAND npm run build
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/frontend_ui
|
|
DEPENDS jfjoch-grpc-js)
|
|
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)
|
|
|