|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
|
|
|
|
# Set path where samples will be installed
|
|
|
|
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR} CACHE PATH "Path to where the samples will be installed")
|
|
|
|
option(INSTALL_SDK "Install binaries into the samples folder" OFF)
|
|
|
|
|
|
|
|
project(NvVideoEffects_SDK C CXX)
|
|
|
|
|
|
|
|
set(CMAKE_CONFIGURATION_TYPES "Release")
|
|
|
|
|
|
|
|
# Require C++20 and disable non-standard extensions
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
|
|
set(VCPKG_TARGET_TRIPLET "x64-windows")
|
|
|
|
set(CMAKE_TOOLCHAIN_FILE "C:/vcpkg/scripts/buildsystems/vcpkg.cmake")
|
|
|
|
|
|
|
|
|
|
|
|
add_definitions(-DNOMINMAX -DWIN32_LEAN_AND_MEAN)
|
|
|
|
|
|
|
|
# Set common build path for all targets
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
|
|
|
|
set(SDK_INCLUDES_PATH ${CMAKE_CURRENT_SOURCE_DIR}/nvvfx/include)
|
|
|
|
# Add target for NVVideoEffects
|
|
|
|
add_library(NVVideoEffects INTERFACE)
|
|
|
|
target_include_directories(NVVideoEffects INTERFACE ${SDK_INCLUDES_PATH})
|
|
|
|
|
|
|
|
else()
|
|
|
|
# Add target for NVVideoEffects
|
|
|
|
add_library(NVVideoEffects INTERFACE)
|
|
|
|
|
|
|
|
# found in different locations depending on type of package
|
|
|
|
find_path(VideoFX_INCLUDES
|
|
|
|
NAMES nvVideoEffects.h
|
|
|
|
PATHS
|
|
|
|
/usr/local/VideoFX/include
|
|
|
|
/usr/include/x86_64-linux-gnu
|
|
|
|
/usr/include
|
|
|
|
REQUIRED
|
|
|
|
)
|
|
|
|
|
|
|
|
target_include_directories(NVVideoEffects INTERFACE ${VideoFX_INCLUDES})
|
|
|
|
set(SDK_INCLUDES_PATH ${VideoFX_INCLUDES})
|
|
|
|
|
|
|
|
find_library(VideoFX_LIB
|
|
|
|
NAMES libVideoFX.so
|
|
|
|
PATHS
|
|
|
|
/usr/local/VideoFX/lib
|
|
|
|
/usr/lib/x86_64-linux-gnu
|
|
|
|
/usr/lib64
|
|
|
|
/usr/lib
|
|
|
|
REQUIRED
|
|
|
|
NO_DEFAULT_PATH)
|
|
|
|
|
|
|
|
target_link_libraries(NVVideoEffects INTERFACE "${VideoFX_LIB}")
|
|
|
|
|
|
|
|
message(STATUS "VideoFX_LIB: ${VideoFX_LIB}")
|
|
|
|
message(STATUS "SDK_INCLUDES_PATH: ${SDK_INCLUDES_PATH}")
|
|
|
|
|
|
|
|
|
|
|
|
# Add target for NVCVImage
|
|
|
|
add_library(NVCVImage INTERFACE)
|
|
|
|
|
|
|
|
# found in different locations depending on type of package
|
|
|
|
find_path(NVCVImage_INCLUDES
|
|
|
|
NAMES nvCVImage.h
|
|
|
|
PATHS
|
|
|
|
/usr/local/VideoFX/include
|
|
|
|
/usr/include/x86_64-linux-gnu
|
|
|
|
/usr/include
|
|
|
|
REQUIRED
|
|
|
|
)
|
|
|
|
|
|
|
|
target_include_directories(NVCVImage INTERFACE ${NVCVImage_INCLUDES})
|
|
|
|
|
|
|
|
|
|
|
|
find_library(NVCVImage_LIB
|
|
|
|
NAMES libNVCVImage.so
|
|
|
|
PATHS
|
|
|
|
/usr/local/VideoFX/lib
|
|
|
|
/usr/lib/x86_64-linux-gnu
|
|
|
|
/usr/lib64
|
|
|
|
/usr/lib
|
|
|
|
REQUIRED
|
|
|
|
NO_DEFAULT_PATH)
|
|
|
|
|
|
|
|
target_link_libraries(NVCVImage INTERFACE "${NVCVImage_LIB}")
|
|
|
|
|
|
|
|
message(STATUS "NVCVImage_LIB: ${NVCVImage_LIB}")
|
|
|
|
message(STATUS "NVCVImage_INCLUDES_PATH: ${NVCVImage_INCLUDES}")
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_subdirectory(samples)
|