...
This commit is contained in:
159
CMakeLists.txt
Normal file
159
CMakeLists.txt
Normal file
@@ -0,0 +1,159 @@
|
||||
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 $<CONFIG> 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://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}
|
||||
)
|
||||
Reference in New Issue
Block a user