60 lines
1.7 KiB
CMake
60 lines
1.7 KiB
CMake
|
|
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/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)
|
|
|
|
|
|
install(TARGETS mosh-me mk-moshable)
|
|
|
|
################################################################################
|
|
|
|
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()
|
|
|
|
|