79 lines
2.6 KiB
CMake
79 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(RaptorEagleV LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}")
|
|
|
|
find_package(Threads REQUIRED)
|
|
# find_package(spdlog REQUIRED)
|
|
# find_package(spdlog CONFIG)
|
|
|
|
find_package(CFITSIO REQUIRED)
|
|
find_package(XCLIB REQUIRED)
|
|
find_package(cxxopts CONFIG)
|
|
|
|
|
|
set(RAPTOR_EAGLEV_LIB raptor_eaglev)
|
|
|
|
option(STATIC_LIB "Create static '${RAPTOR_EAGLEV_LIB}' library" OFF)
|
|
|
|
set(RAPTOR_EAGLEV_LIB_SRC
|
|
raptor_eagle_ccd.h raptor_eagle_ccd.cpp
|
|
raptor_eagle_cameralink.h
|
|
raptor_eagle_exception.h
|
|
raptor_eagle_acqproc.cpp)
|
|
|
|
if (STATIC_LIB)
|
|
add_library(${RAPTOR_EAGLEV_LIB} STATIC ${RAPTOR_EAGLEV_LIB_SRC})
|
|
else()
|
|
add_library(${RAPTOR_EAGLEV_LIB} SHARED ${RAPTOR_EAGLEV_LIB_SRC})
|
|
endif()
|
|
|
|
include(FetchContent)
|
|
include(ExternalProject)
|
|
|
|
FetchContent_Declare(spdlog
|
|
# SOURCE_DIR ${CMAKE_BINARY_DIR}/spdlog
|
|
# BINARY_DIR ${CMAKE_BINARY_DIR}/spdlog/build
|
|
GIT_REPOSITORY "https://github.com/gabime/spdlog.git"
|
|
GIT_TAG "v1.15.0"
|
|
GIT_SHALLOW TRUE
|
|
GIT_SUBMODULES ""
|
|
GIT_PROGRESS TRUE
|
|
)
|
|
FetchContent_MakeAvailable(spdlog)
|
|
FetchContent_GetProperties(spdlog SOURCE_DIR spdlog_SOURCE_DIR)
|
|
set(spdlog_INCLUDE_DIR ${spdlog_SOURCE_DIR}/include)
|
|
|
|
|
|
# to activate spdlog-library support in ADC-library
|
|
# target_compile_definitions(${RAPTOR_EAGLEV_LIB} PRIVATE USE_ASIO_LIBRARY USE_SPDLOG_LIBRARY USE_OPENSSL_WITH_ASIO)
|
|
target_compile_definitions(${RAPTOR_EAGLEV_LIB} PUBLIC USE_ASIO_LIBRARY USE_SPDLOG_LIBRARY)
|
|
target_compile_definitions(${RAPTOR_EAGLEV_LIB} PUBLIC SPDLOG_USE_STD_FORMAT)
|
|
|
|
# !!!!! TEMPORARY !!!!!
|
|
target_include_directories(${RAPTOR_EAGLEV_LIB} PUBLIC "../ADC/")
|
|
target_include_directories(${RAPTOR_EAGLEV_LIB} PUBLIC ${XCLIB_INCLUDE_DIR} ${CFITSIO_INCLUDE_DIR})
|
|
target_include_directories(${RAPTOR_EAGLEV_LIB} PUBLIC ${spdlog_INCLUDE_DIR})
|
|
# target_link_libraries(${RAPTOR_EAGLEV_LIB} PUBLIC Threads::Threads spdlog::spdlog_header_only ${XCLIB_LIBRARIES} ${CFITSIO_LIBRARY})
|
|
target_link_libraries(${RAPTOR_EAGLEV_LIB} PUBLIC Threads::Threads ${XCLIB_LIBRARIES} ${CFITSIO_LIBRARY})
|
|
|
|
|
|
set(RAPTOR_EAGLEV_SERVER raptor_eaglev_server)
|
|
add_executable(${RAPTOR_EAGLEV_SERVER} raptor_eaglev_server.cpp)
|
|
target_link_libraries(${RAPTOR_EAGLEV_SERVER} PUBLIC ${RAPTOR_EAGLEV_LIB} cxxopts::cxxopts)
|
|
|
|
include(GNUInstallDirs)
|
|
install(TARGETS ${RAPTOR_EAGLEV_LIB}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
)
|
|
# install(TARGETS ${RAPTOR_EAGLEV_LIB} ${RAPTOR_EAGLEV_SERVER}
|
|
# LIBRARY DESTINATION "/home/obs/TMP"
|
|
# ARCHIVE DESTINATION "/home/obs/TMP"
|
|
# RUNTIME DESTINATION "/home/obs/TMP"
|
|
# )
|