cmake_minimum_required(VERSION 3.10) project( mosh-me VERSION 0.1.0 LANGUAGES CXX) find_package(spdlog REQUIRED) find_package(avcpp REQUIRED) # ############################################################################## add_library(mosh-me-lib STATIC ${PROJECT_SOURCE_DIR}/src/avpipe.cpp ${PROJECT_SOURCE_DIR}/src/pipeline.cpp ) target_link_libraries(mosh-me-lib PUBLIC avcpp::avcpp spdlog::spdlog) target_compile_features(mosh-me-lib PUBLIC cxx_std_23) target_include_directories(mosh-me-lib PUBLIC ${PROJECT_SOURCE_DIR}/include) add_executable(mosh-me ${PROJECT_SOURCE_DIR}/app/mosh-me.cpp ) target_link_libraries(mosh-me avcpp::avcpp spdlog::spdlog) target_compile_features(mosh-me PUBLIC cxx_std_23) target_include_directories(mosh-me PRIVATE ${PROJECT_SOURCE_DIR}/include) add_executable(mk-moshable ${PROJECT_SOURCE_DIR}/app/mk-moshable.cpp ) target_link_libraries(mk-moshable avcpp::avcpp spdlog::spdlog) target_compile_features(mk-moshable PUBLIC cxx_std_23) target_include_directories(mk-moshable PRIVATE ${PROJECT_SOURCE_DIR}/include) add_executable(mosh-pipe ${PROJECT_SOURCE_DIR}/app/mosh-pipe.cpp ) target_link_libraries(mosh-pipe mosh-me-lib) install(TARGETS mosh-me mk-moshable mosh-pipe) ################################################################################ include(CTest) if (BUILD_TESTING) find_package(Catch2 REQUIRED) include(Catch) add_executable(mosh-me_test ${PROJECT_SOURCE_DIR}/test/pipeline.cpp ) target_link_libraries(mosh-me_test mosh-me-lib Catch2::Catch2WithMain) catch_discover_tests(mosh-me_test) endif() ################################################################################ if(CMAKE_EXPORT_COMPILE_COMMANDS) set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}) endif()