cmake_minimum_required(VERSION 3.14) # set(CMAKE_BUILD_TYPE Release) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") # ******* SPDLOG LIBRARY ******* include(FetchContent) include(ExternalProject) set(SPDLOG_USE_STD_FORMAT ON CACHE INTERNAL "Use of C++20 std::format") set(SPDLOG_FMT_EXTERNAL OFF CACHE INTERNAL "Turn off external fmt library") FetchContent_Declare(spdlog # ExternalProject_Add(spdlog # SOURCE_DIR ${CMAKE_BINARY_DIR}/spdlog_lib # BINARY_DIR ${CMAKE_BINARY_DIR}/spdlog_lib/build GIT_REPOSITORY "https://github.com/gabime/spdlog.git" GIT_TAG "v1.15.1" GIT_SHALLOW TRUE GIT_SUBMODULES "" GIT_PROGRESS TRUE CMAKE_ARGS "-DSPDLOG_USE_STD_FORMAT=ON -DSPDLOG_FMT_EXTERNAL=OFF" # CONFIGURE_COMMAND "" # BUILD_COMMAND "" # INSTALL_COMMAND "" # UPDATE_COMMAND "" # SOURCE_SUBDIR cmake # turn off building OVERRIDE_FIND_PACKAGE ) find_package(spdlog CONFIG) # ******* ERFA LIBRARY ******* # ExternalProject_Add(erfalib # PREFIX ${CMAKE_BINARY_DIR}/erfa_lib # GIT_REPOSITORY "https://github.com/liberfa/erfa.git" # GIT_TAG "v2.0.1" # UPDATE_COMMAND "" # PATCH_COMMAND "" # # BINARY_DIR erfa_build # # SOURCE_DIR erfa # # INSTALL_DIR # LOG_CONFIGURE 1 # CONFIGURE_COMMAND meson setup --reconfigure -Ddefault_library=static -Dbuildtype=release # -Dprefix=${CMAKE_BINARY_DIR}/erfa_lib -Dlibdir= -Dincludedir= -Ddatadir= # BUILD_COMMAND ninja -C # INSTALL_COMMAND meson install -C # BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a # ) add_library(ERFA_LIB STATIC IMPORTED) set_target_properties(ERFA_LIB PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a) add_dependencies(ERFA_LIB erfalib) set(ERFA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/erfa_lib) # include_directories(${ERFA_INCLUDE_DIR}) message(STATUS ${ERFA_INCLUDE_DIR}) add_subdirectory(bsplines) message(STATUS "BSPLINES_INCLUDE_DIR: " ${BSPLINES_INCLUDE_DIR}) include_directories(${BSPLINES_INCLUDE_DIR}) set(MCC_LIBRARY_SRC1 mcc_generics.h mcc_defaults.h mcc_traits.h mcc_utils.h mcc_ccte_iers.h mcc_ccte_iers_default.h mcc_ccte_erfa.h mcc_pcm.h mcc_telemetry.h mcc_angle.h mcc_pzone.h mcc_pzone_container.h mcc_finite_state_machine.h mcc_generic_mount.h mcc_tracking_model.h) list(APPEND MCC_LIBRARY_SRC1 mcc_spdlog.h) set(MCC_LIBRARY1 mcc1) add_library(${MCC_LIBRARY1} INTERFACE ${MCC_LIBRARY_SRC1}) target_compile_features(${MCC_LIBRARY1} INTERFACE cxx_std_23) target_include_directories(${MCC_LIBRARY1} INTERFACE ${ERFA_INCLUDE_DIR} ${BSPLINES_INCLUDE_DIR}) option(WITH_TESTS "Build tests" ON) if (WITH_TESTS) set(CTTE_TEST_APP ccte_test) add_executable(${CTTE_TEST_APP} tests/ccte_test.cpp) target_include_directories(${CTTE_TEST_APP} PRIVATE ${ERFA_INCLUDE_DIR}) target_link_libraries(${CTTE_TEST_APP} ERFA_LIB bsplines) enable_testing() endif()