initial commit
This commit is contained in:
+113
@@ -0,0 +1,113 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
project(mxl_multiviewer LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
option(
|
||||
MXL_MULTIVIEWER_ENABLE_MXL_SDK
|
||||
"Enable real MXL SDK integration"
|
||||
OFF
|
||||
)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(Vulkan REQUIRED)
|
||||
|
||||
pkg_check_modules(SDL3 REQUIRED sdl3)
|
||||
|
||||
add_executable(mxl_multiviewer
|
||||
main.cpp
|
||||
imgui/imgui.cpp
|
||||
imgui/imgui_draw.cpp
|
||||
imgui/imgui_tables.cpp
|
||||
imgui/imgui_widgets.cpp
|
||||
imgui/backends/imgui_impl_sdl3.cpp
|
||||
imgui/backends/imgui_impl_vulkan.cpp
|
||||
AppConfig.cpp
|
||||
FeedCreate.cpp
|
||||
FeedTexture.cpp
|
||||
NoSignalFeed.cpp
|
||||
MxlFeed.cpp
|
||||
MxlInstanceCache.cpp
|
||||
MxlSdkFeed.cpp
|
||||
SmpteBarsFeed.cpp
|
||||
TileLayout.cpp
|
||||
VulkanContext.cpp
|
||||
VulkanUtils.cpp
|
||||
Swapchain.cpp
|
||||
RenderPipeline.cpp
|
||||
V210ComputeDecoder.cpp
|
||||
)
|
||||
|
||||
target_include_directories(mxl_multiviewer PRIVATE
|
||||
${SDL3_INCLUDE_DIRS}
|
||||
${CMAKE_SOURCE_DIR}/imgui
|
||||
${CMAKE_SOURCE_DIR}/imgui/backends
|
||||
)
|
||||
|
||||
set_source_files_properties(
|
||||
imgui/imgui.cpp
|
||||
imgui/imgui_draw.cpp
|
||||
imgui/imgui_tables.cpp
|
||||
imgui/imgui_widgets.cpp
|
||||
imgui/backends/imgui_impl_sdl3.cpp
|
||||
imgui/backends/imgui_impl_vulkan.cpp
|
||||
PROPERTIES COMPILE_OPTIONS "-w"
|
||||
)
|
||||
|
||||
target_link_libraries(mxl_multiviewer PRIVATE
|
||||
${SDL3_LIBRARIES}
|
||||
)
|
||||
|
||||
target_compile_options(mxl_multiviewer PRIVATE
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wpedantic
|
||||
)
|
||||
|
||||
target_compile_definitions(mxl_multiviewer PRIVATE
|
||||
MXL_MULTIVIEWER_ENABLE_MXL_SDK=$<BOOL:${MXL_MULTIVIEWER_ENABLE_MXL_SDK}>
|
||||
)
|
||||
|
||||
if(MXL_MULTIVIEWER_ENABLE_MXL_SDK)
|
||||
set(MXL_SDK_ROOT "" CACHE PATH "Path to MXL SDK root directory")
|
||||
|
||||
if(NOT MXL_SDK_ROOT)
|
||||
message(FATAL_ERROR "MXL_SDK_ROOT must be set when MXL_MULTIVIEWER_ENABLE_MXL_SDK is ON")
|
||||
endif()
|
||||
|
||||
target_include_directories(mxl_multiviewer PRIVATE
|
||||
${MXL_SDK_ROOT}/lib/include
|
||||
${MXL_SDK_ROOT}/build/Linux-Clang-Release/lib/include
|
||||
)
|
||||
|
||||
target_link_directories(mxl_multiviewer PRIVATE
|
||||
${MXL_SDK_ROOT}/build/Linux-Clang-Release/lib
|
||||
${MXL_SDK_ROOT}/build/Linux-Clang-Release/lib/internal
|
||||
)
|
||||
|
||||
target_link_libraries(mxl_multiviewer PRIVATE
|
||||
mxl
|
||||
mxl-common
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(mxl_multiviewer PRIVATE
|
||||
${SDL3_LIBRARIES}
|
||||
Vulkan::Vulkan
|
||||
)
|
||||
|
||||
# v210 conversion test
|
||||
add_executable(v210_test v210_test.cpp)
|
||||
target_include_directories(v210_test PRIVATE ${CMAKE_SOURCE_DIR})
|
||||
|
||||
# Compile compute shader
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_SOURCE_DIR}/shaders/bin/v210_decode.comp.spv
|
||||
COMMAND glslangValidator -V
|
||||
${CMAKE_SOURCE_DIR}/shaders/v210_decode.comp
|
||||
-o ${CMAKE_SOURCE_DIR}/shaders/bin/v210_decode.comp.spv
|
||||
DEPENDS ${CMAKE_SOURCE_DIR}/shaders/v210_decode.comp
|
||||
COMMENT "Compiling v210_decode.comp to SPIR-V"
|
||||
)
|
||||
Reference in New Issue
Block a user