Clean up
This commit is contained in:
101
CMakeLists.txt
101
CMakeLists.txt
@@ -1,101 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
|
||||
project(video-shader VERSION 0.1.0 LANGUAGES CXX C)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
if (NOT WIN32)
|
||||
message(FATAL_ERROR "Milestone 1 targets Windows x64 because it uses DeckLink COM and Direct3D 11.")
|
||||
endif()
|
||||
|
||||
set(DECKLINK_SDK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/Blackmagic DeckLink SDK 16.0")
|
||||
set(DECKLINK_IDL "${DECKLINK_SDK_DIR}/Win/include/DeckLinkAPI.idl")
|
||||
|
||||
if (NOT EXISTS "${DECKLINK_IDL}")
|
||||
message(FATAL_ERROR "DeckLink SDK not found at ${DECKLINK_SDK_DIR}")
|
||||
endif()
|
||||
|
||||
set(WINDOWS_KITS_10_DIR "$ENV{ProgramFiles\(x86\)}/Windows Kits/10")
|
||||
file(GLOB WINDOWS_SDK_MIDL_DIRS
|
||||
"${WINDOWS_KITS_10_DIR}/bin/*/x64"
|
||||
"${WINDOWS_KITS_10_DIR}/bin/*/arm64"
|
||||
)
|
||||
list(SORT WINDOWS_SDK_MIDL_DIRS)
|
||||
list(REVERSE WINDOWS_SDK_MIDL_DIRS)
|
||||
|
||||
find_program(MIDL_EXECUTABLE
|
||||
NAMES midl midl.exe
|
||||
HINTS ${WINDOWS_SDK_MIDL_DIRS}
|
||||
DOC "Microsoft Interface Definition Language compiler"
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
||||
set(CONFIGURED_DIR "${CMAKE_CURRENT_BINARY_DIR}/configured")
|
||||
set(DECKLINK_GENERATED_HEADER "${GENERATED_DIR}/DeckLinkAPI_h.h")
|
||||
set(DECKLINK_GENERATED_IID "${GENERATED_DIR}/DeckLinkAPI_i.c")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${DECKLINK_GENERATED_HEADER}" "${DECKLINK_GENERATED_IID}"
|
||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${GENERATED_DIR}"
|
||||
COMMAND "${MIDL_EXECUTABLE}"
|
||||
/nologo
|
||||
/char signed
|
||||
/env x64
|
||||
/h DeckLinkAPI_h.h
|
||||
/iid DeckLinkAPI_i.c
|
||||
/proxy DeckLinkAPI_p.c
|
||||
/tlb DeckLinkAPI.tlb
|
||||
/out "${GENERATED_DIR}"
|
||||
/I "${DECKLINK_SDK_DIR}/Win/include"
|
||||
"${DECKLINK_IDL}"
|
||||
DEPENDS "${DECKLINK_IDL}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_library(decklink_api_iids STATIC "${DECKLINK_GENERATED_IID}")
|
||||
target_include_directories(decklink_api_iids PUBLIC "${GENERATED_DIR}")
|
||||
|
||||
set(APP_CONTENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/web")
|
||||
set(APP_SHADER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/shaders")
|
||||
configure_file(src/AppConfig.h.in "${CONFIGURED_DIR}/AppConfig.h" @ONLY)
|
||||
|
||||
add_executable(video-shader
|
||||
src/main.cpp
|
||||
src/AppState.cpp
|
||||
src/DeckLinkPipeline.cpp
|
||||
src/D3DProcessor.cpp
|
||||
src/FileUtil.cpp
|
||||
src/JsonUtil.cpp
|
||||
src/ShaderLibrary.cpp
|
||||
src/WebServer.cpp
|
||||
)
|
||||
|
||||
target_include_directories(video-shader PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src"
|
||||
"${GENERATED_DIR}"
|
||||
"${CONFIGURED_DIR}"
|
||||
)
|
||||
|
||||
target_compile_definitions(video-shader PRIVATE
|
||||
NOMINMAX
|
||||
WIN32_LEAN_AND_MEAN
|
||||
)
|
||||
|
||||
target_link_libraries(video-shader PRIVATE
|
||||
decklink_api_iids
|
||||
d3d11
|
||||
dxgi
|
||||
d3dcompiler
|
||||
ws2_32
|
||||
bcrypt
|
||||
ole32
|
||||
oleaut32
|
||||
)
|
||||
|
||||
add_custom_command(TARGET video-shader POST_BUILD
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/web" "$<TARGET_FILE_DIR:video-shader>/web"
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/shaders" "$<TARGET_FILE_DIR:video-shader>/shaders"
|
||||
)
|
||||
Reference in New Issue
Block a user