mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-02 10:50:05 +02:00
188 lines
6.7 KiB
CMake
188 lines
6.7 KiB
CMake
# SPDX-License-Identifier: LGPL-3.0-or-other
|
|
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
|
|
|
|
|
# Initial draft for Makefile.rawdataprocess
|
|
|
|
set(JUNGFRAU_EXECUTABLES)
|
|
|
|
#find_package(fmt REQUIRED)
|
|
|
|
#nlohmann_json
|
|
#If the library was INSTALLED (i.e. sudo dnf install nlohmann-json3-dev), do stuff described in the repo under CMake -> External
|
|
#find_package(nlohmann_json 3.2.0 REQUIRED)
|
|
#find_package(nlohmann_json 3.11.2 REQUIRED)
|
|
#find_package(nlohmann_json 3.11.3 REQUIRED)
|
|
#
|
|
#If the library was not installed but just cloned from https://github.com/nlohmann/json.git (possible, because it is a header-only library),
|
|
# do stuff described in the repo under CMake -> Embedded
|
|
#set(JSON_BuildTests OFF CACHE INTERNAL "")
|
|
# If you only include this third party in PRIVATE source files, you do not
|
|
# need to install it when your main project gets installed.
|
|
# set(JSON_Install OFF CACHE INTERNAL "")
|
|
#add_subdirectory(nlohmann_json) #Put the actual path to json
|
|
#
|
|
#Alternative: Fetch and install it from remote
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
json
|
|
GIT_REPOSITORY https://github.com/nlohmann/json.git
|
|
GIT_TAG v3.11.3 # Replace with the version you need
|
|
)
|
|
#FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz) #Alternative (from the repo documentation)
|
|
FetchContent_MakeAvailable(json)
|
|
|
|
FetchContent_Declare(
|
|
fmt
|
|
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
|
|
GIT_TAG master
|
|
)
|
|
FetchContent_MakeAvailable(fmt)
|
|
|
|
# HDF5 file writing
|
|
if (SLS_USE_HDF5)
|
|
find_package(HDF5 1.10 COMPONENTS CXX REQUIRED)
|
|
list (APPEND SOURCES
|
|
HDF5File.cpp
|
|
)
|
|
endif (SLS_USE_HDF5)
|
|
|
|
|
|
|
|
# jungfrauRawDataProcess
|
|
add_executable(jungfrauRawDataProcess jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcess PRIVATE MODULE)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcess)
|
|
|
|
# jungfrauRawDataProcessChipAldo
|
|
add_executable(jungfrauRawDataProcessChipAldo jungfrauRawDataProcess_filetxt.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessChipAldo PRIVATE CHIP ALDO)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessChipAldo)
|
|
|
|
# jungfrauRawDataProcessStrx
|
|
add_executable(jungfrauRawDataProcessStrx jungfrauRawDataProcess_filetxt.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrx PRIVATE JFSTRX)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrx)
|
|
|
|
# jungfrauRawDataProcessStrxQuad
|
|
add_executable(jungfrauRawDataProcessStrxQuad jungfrauRawDataProcess_filetxt.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxQuad PRIVATE JFSTRXQ)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxQuad)
|
|
|
|
# jungfrauRawDataProcessStrxQuadH5
|
|
# HDF5
|
|
if (SLS_USE_HDF5)
|
|
if (HDF5_FOUND)
|
|
add_executable(jungfrauRawDataProcessStrxQuadH5 jungfrauRawDataProcess_filetxtH5.cpp)
|
|
#target_compile_definitions(jungfrauRawDataProcessStrxQuadH5 PRIVATE JFSTRXQH5)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxQuadH5)
|
|
target_include_directories(jungfrauRawDataProcessStrxQuadH5 PRIVATE ${HDF5_INCLUDE_DIRS} ${CMAKE_INSTALL_PREFIX}/include)
|
|
target_link_libraries(jungfrauRawDataProcessStrxQuadH5 PRIVATE ${HDF5_LIBRARIES})
|
|
endif ()
|
|
endif (SLS_USE_HDF5)
|
|
|
|
# jungfrauRawDataProcessStrxChip1
|
|
add_executable(jungfrauRawDataProcessStrxChip1 jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxChip1 PRIVATE JFSTRXCHIP1)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxChip1)
|
|
|
|
# jungfrauRawDataProcessStrxChip6
|
|
add_executable(jungfrauRawDataProcessStrxChip6 jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxChip6 PRIVATE JFSTRXCHIP6)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxChip6)
|
|
|
|
# jungfrauRawDataProcessStrxChip1Aldo
|
|
add_executable(jungfrauRawDataProcessStrxChip1Aldo jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxChip1Aldo PRIVATE JFSTRXCHIP1 ALDO)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxChip1Aldo)
|
|
|
|
# jungfrauRawDataProcessStrxChip6Aldo
|
|
add_executable(jungfrauRawDataProcessStrxChip6Aldo jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxChip6Aldo PRIVATE JFSTRXCHIP6 ALDO)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxChip6Aldo)
|
|
|
|
# jungfrauRawDataProcessStrxAldo
|
|
add_executable(jungfrauRawDataProcessStrxAldo jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxAldo PRIVATE JFSTRX ALDO)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxAldo)
|
|
|
|
# jungfrauRawDataProcessStrxOld
|
|
add_executable(jungfrauRawDataProcessStrxOld jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxOld PRIVATE JFSTRXOLD)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxOld)
|
|
|
|
# jungfrauRawDataProcessStrxOldAldo
|
|
add_executable(jungfrauRawDataProcessStrxOldAldo jungfrauRawDataProcess.cpp)
|
|
target_compile_definitions(jungfrauRawDataProcessStrxOldAldo PRIVATE JFSTRXOLD ALDO)
|
|
list(APPEND JUNGFRAU_EXECUTABLES jungfrauRawDataProcessStrxOldAldo)
|
|
|
|
|
|
# others to be added if needed (might already be there in Makefile.cluster_finder TO BE CHECKED)
|
|
|
|
|
|
if (SLS_USE_HDF5)
|
|
if (HDF5_FOUND)
|
|
target_include_directories(jungfrauRawDataProcessStrxQuadH5 PRIVATE
|
|
${HDF5_INCLUDE_DIRS}
|
|
${CMAKE_INSTALL_PREFIX}/include
|
|
)
|
|
target_link_libraries(jungfrauRawDataProcessStrxQuadH5 PRIVATE ${HDF5_LIBRARIES})
|
|
|
|
endif ()
|
|
endif (SLS_USE_HDF5)
|
|
|
|
|
|
foreach(exe ${JUNGFRAU_EXECUTABLES})
|
|
#TODO! At a later stage clean up include dirs and have a proper lib
|
|
target_include_directories(${exe} PRIVATE
|
|
../
|
|
../interpolations
|
|
../dataStructures
|
|
../interpolations/etaVEL
|
|
../../slsSupportLib/include/sls/
|
|
../../slsReceiverSoftware/include/
|
|
../tiffio/include
|
|
${fmt_INCLUDE_DIRS}
|
|
)
|
|
# if (SLS_USE_HDF5)
|
|
# if (HDF5_FOUND)
|
|
# target_include_directories(${exe} PRIVATE ${HDF5_INCLUDE_DIRS} ${CMAKE_INSTALL_PREFIX}/include)
|
|
# endif ()
|
|
# endif (SLS_USE_HDF5)
|
|
|
|
target_link_libraries(${exe}
|
|
PUBLIC
|
|
slsSupportStatic
|
|
pthread
|
|
tiffio
|
|
fmt::fmt
|
|
nlohmann_json::nlohmann_json
|
|
#-L/usr/lib64/
|
|
#-lm -lstdc++ -lrt
|
|
|
|
PRIVATE
|
|
slsProjectWarnings
|
|
slsProjectOptions
|
|
)
|
|
# if (SLS_USE_HDF5)
|
|
# if (HDF5_FOUND)
|
|
# target_link_libraries(${exe} PRIVATE ${HDF5_LIBRARIES})
|
|
# endif ()
|
|
# endif (SLS_USE_HDF5)
|
|
|
|
set_target_properties(${exe} PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
|
)
|
|
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
|
set_property(TARGET ${exe} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
|
endif()
|
|
|
|
|
|
endforeach(exe ${JUNGFRAU_EXECUTABLES})
|
|
|
|
|
|
|
|
|
|
|
|
install(TARGETS ${JUNGFRAU_EXECUTABLES} DESTINATION bin)
|