cmake_minimum_required(VERSION 3.24 FATAL_ERROR) project(dmf-studio VERSION 0.1.0 LANGUAGES CXX C ) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") option(DMF_BUILD_TESTS "Build tests" ON) option(DMF_BUILD_MXL_TOOLS "Build MXL tools (testsrc, sink)" ON) option(DMF_BUILD_DECKLINK "Build DeckLink I/O nodes" ON) option(DMF_BUILD_FABRICS "Build Fabrics bridge nodes" OFF) set(DECKLINK_SDK_DIR "" CACHE PATH "Path to Blackmagic DeckLink SDK root") if(DMF_BUILD_DECKLINK AND DECKLINK_SDK_DIR) add_subdirectory(nodes/decklink-in) add_subdirectory(nodes/decklink-out) endif() if(DMF_BUILD_FABRICS) set(MXL_ENABLE_FABRICS_OFI ON CACHE BOOL "" FORCE) add_subdirectory(nodes/fabric-bridge) endif() find_package(fmt CONFIG REQUIRED) find_package(spdlog CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) find_package(Libwebsockets CONFIG REQUIRED) find_package(Catch2 CONFIG QUIET) set(BUILD_TESTS OFF CACHE BOOL "" FORCE) if(DMF_BUILD_MXL_TOOLS) set(BUILD_TOOLS ON CACHE BOOL "" FORCE) set(BUILD_UTILS ON CACHE BOOL "" FORCE) endif() add_subdirectory(extern/mxl) add_subdirectory(libs/dmf-node) add_subdirectory(libs/dmf-engine) add_subdirectory(nodes/passthrough) add_subdirectory(engine) if(DMF_BUILD_TESTS AND Catch2_FOUND) add_subdirectory(tests) endif()