cmake_minimum_required(VERSION 3.16) project(ASIBFM700 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) # for ccls set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # pass to mcc-library option(USE_BSPLINE_PCM "Use of FITPACK bivariate splines for PCM" ON) find_package(cxxopts REQUIRED) set(EXAMPLES OFF CACHE BOOL "" FORCE) # set(CMAKE_BUILD_TYPE "Release") set(CMAKE_BUILD_TYPE "Debug") add_subdirectory(LibSidServo) # include(FetchContent) # FetchContent_Declare( # mcc # GIT_REPOSITORY https://git.sao.ru/timur/mcc.git # GIT_PROGRESS 1 # OVERRIDE_FIND_PACKAGE # ) # FetchContent_MakeAvailable(mcc) # set(CMAKE_MODULE_PATH # ${CMAKE_MODULE_PATH} # "${CMAKE_BINARY_DIR}/_deps/mcc-build" # ) # find_package(mcc REQUIRED) # execute_process( # WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/ # COMMAND ninja -C ${CMAKE_BINARY_DIR}/erfa_lib # ) # include(ExternalProject) # ExternalProject_Add( # mcclib # # PREFIX ${CMAKE_BINARY_DIR} # GIT_REPOSITORY https://git.sao.ru/timur/mcc.git # GIT_PROGRESS 1 # GIT_SHALLOW 1 # BINARY_DIR ${CMAKE_BINARY_DIR}/mcc_build # # INSTALL_DIR ${CMAKE_BINARY_DIR}/mcc_build # CMAKE_ARGS # -DBUILD_TESTS=OFF -USE_BSPLINE_PCM=${USE_BSPLINE_PCM} # -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/mcc_build # # BUILD_COMMAND make install # # BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/mcc_build/mccTargets.cmake # # INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Starting $ build" # ) # message(STATUS "MCC: ${mcc_INCLUDE_DIR}") # make_directory(${CMAKE_BINARY_DIR}/mcc_build/include) # set(CMAKE_MODULE_PATH # ${CMAKE_MODULE_PATH} # "${CMAKE_BINARY_DIR}/mcc_build" # ) # find_package(mcc CONFIG REQUIRED PATHS ${CMAKE_BINARY_DIR}/mcc_build) # add_library(mcc INTERFACE IMPORTED GLOBAL) # add_dependencies(mcc mcclib) # set_target_properties( # mcc # PROPERTIES # INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/mcc_build/include" # ) # target_link_libraries(mcc INTERFACE mcclib) # get_target_property(ii mcc INTERFACE_INCLUDE_DIRECTORIES) # message(STATUS "$INC: ${ii}") include(FetchContent) FetchContent_Declare( mcclib GIT_REPOSITORY https://timur@git.sao.ru/timur/mcc.git # GIT_REPOSITORY ssh://git@95.140.147.151:/home/git/mcc.git GIT_SHALLOW 1 GIT_PROGRESS 1 SOURCE_DIR ${CMAKE_BINARY_DIR}/mcc # OVERRIDE_FIND_PACKAGE ) set(BUILD_TESTS OFF) FetchContent_MakeAvailable(mcclib) # add_subdirectory(${CMAKE_BINARY_DIR}/mcc) if(USE_BSPLINE_PCM) FetchContent_GetProperties(mcclib BINARY_DIR mcclib_bindir) # to fix libfitpack_project.a target path issue # file(CREATE_LINK ${mcclib_bindir}/fitpack fitpack SYMBOLIC) endif() set(ASIBFM700_LIB_SRC asibfm700_common.h asibfm700_servocontroller.h asibfm700_servocontroller.cpp ) set(ASIBFM700_LIB asibfm700mount) add_library( ${ASIBFM700_LIB} STATIC ${ASIBFM700_LIB_SRC} asibfm700_mount.h asibfm700_mount.cpp asibfm700_configfile.h asibfm700_netserver.cpp asibfm700_netserver.h ) # add_dependencies(${ASIBFM700_LIB} mcc) # target_include_directories(${ASIBFM700_LIB} PUBLIC mcc spdlog ${ERFA_INCLUDE_DIR}) # target_link_libraries(${ASIBFM700_LIB} PUBLIC mcc spdlog ${ERFA_LIBFILE}) # target_link_libraries(${ASIBFM700_LIB} PUBLIC mcclib sidservo) target_link_libraries(${ASIBFM700_LIB} PUBLIC mcc sidservo atomic) if(USE_BSPLINE_PCM) target_compile_definitions(${ASIBFM700_LIB} PRIVATE USE_BSPLINE_PCM) endif() set(ASIBFM700_NETSERVER_APP asibfm700_netserver) add_executable(${ASIBFM700_NETSERVER_APP} asibfm700_netserver_main.cpp) target_link_libraries( ${ASIBFM700_NETSERVER_APP} PUBLIC cxxopts::cxxopts ${ASIBFM700_LIB} ) # include(CMakePrintHelpers) # cmake_print_properties( # TARGETS ${ASIBFM700_LIB} # PROPERTIES # INCLUDE_DIRECTORIES # INTERFACE_INCLUDE_DIRECTORIES # LINK_INTERFACE_LIBRARIES # ) # get_target_property(TARGET_INCLUDES ${ASIBFM700_LIB} INCLUDE_DIRECTORIES) # message(STATUS "${TARGET_INCLUDES}") include(GNUInstallDirs) install( TARGETS ${ASIBFM700_NETSERVER_APP} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )