Merge branch 'main' into cudalowlatencydemo-build

pull/21/head
Paul Hindt 2022-04-27 17:32:02 -07:00 committed by GitHub
commit cc04561a66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
67 changed files with 1227 additions and 706 deletions

View File

@ -3,94 +3,79 @@ cmake_minimum_required(VERSION 3.10)
project(ntv2)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
# AJA Includes
# AJA includes
include(AJAHelpers)
include(BuildOptions)
include(CommonDefines)
include(CommonFlags)
include(CommonPaths)
include(CommonVars)
include(AJABuildOptions)
include(AJACommonDefines)
include(AJACommonFlags)
include(AJACommonPaths)
include(AJACommonVars)
include(AJAVersionConfig)
# CMake includes
include(GNUInstallDirs)
# Override the following variables to set the NTV2 SDK version defines and strings used for the SDK and apps
if (AJA_BUILDING_CMAKE)
string(TIMESTAMP AJA_BUILD_YEAR "%Y")
string(TIMESTAMP DATETIME_NOW "\"%A %b %d, %Y (%m/%d/%Y @ %H:%M:%S GMT+8)\"")
string(TIMESTAMP DATETIME_NOW "\"%m/%d/%Y +8:%H:%M:%S\"")
if (NOT AJA_NTV2_SDK_VERSION_MAJOR)
set(AJA_NTV2_SDK_VERSION_MAJOR 16)
endif()
if (NOT AJA_NTV2_SDK_VERSION_MINOR)
set(AJA_NTV2_SDK_VERSION_MINOR 2)
endif()
if (NOT AJA_NTV2_SDK_VERSION_POINT)
set(AJA_NTV2_SDK_VERSION_POINT 0)
endif()
if (NOT AJA_NTV2_SDK_BUILD_NUMBER)
set(AJA_NTV2_SDK_BUILD_NUMBER 1)
endif()
set(AJA_NTV2_SDK_BUILD_DATETIME ${DATETIME_NOW})
set(AJA_NTV2_SDK_BUILD_TYPE "\"d\"") # r = release, d = debug, b = beta
set(AJA_NTV2_VER_STR "${AJA_NTV2_SDK_VERSION_MAJOR}.${AJA_NTV2_SDK_VERSION_MINOR}.${AJA_NTV2_SDK_VERSION_POINT}")
set(AJA_NTV2_VER_STR_LONG "${AJA_NTV2_VER_STR}.${AJA_NTV2_SDK_BUILD_NUMBER}")
string(REPLACE "." "," AJA_NTV2_VER_STR_COMMA "${AJA_NTV2_VER_STR_LONG}")
string(REPLACE "\"" "" aja_ntv2_build_type_letter "${AJA_NTV2_SDK_BUILD_TYPE}")
message(STATUS "ntv2 version: ${AJA_NTV2_VER_STR} ${aja_ntv2_build_type_letter}${AJA_NTV2_SDK_BUILD_NUMBER}")
endif()
message(STATUS "Platform: ${CMAKE_SYSTEM_NAME}")
message(STATUS "Arch: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
message(STATUS "Compiler: ${CMAKE_CXX_COMPILER_ID}")
aja_message(STATUS "Platform: ${CMAKE_SYSTEM_NAME}")
aja_message(STATUS "Arch: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
aja_message(STATUS "Compiler: ${CMAKE_CXX_COMPILER_ID}")
aja_message(STATUS "Install Prefix: ${CMAKE_INSTALL_PREFIX}")
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
message(STATUS "Windows API Version: ${CMAKE_SYSTEM_VERSION}")
aja_message(STATUS "Windows API Version: ${CMAKE_SYSTEM_VERSION}")
string(REPLACE "." ";" AJA_WIN_API_VER "${CMAKE_SYSTEM_VERSION}")
list(GET AJA_WIN_API_VER 0 AJA_WIN_API_VER_MAJOR)
list(GET AJA_WIN_API_VER 1 AJA_WIN_API_VER_MINOR)
list(GET AJA_WIN_API_VER 2 AJA_WIN_API_VER_BUILD)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
message (STATUS "macOS Architectures: ${CMAKE_OSX_ARCHITECTURES}")
message (STATUS "macOS Deployment Target: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
aja_message(STATUS "macOS Architectures: ${CMAKE_OSX_ARCHITECTURES}")
aja_message(STATUS "macOS Deployment Target: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
else()
message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif()
message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}")
# Optional build artifacts output directory
if (AJA_DEPLOY_OUTPUTS)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
"${AJA_CMAKE_DIR}/../out/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-${AJA_BITS}bit/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
"${AJA_CMAKE_DIR}/../out/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-${AJA_BITS}bit/lib")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
"${AJA_CMAKE_DIR}/../out/${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}-${AJA_BITS}bit/bin")
aja_message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif()
# Add NTV2 sub-directories to CMake build config
if (AJA_BUILD_APPS AND EXISTS ${AJA_APPS_ROOT})
message(STATUS "Adding ajaapps...")
aja_message(STATUS "adding ajaapps...")
add_subdirectory(ajaapps)
endif()
if (AJA_BUILD_DRIVER AND EXISTS ${AJA_DRIVER_ROOT})
message(STATUS "Adding ajadriver...")
aja_message(STATUS "adding ajadriver...")
add_subdirectory(ajadriver)
endif()
if (AJA_BUILD_LIBS AND EXISTS ${AJA_LIBRARIES_ROOT})
message(STATUS "Adding ajalibraries...")
aja_message(STATUS "adding ajalibraries...")
add_subdirectory(ajalibraries)
endif()
if (AJA_BUILD_PLUGINS AND EXISTS ${AJA_PLUGINS_ROOT})
message(STATUS "Adding ajaplugins...")
aja_message(STATUS "adding ajaplugins...")
add_subdirectory(ajaplugins)
endif()
if (AJA_BUILD_QA AND EXISTS ${AJA_QA_ROOT})
message(STATUS "Adding qa...")
aja_message(STATUS "adding qa...")
add_subdirectory(qa)
endif()
if (AJA_BUILD_NONAJA AND EXISTS ${NON_AJA_ROOT})
message(STATUS "Adding non-aja...")
add_subdirectory(non-aja)
aja_message(STATUS "adding non-aja...")
add_subdirectory(non-aja)
endif()
# Install NTV2 CMake files
if (AJA_INSTALL_HEADERS OR AJA_INSTALL_SOURCES)
install(FILES cmake/AJABuildOptions.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJACommonDefines.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJACommonFlags.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJACommonPaths.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJACommonVars.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJAHelpers.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJAQtHelpers.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/AJAVersionConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/linux_ldd_qt_libs.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake)
install(FILES cmake/toolchain/aja-ci-toolchain.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/toolchain)
install(FILES cmake/toolchain/clang-unix_toolchain.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/toolchain)
install(FILES cmake/toolchain/clang-win_toolchain.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/toolchain)
install(FILES cmake/toolchain/msvc_toolchain.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/toolchain)
install(FILES cmake/bundle/linux/lin-ver.json.in DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/bundle/linux)
install(FILES cmake/bundle/mac/Info.plist.in DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/bundle/mac)
install(FILES cmake/bundle/windows/win-ver.rc.in DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake/bundle/windows)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/)
endif()

View File

@ -1,87 +1,88 @@
# aja apps
if (AJA_BUILD_APPS)
# aja core demos
add_subdirectory(crossplatform/demoapps/ntv2burn)
add_subdirectory(crossplatform/demoapps/ntv2burn4kquadrant)
add_subdirectory(crossplatform/demoapps/ntv2capture)
add_subdirectory(crossplatform/demoapps/ntv2capture4k)
add_subdirectory(crossplatform/demoapps/ntv2capture8k)
add_subdirectory(crossplatform/demoapps/ntv2dolbyplayer)
add_subdirectory(crossplatform/demoapps/ntv2enumerateboards)
add_subdirectory(crossplatform/demoapps/ntv2fieldburn)
add_subdirectory(crossplatform/demoapps/ntv2hdrsetup)
add_subdirectory(crossplatform/demoapps/ntv2llburn)
add_subdirectory(crossplatform/demoapps/ntv2outputtestpattern)
add_subdirectory(crossplatform/demoapps/ntv2player)
add_subdirectory(crossplatform/demoapps/ntv2player4k)
add_subdirectory(crossplatform/demoapps/ntv2player8k)
add_subdirectory(crossplatform/demoapps/ntv2switchbitfile)
aja_add_subdirectory(crossplatform/demoapps/ntv2burn)
aja_add_subdirectory(crossplatform/demoapps/ntv2burn4kquadrant)
aja_add_subdirectory(crossplatform/demoapps/ntv2capture)
aja_add_subdirectory(crossplatform/demoapps/ntv2capture4k)
aja_add_subdirectory(crossplatform/demoapps/ntv2capture8k)
aja_add_subdirectory(crossplatform/demoapps/ntv2dolbyplayer)
aja_add_subdirectory(crossplatform/demoapps/ntv2enumerateboards)
aja_add_subdirectory(crossplatform/demoapps/ntv2fieldburn)
aja_add_subdirectory(crossplatform/demoapps/ntv2hdrsetup)
aja_add_subdirectory(crossplatform/demoapps/ntv2llburn)
aja_add_subdirectory(crossplatform/demoapps/ntv2outputtestpattern)
aja_add_subdirectory(crossplatform/demoapps/ntv2player)
aja_add_subdirectory(crossplatform/demoapps/ntv2player4k)
aja_add_subdirectory(crossplatform/demoapps/ntv2player8k)
aja_add_subdirectory(crossplatform/demoapps/ntv2switchbitfile)
# nvidia demos
add_subdirectory(crossplatform/demoapps/NVIDIA/cudalowlatencydemo)
add_subdirectory(crossplatform/demoapps/NVIDIA/dvplowlatencydemo)
aja_add_subdirectory(crossplatform/demoapps/NVIDIA/cudalowlatencydemo)
# aja_add_subdirectory(crossplatform/demoapps/NVIDIA/dvplowlatencydemo) # TODO(paulh): Need to audit dependencies for open-source distribution.
# tools
add_subdirectory(crossplatform/logjammer)
add_subdirectory(crossplatform/logreader)
add_subdirectory(crossplatform/ntv2firmwareinstaller)
add_subdirectory(crossplatform/ntv2thermo)
add_subdirectory(crossplatform/pciwhacker)
add_subdirectory(crossplatform/rdmawhacker)
add_subdirectory(crossplatform/regio)
add_subdirectory(crossplatform/supportlog)
add_subdirectory(crossplatform/testaux)
add_subdirectory(crossplatform/testcrc)
add_subdirectory(crossplatform/testframe)
add_subdirectory(crossplatform/testp2p)
add_subdirectory(crossplatform/testrdma)
add_subdirectory(crossplatform/vpidtool)
aja_add_subdirectory(crossplatform/logjammer)
aja_add_subdirectory(crossplatform/logreader)
aja_add_subdirectory(crossplatform/ntv2firmwareinstaller)
aja_add_subdirectory(crossplatform/ntv2thermo)
aja_add_subdirectory(crossplatform/pciwhacker)
aja_add_subdirectory(crossplatform/rdmawhacker)
aja_add_subdirectory(crossplatform/regio)
aja_add_subdirectory(crossplatform/supportlog)
aja_add_subdirectory(crossplatform/testaux)
aja_add_subdirectory(crossplatform/testcrc)
aja_add_subdirectory(crossplatform/testframe)
aja_add_subdirectory(crossplatform/testp2p)
aja_add_subdirectory(crossplatform/testrdma)
aja_add_subdirectory(crossplatform/vpidtool)
if (NOT AJA_BUILD_OPENSOURCE)
# retail apps/services
add_subdirectory(crossplatform/ajadaemon)
add_subdirectory(crossplatform/controlpanel)
add_subdirectory(crossplatform/controlroom)
aja_add_subdirectory(crossplatform/ajadaemon "AJA Retail Daemon" "AJA Retail Daemon")
aja_add_subdirectory(crossplatform/controlpanel "AJA ControlPanel" "AJA ControlPanel - Retail Device Configuration")
aja_add_subdirectory(crossplatform/controlroom "AJA ControlRoom" "AJA Control Room - Ingest & Playout Application")
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND AJA_BUILD_NONAJA)
# ndibridge is currently Linux-only, and requires building libsamplerate
add_subdirectory(crossplatform/ndibridge)
aja_add_subdirectory(crossplatform/ndibridge "AJA NDI Bridge" "AJA NDI Bridge - Make It So")
endif()
# oem/internal tools
# NOTE(paulh): ajalogger is MIT licensed but need to remove dependency on ajagui/AJAAboutBox
add_subdirectory(crossplatform/ajalogger)
add_subdirectory(crossplatform/hdmiinstatus)
add_subdirectory(crossplatform/konaburner)
add_subdirectory(crossplatform/mcap)
add_subdirectory(crossplatform/ntv2cmd)
add_subdirectory(crossplatform/ntv2watcher)
add_subdirectory(crossplatform/systemtest)
aja_add_subdirectory(crossplatform/ajalogger "AJA Logger" "AJA Logger - Log All The Things")
aja_add_subdirectory(crossplatform/hdmiinstatus)
aja_add_subdirectory(crossplatform/konaburner)
aja_add_subdirectory(crossplatform/mcap)
aja_add_subdirectory(crossplatform/ntv2cmd)
aja_add_subdirectory(crossplatform/ntv2watcher "AJA NTV2 Watcher" "AJA NTV2 Watcher")
# aja_add_subdirectory(crossplatform/rovocontrol "AJA RovoControl" "AJA RovoControl")
aja_add_subdirectory(crossplatform/systemtest "AJA System Test" "AJA System Test")
# aja cc demos
add_subdirectory(crossplatform/demoapps/ntv2ccgrabber)
add_subdirectory(crossplatform/demoapps/ntv2ccplayer)
aja_add_subdirectory(crossplatform/demoapps/ntv2ccgrabber)
aja_add_subdirectory(crossplatform/demoapps/ntv2ccplayer)
# aja cuda demos (TODO)
# add_subdirectory(crossplatform/demoapps/ntv2cudacapture)
# aja_add_subdirectory(crossplatform/demoapps/ntv2cudacapture)
# aja hevc demos
# NOTE: These demos use proprietary code and are not included in the open-source NTV2 distribution.
add_subdirectory(crossplatform/demoapps/ntv2encodehevc)
add_subdirectory(crossplatform/demoapps/ntv2encodehevcfile)
add_subdirectory(crossplatform/demoapps/ntv2encodehevcvif)
aja_add_subdirectory(crossplatform/demoapps/ntv2encodehevc)
aja_add_subdirectory(crossplatform/demoapps/ntv2encodehevcfile)
aja_add_subdirectory(crossplatform/demoapps/ntv2encodehevcvif)
# aja opengl demos (TODO)
# add_subdirectory(crossplatform/demoapps/ntv2oglcapture)
# add_subdirectory(crossplatform/demoapps/ntv2ogldpxreader)
# add_subdirectory(crossplatform/demoapps/ntv2testOGL)
# add_subdirectory(crossplatform/demoapps/ntv2ogloutput)
# aja_add_subdirectory(crossplatform/demoapps/ntv2oglcapture)
# aja_add_subdirectory(crossplatform/demoapps/ntv2ogldpxreader)
# aja_add_subdirectory(crossplatform/demoapps/ntv2testOGL)
# aja_add_subdirectory(crossplatform/demoapps/ntv2ogloutput)
# aja Qt-based demos (TODO)
# add_subdirectory(crossplatform/demoapps/ntv2dpxplayer)
add_subdirectory(crossplatform/demoapps/ntv2konaipj2ksetup)
add_subdirectory(crossplatform/demoapps/ntv2konaipjsonsetup)
# add_subdirectory(crossplatform/demoapps/ntv2playcorder)
# add_subdirectory(crossplatform/demoapps/ntv2recorddpx)
# add_subdirectory(crossplatform/demoapps/ntv2stereocapture)
# add_subdirectory(crossplatform/demoapps/ntv2playbackdpx)
# aja_add_subdirectory(crossplatform/demoapps/ntv2dpxplayer)
aja_add_subdirectory(crossplatform/demoapps/ntv2konaipj2ksetup)
aja_add_subdirectory(crossplatform/demoapps/ntv2konaipjsonsetup)
# aja_add_subdirectory(crossplatform/demoapps/ntv2playcorder)
# aja_add_subdirectory(crossplatform/demoapps/ntv2recorddpx)
# aja_add_subdirectory(crossplatform/demoapps/ntv2stereocapture)
# aja_add_subdirectory(crossplatform/demoapps/ntv2playbackdpx)
endif()
endif()

View File

@ -1,7 +1,6 @@
/* SPDX-License-Identifier: MIT */
//
// Copyright (C) 2012 AJA Video Systems, Inc.
// Proprietary and Confidential information.
// Copyright (C) 2012-2022 AJA Video Systems, Inc.
//
#include "ntv2gpucircularbuffer.h"
#include "ajabase/common/circularbuffer.h"

View File

@ -1,7 +1,6 @@
/* SPDX-License-Identifier: MIT */
/* SPDX-License-Identifier: MIT */
//
// Copyright (C) 2012 AJA Video Systems, Inc.
// Proprietary and Confidential information.
// Copyright (C) 2012-2022 AJA Video Systems, Inc.
//
#ifndef NTV2GPUCIRCULARBUFFER_H
#define NTV2GPUCIRCULARBUFFER_H

View File

@ -1,4 +1,4 @@
/* SPDX-License-Identifier: MIT */
/* SPDX-License-Identifier: MIT */
#ifndef _OGLVIEW_
#define _OGLVIEW_

View File

@ -1,4 +1,4 @@
/* SPDX-License-Identifier: MIT */
/* SPDX-License-Identifier: MIT */
#ifndef _OPENGL_
#define _OPENGL_

View File

@ -1,7 +1,6 @@
/* SPDX-License-Identifier: MIT */
//
// Copyright (C) 2012 AJA Video Systems, Inc.
// Proprietary and Confidential information.
// Copyright (C) 2012-2022 AJA Video Systems, Inc.
//
#include "ntv2gpucircularbuffer.h"
#include "ajabase/common/circularbuffer.h"

View File

@ -1,7 +1,6 @@
/* SPDX-License-Identifier: MIT */
//
// Copyright (C) 2012 AJA Video Systems, Inc.
// Proprietary and Confidential information.
// Copyright (C) 2012-2022 AJA Video Systems, Inc.
//
#ifndef NTV2GPUCIRCULARBUFFER_H
#define NTV2GPUCIRCULARBUFFER_H

View File

@ -1,9 +1,10 @@
# NOTE: Ensure that the CUDA Toolkit v11.1 or later is installed and in your PATH.
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
message("skipping cudalowlatencydemo (requires Linux)")
aja_message(STATUS "skipping cudalowlatencydemo (requires Linux)")
return()
endif()
find_package(CUDA 11.1)
if (NOT CUDA_FOUND)
message("skipping cudalowlatencydemo (CUDA not found)")
@ -12,17 +13,17 @@ endif()
set(OpenGL_GL_PREFERENCE LEGACY)
find_package(OpenGL)
if (NOT OPENGL_FOUND)
message("skipping cudalowlatencydemo (OpenGL not found)")
aja_message(STATUS "skipping cudalowlatencydemo (OpenGL not found)")
return()
endif()
find_package(GLEW)
if (NOT GLEW_FOUND)
message("skipping cudalowlatencydemo (GLEW not found)")
aja_message(STATUS "skipping cudalowlatencydemo (GLEW not found)")
return()
endif()
find_package(X11)
if (NOT X11_FOUND)
message("skipping cudalowlatencydemo (X11 not found)")
aja_message(STATUS "skipping cudalowlatencydemo (X11 not found)")
return()
endif()
@ -34,7 +35,6 @@ set(TARGET_COMPILE_DEFS
-DAJA_RDMA=1)
set(TARGET_INCLUDE_DIRS
${AJA_APPS_ROOT}/crossplatform/demoapps/NVIDIA/common
${AJA_APPS_ROOT}/crossplatform/demoapps/NVIDIA/commonCUDA
${AJA_APPS_ROOT}/crossplatform/demoapps
${AJA_LIBRARIES_ROOT}
@ -44,8 +44,6 @@ set(TARGET_INCLUDE_DIRS
${OPENGL_INCLUDE_DIRS}
${GLEW_INCLUDE_DIRS})
message("GLEW INCLUDE: ${GLEW_INCLUDE_DIRS}")
set(DEMO_APPS_SOURCES
${AJA_APPS_ROOT}/crossplatform/demoapps/ntv2democommon.cpp)
set(DEMO_APPS_HEADERS
@ -56,24 +54,7 @@ set(CUDALOWLATENCYDEMO_BUILD_FILES
kernel.cu)
set(CUDALOWLATENCYDEMO_SOURCES
cudaapp.cpp)
set(NVIDIA_COMMON_SOURCES
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2errorlist.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2errorlist.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2glTextureTransfer.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2glTextureTransferNV.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2glTextureTransferNV.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2gpucircularbuffer.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2gpucircularbuffer.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2rendertotexture.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2rendertotexture.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2texture.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/ntv2texture.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/oglview.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/oglview.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/opengl.h
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/simplegpuvio.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/../common/simplegpuvio.h
)
set(NVIDIA_COMMONCUDA_SOURCES
# ${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/assertion.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/cudaUtils.h
@ -108,44 +89,36 @@ set(NVIDIA_COMMONCUDA_SOURCES
set(TARGET_SOURCES
${CUDALOWLATENCYDEMO_SOURCES}
${NVIDIA_COMMON_SOURCES}
${NVIDIA_COMMONCUDA_SOURCES}
${DEMO_APPS_HEADERS}
${DEMO_APPS_SOURCES})
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
find_library(FOUNDATION_FRAMEWORK Foundation)
set(TARGET_LINK_LIBS ${FOUNDATION_FRAMEWORK})
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(TARGET_LINK_LIBS X11 OpenGL::GL OpenGL::GLU GLEW::GLEW cuda cudart dl pthread rt)
# cuda_include_directories(${TARGET_INCLUDE_DIRS})
# cuda_compile(CUDA_OBJ kernel.cu)
set(TARGET_LINK_LIBS X11 OpenGL::GL OpenGL::GLU GLEW::GLEW cuda dl pthread rt)
add_executable(cudalowlatencydemo ${TARGET_SOURCES} kernel.cu)
add_dependencies(cudalowlatencydemo ${CUDA_OBJ} ajantv2)
target_compile_definitions(cudalowlatencydemo PUBLIC ${TARGET_COMPILE_DEFS})
target_include_directories(cudalowlatencydemo PUBLIC ${TARGET_INCLUDE_DIRS})
target_link_libraries(cudalowlatencydemo PUBLIC ajantv2 ${TARGET_LINK_LIBS})
# add_custom_command(
# TARGET cudalowlatencydemo
# PRE_BUILD
# COMMAND ${CUDA_HOST_COMPILER} -c -I${AJA_APPS_ROOT}/crossplatform/demoapps/NVIDIA/common -I${AJA_APPS_ROOT}/crossplatform/demoapps/NVIDIA/commonCUDA -I${AJA_APPS_ROOT}/crossplatform/demoapps -I${AJA_LIBRARIES_ROOT} -I${AJA_LIB_NTV2_ROOT}/includes -I${CUDA_INCLUDE_DIRS} -I${OPENGL_INCLUDE_DIRS} -I${GLEW_INCLUDE_DIRS} -I${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA kernel.cu
# DEPENDS kernel.cu
# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
# VERBATIM)
target_compile_definitions(cudalowlatencydemo PRIVATE ${TARGET_COMPILE_DEFS})
target_include_directories(cudalowlatencydemo PRIVATE ${TARGET_INCLUDE_DIRS})
target_link_libraries(cudalowlatencydemo PRIVATE ajantv2 ${TARGET_LINK_LIBS})
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${CUDALOWLATENCYDEMO_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/cudalowlatencydemo)
install(FILES ${CUDALOWLATENCYDEMO_BUILD_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/cudalowlatencydemo)
install(FILES ${NVIDIA_COMMON_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/common)
install(FILES ${NVIDIA_COMMONCUDA_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/commonCUDA)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/cudalowlatencydemo)
endif()
install(TARGETS cudalowlatencydemo
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
message("added cudalowlatencydemo")
if (AJA_CODE_SIGN)
aja_code_sign(cudalowlatencydemo)
endif()

View File

@ -1,6 +1,5 @@
#
# Copyright (C) 2004-2021 AJA Video Systems, Inc.
# Proprietary and Confidential information.
# SPDX-License-Identifier: MIT
# Copyright (C) 2004-2022 AJA Video Systems, Inc.
# All righs reserved
#
DIR := $(strip $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))))

View File

@ -1,13 +1,37 @@
project(dvplowlatencydemo)
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
message("skipping dvplowlatencydemo (requires Linux)")
aja_message(STATUS "skipping dvplowlatencydemo (requires Linux)")
return()
endif()
find_package(CUDA 11.2)
if (NOT CUDA_FOUND)
aja_message(STATUS "skipping cudalowlatencydemo (CUDA not found)")
return()
endif()
set(OpenGL_GL_PREFERENCE LEGACY)
find_package(OpenGL)
if (NOT OPENGL_FOUND)
aja_message(STATUS "skipping cudalowlatencydemo (OpenGL not found)")
return()
endif()
find_package(GLEW)
if (NOT GLEW_FOUND)
aja_message(STATUS "skipping cudalowlatencydemo (GLEW not found)")
return()
endif()
find_package(X11)
if (NOT X11_FOUND)
aja_message(STATUS "skipping cudalowlatencydemo (X11 not found)")
return()
endif()
project(dvplowlatencydemo LANGUAGES CUDA CXX)
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_APPS_ROOT}/crossplatform/demoapps/NVIDIA/common
${AJA_LIBRARIES_ROOT}
${AJA_LIBRARIES_ROOT}/gpustuff/include
${CUDA_INCLUDE_DIRS}
${AJA_LIB_NTV2_ROOT}/includes)
set(DVPLOWLATENCYDEMO_BUILD_FILES
@ -33,59 +57,36 @@ set(NVIDIA_COMMON_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/../common/opengl.h
${CMAKE_CURRENT_SOURCE_DIR}/../common/simplegpuvio.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../common/simplegpuvio.h)
set(NVIDIA_COMMONCUDA_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/assertion.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/cudaUtils.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/gpuvio.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2cudaArrayTransfer.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2cudaArrayTransferNV.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2cudaArrayTransferNV.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2errorlist.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2errorlist.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2glTextureTransfer.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2glTextureTransferNV.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2glTextureTransferNV.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2gpucircularbuffer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2gpucircularbuffer.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2gpuTextureTransfer.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2gpuTextureTransferNV.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2gpuTextureTransferNV.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2rendertotexture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2rendertotexture.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2texture.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/ntv2texture.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/oglview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/oglview.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/opengl.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/simplecudavio.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/simplecudavio.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/simplegpuvio.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/simplegpuvio.h
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/simpleoglvio.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../commonCUDA/simpleoglvio.h)
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
find_library(FOUNDATION_FRAMEWORK Foundation)
set(TARGET_LINK_LIBS ${FOUNDATION_FRAMEWORK})
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(TARGET_LINK_LIBS cuda cudart dl pthread rt)
set(TARGET_LINK_LIBS X11 OpenGL::GL OpenGL::GLU GLEW::GLEW dvp dl pthread rt)
set(TARGET_LINK_DIRS
${TARGET_LINK_DIRS}
${AJA_LIBRARIES_ROOT}/gpustuff/lib/linux/lib64)
endif()
set(TARGET_SOURCES
${DVPLOWLATENCYDEMO_SOURCES}
${NVIDIA_COMMON_SOURCES}
${NVIDIA_COMMONCUDA_SOURCES})
${NVIDIA_COMMON_SOURCES})
# add_executable(dvplowlatencydemo ${TARGET_SOURCES})
# add_dependencies(dvplowlatencydemo ajantv2)
# target_include_directories(dvplowlatencydemo PUBLIC ${TARGET_INCLUDE_DIRS})
# target_link_libraries(dvplowlatencydemo PUBLIC ajantv2 ${TARGET_LINK_LIBS})
add_executable(dvplowlatencydemo ${TARGET_SOURCES})
add_dependencies(dvplowlatencydemo ajantv2)
target_include_directories(dvplowlatencydemo PRIVATE ${TARGET_INCLUDE_DIRS})
target_link_directories(dvplowlatencydemo PRIVATE ${TARGET_LINK_DIRS})
target_link_libraries(dvplowlatencydemo PRIVATE ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${DVPLOWLATENCYDEMO_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/dvplowlatencydemo)
install(FILES ${DVPLOWLATENCYDEMO_BUILD_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/dvplowlatencydemo)
install(FILES ${NVIDIA_COMMON_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/common)
install(FILES ${NVIDIA_COMMONCUDA_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/NVIDIA/commonCUDA)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/dvplowlatencydemo)
endif()
message("added dvplowlatencydemo")
if (AJA_CODE_SIGN)
aja_code_sign(dvplowlatencydemo)
endif()

View File

@ -1,6 +1,6 @@
# SPDX-License-Identifier: MIT
#
# Copyright (C) 2004 - 2021 AJA Video Systems, Inc.
# Copyright (C) 2004 - 2022 AJA Video Systems, Inc.
#
DIR := $(strip $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))))

View File

@ -1,6 +1,5 @@
project(ntv2burn)
message("added ntv2burn")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
@ -45,10 +44,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2BURN_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2burn)
install(FILES ${NTV2BURN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2burn)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2burn)
endif()
install(TARGETS ntv2burn
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2burn)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2burn4kquadrant)
message("added ntv2burn4kquadrant")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2BURN4KQUADRANT_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2burn4kquadrant)
install(FILES ${NTV2BURN4KQUADRANT_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2burn4kquadrant)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2burn4kquadrant)
endif()
install(TARGETS ntv2burn4kquadrant
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2burn4kquadrant)
endif()

View File

@ -1,6 +1,5 @@
project(ntv2capture)
message("added ntv2capture")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
@ -45,10 +44,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2CAPTURE_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture)
install(FILES ${NTV2CAPTURE_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture)
endif()
install(TARGETS ntv2capture
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2capture)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2capture4k)
message("added ntv2capture4k")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2CAPTURE4K_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture4k)
install(FILES ${NTV2CAPTURE4K_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture4k)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture4k)
endif()
install(TARGETS ntv2capture4k
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2capture4k)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2capture8k)
message("added ntv2capture8k")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2CAPTURE8K_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture8k)
install(FILES ${NTV2CAPTURE8K_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture8k)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2capture8k)
endif()
install(TARGETS ntv2capture8k
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2capture8k)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2dolbyplayer)
message("added ntv2dolbyplayer")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2DOLBYPLAYER_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2dolbyplayer)
install(FILES ${NTV2DOLBYPLAYER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2dolbyplayer)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2dolbyplayer)
endif()
install(TARGETS ntv2dolbyplayer
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2dolbyplayer)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2enumerateboards)
message("added ntv2enumerateboards")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2ENUMERATEBOARDS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2enumerateboards)
install(FILES ${NTV2ENUMERATEBOARDS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2enumerateboards)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2enumerateboards)
endif()
install(TARGETS ntv2enumerateboards
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2enumerateboards)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2fieldburn)
message("added ntv2fieldburn")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2FIELDBURN_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2fieldburn)
install(FILES ${NTV2FIELDBURN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2fieldburn)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2fieldburn)
endif()
install(TARGETS ntv2fieldburn
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2fieldburn)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2hdrsetup)
message("added ntv2hdrsetup")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -40,10 +38,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2HDRSETUP_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2hdrsetup)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2hdrsetup)
endif()
install(TARGETS ntv2hdrsetup
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2hdrsetup)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2llburn)
message("added ntv2llburn")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2LLBURN_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2llburn)
install(FILES ${NTV2LLBURN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2llburn)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2llburn)
endif()
install(TARGETS ntv2llburn
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2llburn)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2outputtestpattern)
message("added ntv2outputtestpattern")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2OUTPUTTESTPATTERN_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2outputtestpattern)
install(FILES ${NTV2OUTPUTTESTPATTERN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2outputtestpattern)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2outputtestpattern)
endif()
install(TARGETS ntv2outputtestpattern
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2outputtestpattern)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2player)
message("added ntv2player")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2PLAYER_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player)
install(FILES ${NTV2PLAYER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player)
endif()
install(TARGETS ntv2player
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2player)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2player4k)
message("added ntv2player4k")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2PLAYER4K_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player4k)
install(FILES ${NTV2PLAYER4K_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player4k)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player4k)
endif()
install(TARGETS ntv2player4k
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2player4k)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2player8k)
message("added ntv2player8k")
set(TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_APPS_ROOT}/crossplatform/demoapps
@ -45,10 +43,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2PLAYER8K_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player8k)
install(FILES ${NTV2PLAYER8K_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player8k)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2player8k)
endif()
install(TARGETS ntv2player8k
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2player8k)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2switchbitfile)
message("added ntv2switchbitfile")
set(NTV2SWITCHBITFILE_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
set(TARGET_INCLUDE_DIRS
@ -41,10 +39,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${NTV2SWITCHBITFILE_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2switchbitfile)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps/ntv2switchbitfile)
endif()
install(TARGETS ntv2switchbitfile
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2switchbitfile)
endif()

View File

@ -1,7 +1,5 @@
project(logjammer)
message("added logjammer")
set(LOGJAMMER_TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -28,10 +26,16 @@ target_link_libraries(logjammer PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${LOGJAMMER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/logjammer)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/logjammer)
endif()
install(TARGETS logjammer
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(logjammer)
endif()

View File

@ -1,7 +1,5 @@
project(logreader)
message("added logreader")
set(LOGREADER_TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -30,8 +28,18 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${LOGREADER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/logreader)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${LOGREADER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/logreader)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/logreader)
endif()
install(TARGETS logreader
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(logreader)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2firmwareinstaller)
message("added ntv2firmwareinstaller")
set(DEMO_APPS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../demoapps)
set(TARGET_INCLUDE_DIRS
@ -48,10 +46,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${AJA_NTV2_UTILITY_PUBLIC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/utilityfiles/public)
install(FILES ${NTV2FIRMWAREINSTALLER_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/ntv2firmwareinstaller)
install(FILES ${NTV2FIRMWAREINSTALLER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/ntv2firmwareinstaller)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/ntv2firmwareinstaller)
endif()
install(TARGETS ntv2firmwareinstaller
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2firmwareinstaller)
endif()

View File

@ -1,7 +1,5 @@
project(ntv2thermo)
message("added ntv2thermo")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -28,10 +26,16 @@ target_link_libraries(ntv2thermo PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${NTV2THERMO_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/ntv2thermo)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/ntv2thermo)
endif()
install(TARGETS ntv2thermo
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ntv2thermo)
endif()

View File

@ -1,7 +1,5 @@
project(pciwhacker)
message("added pciwhacker")
set(DEMO_APPS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../demoapps)
set(TARGET_INCLUDE_DIRS
@ -41,10 +39,16 @@ if (AJA_INSTALL_SOURCES)
install(FILES ${DEMO_APPS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${DEMO_APPS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/demoapps)
install(FILES ${PCIWHACKER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/pciwhacker)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/pciwhacker)
endif()
install(TARGETS pciwhacker
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(pciwhacker)
endif()

View File

@ -1,6 +1,10 @@
project(rdmawhacker)
find_package(CUDA 11.2)
if (NOT CUDA_FOUND)
aja_message(STATUS "skipping rdmawhacker (CUDA not found)")
return()
endif()
message("added rdmawhacker")
project(rdmawhacker LANGUAGES CUDA CXX)
set(DEMO_APPS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../demoapps)
@ -8,7 +12,8 @@ set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
${AJA_LIB_NTV2_ROOT}/includes
${DEMO_APPS_ROOT})
${DEMO_APPS_ROOT}
${CUDA_INCLUDE_DIRS})
set(DEMO_APPS_SOURCES
${DEMO_APPS_ROOT}/ntv2democommon.cpp)
@ -26,24 +31,31 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(TARGET_COMPILE_DEFS
-DAJA_RDMA)
set(TARGET_LINK_LIBS cuda cudart dl pthread rt)
set(TARGET_LINK_LIBS cuda ${CUDA_LIBRARIES} dl pthread rt)
endif()
set(TARGET_SOURCES
${RDMAWHACKER_SOURCES})
# add_executable(rdmawhacker ${TARGET_SOURCES})
# add_dependencies(rdmawhacker ajantv2)
# target_compile_definitions(rdmawhacker ${TARGET_COMPILE_DEFS})
# target_include_directories(rdmawhacker PUBLIC ${TARGET_INCLUDE_DIRS})
# target_link_libraries(rdmawhacker PUBLIC ajantv2 ${TARGET_LINK_LIBS})
aja_message(STATUS "CUDA Libs: ${CUDA_LIBRARIES}")
add_executable(rdmawhacker ${TARGET_SOURCES})
add_dependencies(rdmawhacker ajantv2)
target_compile_definitions(rdmawhacker PUBLIC ${TARGET_COMPILE_DEFS})
target_include_directories(rdmawhacker PUBLIC ${TARGET_INCLUDE_DIRS})
target_link_libraries(rdmawhacker PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${RDMAWHACKER_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/rdmawhacker)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/rdmawhacker)
endif()
# install(TARGETS rdmawhacker
# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
# FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
install(TARGETS rdmawhacker
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(pciwhacker)
endif()

View File

@ -1,7 +1,5 @@
project(regio)
message("added regio")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -34,10 +32,16 @@ target_link_libraries(regio PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${REGIO_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/regio)
install(FILES ${REGIO_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/regio)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/regio)
endif()
install(TARGETS regio
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(regio)
endif()

View File

@ -1,7 +1,5 @@
project(supportlog)
message("added supportlog")
set(SUPPORTLOG_TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -30,10 +28,16 @@ target_link_libraries(supportlog PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${SUPPORTLOG_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/supportlog)
install(FILES ${SUPPORTLOG_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/supportlog)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/supportlog)
endif()
install(TARGETS supportlog
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(supportlog)
endif()

View File

@ -1,7 +1,5 @@
project(testaux)
message("added testaux")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -29,10 +27,16 @@ target_link_libraries(testaux PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${TESTAUX_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testaux)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testaux)
endif()
install(TARGETS testaux
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(testaux)
endif()

View File

@ -1,7 +1,5 @@
project(testcrc)
message("added testcrc")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -29,10 +27,16 @@ target_link_libraries(testcrc PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${TESTCRC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testcrc)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testcrc)
endif()
install(TARGETS testcrc
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(testcrc)
endif()

View File

@ -1,7 +1,5 @@
project(testframe)
message("added testframe")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -29,10 +27,16 @@ target_link_libraries(testframe PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${TESTFRAME_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testframe)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testframe)
endif()
install(TARGETS testframe
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(testframe)
endif()

View File

@ -1,7 +1,5 @@
project(testp2p)
message("added testp2p")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -29,10 +27,16 @@ target_link_libraries(testp2p PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${TESTP2P_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testp2p)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testp2p)
endif()
install(TARGETS testp2p
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(testp2p)
endif()

View File

@ -1,11 +1,16 @@
project(testrdma)
find_package(CUDA 11.2)
if (NOT CUDA_FOUND)
aja_message(STATUS "skipping testrdma (CUDA not found)")
return()
endif()
message("added testrdma")
project(testrdma LANGUAGES CUDA CXX)
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
${AJA_LIB_NTV2_ROOT}/includes)
${AJA_LIB_NTV2_ROOT}/includes
${CUDA_INCLUDE_DIRS})
set(TESTRDMA_SOURCES
testrdma.cpp)
@ -16,23 +21,32 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
find_library(FOUNDATION_FRAMEWORK Foundation)
set(TARGET_LINK_LIBS ${FOUNDATION_FRAMEWORK})
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(TARGET_LINK_LIBS cuda cudart dl pthread rt)
set(TARGET_COMPILE_DEFS
-DAJA_RDMA)
set(TARGET_LINK_LIBS cuda ${CUDA_LIBRARIES} dl pthread rt)
endif()
set(TARGET_SOURCES
${TESTRDMA_SOURCES})
# add_executable(testrdma ${TARGET_SOURCES})
# add_dependencies(testrdma ajantv2)
# target_include_directories(testrdma PUBLIC ${TARGET_INCLUDE_DIRS})
# target_link_libraries(testrdma PUBLIC ajantv2 ${TARGET_LINK_LIBS})
add_executable(testrdma ${TARGET_SOURCES})
add_dependencies(testrdma ajantv2)
target_compile_definitions(testrdma PUBLIC ${TARGET_COMPILE_DEFS})
target_include_directories(testrdma PUBLIC ${TARGET_INCLUDE_DIRS})
target_link_libraries(testrdma PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${TESTRDMA_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testrdma)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/testrdma)
endif()
# install(TARGETS testrdma
# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
# FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
install(TARGETS testrdma
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(AJA_CODE_SIGN)
aja_code_sign(testrdma)
endif()

View File

@ -1,7 +1,5 @@
project(vpidtool)
message("added vpidtool")
set(TARGET_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/../
${AJA_LIBRARIES_ROOT}
@ -28,10 +26,16 @@ target_link_libraries(vpidtool PUBLIC ajantv2 ${TARGET_LINK_LIBS})
if (AJA_INSTALL_SOURCES)
install(FILES ${VPIDTOOL_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/vpidtool)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajaapps/crossplatform/vpidtool)
endif()
install(TARGETS vpidtool
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(vpidtool)
endif()

View File

@ -129,9 +129,9 @@ set(AJADRIVER_TARGET_SOURCES
${AJADRIVER_COMMON_SOURCES})
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
message("Windows driver CMake build not yet implemented!")
aja_message(STATUS "Windows driver CMake build not yet implemented!")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
message("macOS driver CMake build not yet implemented!")
aja_message(STATUS "macOS driver CMake build not yet implemented!")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(AJADRIVER_TARGET_SOURCES
${AJADRIVER_TARGET_SOURCES}
@ -140,7 +140,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
endif()
add_custom_target(ajadriver_install ${AJADRIVER_TARGET_SOURCES})
add_dependencies(ajadriver_install install)
# Windows
if (AJA_BUILD_OPENSOURCE AND AJA_INSTALL_SOURCES)
@ -152,27 +151,25 @@ if (AJA_BUILD_OPENSOURCE AND AJA_INSTALL_SOURCES)
endif()
# Linux
if (AJA_INSTALL_HEADERS)
install(FILES ${AJADRIVER_LINUX_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver/linux)
install(FILES ${AJADRIVER_LINUX_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajadriver/linux)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${AJADRIVER_LINUX_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver/linux)
install(FILES ${AJADRIVER_LINUX_BUILD_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver/linux)
install(FILES ${AJADRIVER_LINUX_LOAD_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/bin)
install(FILES ${AJA_CMAKE_DIR}/../build/common.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/configure.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/internal.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/qt.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJADRIVER_LINUX_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver/linux)
install(FILES ${AJADRIVER_LINUX_BUILD_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver/linux)
install(FILES ${AJADRIVER_LINUX_LOAD_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/bin)
install(FILES ${AJA_CMAKE_DIR}/../build/common.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/configure.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/internal.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/qt.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/sdkversion.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/targets.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/targets.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
endif()
# common
if (AJA_INSTALL_HEADERS)
install(FILES ${AJADRIVER_COMMON_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver)
install(FILES ${AJA_LIB_NTV2_ROOT}/includes/ntv2driverprocamp.h DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/includes)
install(FILES ${AJADRIVER_COMMON_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajadriver)
install(FILES ${AJA_LIB_NTV2_ROOT}/includes/ntv2driverprocamp.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/includes)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${AJADRIVER_COMMON_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajadriver)
install(FILES ${AJA_LIB_NTV2_ROOT}/src/ntv2driverprocamp.cpp DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src)
endif()
message ("added ajadriver")

View File

@ -37,9 +37,17 @@ endif
ifdef AJA_IGPU
EXTRA_CFLAGS += -DAJA_IGPU=$(AJA_IGPU)
else
ifeq ($(NVIDIA_SYMVERS),)
NVIDIA_KO ?= $(shell find /lib/modules/$(KVERSION)/ -name 'nvidia*.ko'|grep -P 'nvidia(_[0-9]+)?.ko'|head -1)
NVIDIA_GEN_SYMVERS := ./nvidia-ko-to-module-symvers $(NVIDIA_KO) $(DIR)/nvidia.symvers
NVIDIA_SYMVERS := $(DIR)/nvidia.symvers
endif
endif
endif
ifdef AJA_CREATE_DEVICE_NODES
EXTRA_CFLAGS += -DAJA_CREATE_DEVICE_NODES=$(AJA_CREATE_DEVICE_NODES)
endif
DRIVERSRCS = ntv2devicefeatures.c \
ntv2driver.c \
@ -152,8 +160,8 @@ ifdef AJA_RDMA
ifdef AJA_IGPU
$(MAKE) -C $(KDIR) M=$(A_LINUX_DRIVER_PATH) DRIVERDIR=$(A_LINUX_DRIVER_PATH) modules
else
./nvidia-ko-to-module-symvers $(NVIDIA_KO) nvidia.symvers
$(MAKE) -C $(KDIR) M=$(A_LINUX_DRIVER_PATH) DRIVERDIR=$(A_LINUX_DRIVER_PATH) modules KBUILD_EXTRA_SYMBOLS=$(DIR)/nvidia.symvers
${NVIDIA_GEN_SYMVERS}
$(MAKE) -C $(KDIR) M=$(A_LINUX_DRIVER_PATH) DRIVERDIR=$(A_LINUX_DRIVER_PATH) modules KBUILD_EXTRA_SYMBOLS=$(NVIDIA_SYMVERS)
endif
else
$(MAKE) -C $(KDIR) M=$(A_LINUX_DRIVER_PATH) DRIVERDIR=$(A_LINUX_DRIVER_PATH) modules
@ -162,6 +170,9 @@ endif
if [ -d "$(A_LIBRARIES_PATH)/bin" ]; then cp -f $(A_LIBRARIES_PATH)/bin/*load_ajantv2 $(A_UBER_BIN); fi
cp $(NTV2TARGET).ko $(A_UBER_BIN)
modules_install:
$(MAKE) -C $(KDIR) M=$(A_LINUX_DRIVER_PATH) modules_install
all: $(DRIVERINCS) $(DRIVERSRCS) $(HEVCINCS) $(HEVCSRCS) $(RDMAINCS)
# Make a symlink to the C-only CPP files we need in classes.

View File

@ -2834,25 +2834,28 @@ static int reboot_handler(struct notifier_block *this, unsigned long code, void
static UWord deviceNumber;
static int aja_ntv2_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
{
add_uevent_var(env, "DEVMODE=%#o", 0666);
return 0;
}
static int __init aja_ntv2_module_init(void)
{
int res;
int i;
char versionString[STRMAX];
struct class *ntv2_class = NULL;
for (i = 0; i < NTV2_MAXBOARDS; i++)
{
NTV2Params[i] = NULL;
}
if (getNTV2ModuleParams()->name == NULL)
{
getNTV2ModuleParams()->name = "ntv2mod";
}
if (getNTV2ModuleParams()->driverName == NULL)
{
getNTV2ModuleParams()->driverName = "ajantv2";
}
memset(getNTV2ModuleParams(), 0, sizeof(*getNTV2ModuleParams()));
getNTV2ModuleParams()->name = "ntv2mod";
getNTV2ModuleParams()->driverName = "ajantv2";
#if defined(AJA_HEVC)
hevc_module_init("hevc");
@ -2880,21 +2883,23 @@ static int __init aja_ntv2_module_init(void)
if (res < 0) {
MSG("%s: *error* uart_register_driver failed code %d\n",
getNTV2ModuleParams()->name, res);
return res;
goto fail;
}
getNTV2ModuleParams()->uart_driver = &ntv2_uart_driver;
getNTV2ModuleParams()->uart_max = NTV2_MAXBOARDS;
atomic_set(&getNTV2ModuleParams()->uart_index, 0);
// Do the PCI initialization here. If we do it
// later and it fails we have to unregister_chrdev() etc.
// Note: this calls the probe function.
res = NTV2_LINUX_PCI_REG_DRIVER_FUNC(&ntv2_driver);
if (res != 0) {
MSG("%s: NTV2_LINUX_PCI_REG_DRIVER_FUNC failed with code %d",
// Create device class
ntv2_class = class_create(THIS_MODULE, getNTV2ModuleParams()->driverName);
if (IS_ERR(ntv2_class))
{
res = PTR_ERR(ntv2_class);
MSG("%s: Failed to create device class; code %d\n",
getNTV2ModuleParams()->name, res);
return res;
goto fail;
}
ntv2_class->dev_uevent = aja_ntv2_dev_uevent;
getNTV2ModuleParams()->class = ntv2_class;
// register device with kernel
MSG("%s: register chrdev %s\n",
@ -2906,11 +2911,20 @@ static int __init aja_ntv2_module_init(void)
{
MSG("%s: Can't register device with kernel\n",
getNTV2ModuleParams()->name);
return res;
goto fail;
}
getNTV2ModuleParams()->NTV2Major = res;
// Register the PCI driver.
// Note: this calls the probe function.
res = NTV2_LINUX_PCI_REG_DRIVER_FUNC(&ntv2_driver);
if (res != 0) {
MSG("%s: NTV2_LINUX_PCI_REG_DRIVER_FUNC failed with code %d",
getNTV2ModuleParams()->name, res);
goto fail;
}
// Set all autocirculators to disabled
for (i = 0; i < getNTV2ModuleParams()->numNTV2Devices; i++)
AutoCirculateInitialize(i);
@ -2941,6 +2955,25 @@ static int __init aja_ntv2_module_init(void)
MSG("%s: module init end\n", getNTV2ModuleParams()->name);
return 0;
fail:
if (getNTV2ModuleParams()->NTV2Major)
{
unregister_chrdev(getNTV2ModuleParams()->NTV2Major,
getNTV2ModuleParams()->driverName);
}
if (getNTV2ModuleParams()->class)
{
class_destroy(getNTV2ModuleParams()->class);
}
if (getNTV2ModuleParams()->uart_driver)
{
uart_unregister_driver(getNTV2ModuleParams()->uart_driver);
}
return res;
}
static int __init probe(struct pci_dev *pdev, const struct pci_device_id *id) /* New device inserted */
@ -2955,6 +2988,10 @@ static int __init probe(struct pci_dev *pdev, const struct pci_device_id *id) /*
Ntv2Status status;
bool isKonaIP = false;
bool linuxSerial = false;
#if defined(AJA_CREATE_DEVICE_NODES)
dev_t dev;
struct device *device = NULL;
#endif
#if defined(AJA_HEVC)
if (id->vendor == HEVC_VENDOR_ID)
@ -3394,6 +3431,28 @@ static int __init probe(struct pci_dev *pdev, const struct pci_device_id *id) /*
// Enable DMA
dmaEnable(deviceNumber);
#if defined(AJA_CREATE_DEVICE_NODES)
// Create the device node
dev = MKDEV(getNTV2ModuleParams()->NTV2Major, deviceNumber);
cdev_init(&NTV2Params[deviceNumber]->cdev, &ntv2_fops);
res = cdev_add(&NTV2Params[deviceNumber]->cdev, dev, 1);
if (res < 0)
{
MSG("%s: Failed to add cdev to subsystem\n", getNTV2ModuleParams()->name);
return res;
}
device = device_create(getNTV2ModuleParams()->class, NULL, dev,
NULL, "ajantv2%d", deviceNumber);
if (IS_ERR(device))
{
MSG("%s: Failed to create device node\n", getNTV2ModuleParams()->name);
return PTR_ERR(device);
}
MSG("%s: Created device node /dev/ajantv2%d\n",
getNTV2ModuleParams()->name, deviceNumber);
#endif
deviceNumber++;
MSG("%s: probe end\n", ntv2pp->name);
@ -3503,6 +3562,19 @@ static void __exit aja_ntv2_module_cleanup(void)
pci_resources_release(ntv2pp);
} // end of for i loop
#if defined(AJA_CREATE_DEVICE_NODES)
// Destroy the device nodes
for (i = 0; i < NTV2_MAXBOARDS; i++)
{
if (NTV2Params[i] != NULL)
{
dev_t dev = MKDEV(getNTV2ModuleParams()->NTV2Major, i);
device_destroy(getNTV2ModuleParams()->class, dev);
cdev_del(&NTV2Params[i]->cdev);
}
}
#endif
unregister_chrdev( getNTV2ModuleParams()->NTV2Major, getNTV2ModuleParams()->driverName);
remove_proc_entry("driver/aja", NULL /* parent dir */);
@ -3517,6 +3589,8 @@ static void __exit aja_ntv2_module_cleanup(void)
pci_unregister_driver(&ntv2_driver);
class_destroy(getNTV2ModuleParams()->class);
uart_unregister_driver(&ntv2_uart_driver);
// clean up any VirtualData nodes that were allocated

View File

View File

@ -97,6 +97,7 @@ typedef struct ntv2_module_private
char * name;
char * driverName;
ULWord intrBitLut[eNumInterruptTypes];
struct class *class;
// uart driver
struct uart_driver *uart_driver;
@ -240,6 +241,7 @@ typedef struct ntv2_private
ULWord busNumber;
ULWord pci_device;
char name[16];
struct cdev cdev;
// Base Address Values
unsigned long _unmappedBAR0Address;

View File

@ -1,19 +1,19 @@
# ajaconv
if (EXISTS ${AJA_LIB_CONV_ROOT})
if (NOT AJA_BUILD_OPENSOURCE)
add_subdirectory(ajaconv)
aja_add_subdirectory(ajaconv)
if (AJA_BUILD_TESTS)
add_subdirectory(ajaconv/test)
aja_add_subdirectory(ajaconv/test)
endif()
endif()
endif()
# ajantv2
if (EXISTS ${AJA_LIB_NTV2_ROOT})
add_subdirectory(ajantv2)
aja_add_subdirectory(ajantv2)
if (AJA_BUILD_TESTS)
add_subdirectory(ajabase/test)
add_subdirectory(ajantv2/test)
aja_add_subdirectory(ajabase/test)
aja_add_subdirectory(ajantv2/test)
endif()
endif()
@ -21,9 +21,9 @@ endif()
if (EXISTS ${AJA_LIB_CC_ROOT}
AND EXISTS ${AJA_LIB_NTV2_ROOT})
if (NOT AJA_BUILD_OPENSOURCE)
add_subdirectory(ajacc)
aja_add_subdirectory(ajacc)
if (AJA_BUILD_TESTS)
add_subdirectory(ajacc/test)
aja_add_subdirectory(ajacc/test)
endif()
endif()
endif()
@ -32,7 +32,7 @@ endif()
if (EXISTS ${AJA_LIB_GUI_ROOT}
AND EXISTS ${AJA_LIB_NTV2_ROOT})
if (NOT AJA_BUILD_OPENSOURCE)
add_subdirectory(ajainternal/gui)
aja_add_subdirectory(ajainternal/gui)
endif()
endif()
@ -42,10 +42,16 @@ if (EXISTS ${AJA_LIB_STREAMS_ROOT}
AND EXISTS ${AJA_LIB_CONV_ROOT})
if (NOT AJA_BUILD_OPENSOURCE)
# Drastic deck control lib (AKA vvwexts2)
add_subdirectory(streams/drasticproj)
add_subdirectory(streams)
aja_add_subdirectory(streams/drasticproj "Drastic Technologies Ltd.")
aja_add_subdirectory(streams)
if (AJA_BUILD_TESTS)
add_subdirectory(streams/test)
aja_add_subdirectory(streams/test)
endif()
endif()
endif()
if (EXISTS ${AJA_LIB_DOCS_ROOT}
AND EXISTS ${AJA_LIB_NTV2_ROOT}
AND AJA_BUILD_DOCS)
aja_add_subdirectory(docs)
endif()

View File

@ -1,7 +1,5 @@
project(ajaanc)
message("added ajaanc")
set(AJAANC_TARGET_INCLUDE_DIRS
${AJA_LIBRARIES_ROOT}
${AJA_LIB_ANC_ROOT}/includes

View File

@ -1,8 +1,5 @@
project(ajantv2)
include(GNUInstallDirs)
message ("added ajantv2")
if(CMAKE_CXX_STANDARD LESS 11)
remove_definitions(
-DAJA_USE_CPLUSPLUS11
@ -134,11 +131,60 @@ set(AJANTV2_SOURCES
src/ntv2verticalfilter.cpp
src/ntv2vpid.cpp
src/ntv2vpidfromspec.cpp)
# ntv2driverinterface/publicinterface
set(AJANTV2_WIN_HEADERS
src/win/ntv2windriverinterface.h
src/win/ntv2winpublicinterface.h)
set(AJANTV2_WIN_SOURCES
# src/win/dllmain.cpp
src/win/ntv2windriverinterface.cpp)
set(AJANTV2_MAC_HEADERS
src/mac/ntv2macdriverinterface.h
src/mac/ntv2macpublicinterface.h)
set(AJANTV2_MAC_SOURCES
src/mac/ntv2macdriverinterface.cpp)
set(AJANTV2_LIN_HEADERS
src/lin/ntv2linuxdriverinterface.h
src/lin/ntv2linuxpublicinterface.h)
set(AJANTV2_LIN_SOURCES
src/lin/ntv2linuxdriverinterface.cpp)
# ajantv2 utilityfiles
set(AJANTV2_UTILITY_PUBLIC_HEADERS
utilityfiles/public/ntv2firmwareinstallerthread.h
utilityfiles/public/ntv2hevcfirmwareinstallerthread.h)
set(AJANTV2_UTILITY_PUBLIC_SOURCES
utilityfiles/public/ntv2firmwareinstallerthread.cpp
utilityfiles/public/ntv2hevcfirmwareinstallerthread.cpp)
# ajantv2 hevc
if (NOT AJA_BUILD_OPENSOURCE)
aja_message(STATUS "added ajantv2 HEVC/M31 codec")
set(AJANTV2_HEVC_HEADERS
codecs/hevc/m31/ntv2m31.h
codecs/hevc/m31/ntv2m31cparam.h
codecs/hevc/m31/ntv2m31ehparam.h
codecs/hevc/m31/ntv2m31vaparam.h
codecs/hevc/m31/ntv2m31vinparam.h
codecs/hevc/m31/ntv2m31viparam.h)
set(AJANTV2_HEVC_SOURCES
codecs/hevc/m31/ntv2m31.cpp
codecs/hevc/m31/ntv2m31cparam.cpp
codecs/hevc/m31/ntv2m31ehparam.cpp
codecs/hevc/m31/ntv2m31vaparam.cpp
codecs/hevc/m31/ntv2m31vinparam.cpp
codecs/hevc/m31/ntv2m31viparam.cpp)
# `cmake --install` deployments
if (AJA_INSTALL_HEADERS)
install(FILES ${AJANTV2_HEVC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/codecs/hevc/m31)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${AJANTV2_HEVC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/codecs/hevc/m31)
endif()
endif()
if (AJA_BUILDING_CMAKE)
add_definitions(-DAJA_BUILDING_CMAKE)
configure_file(includes/version.h.in includes/version.h @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/ajalibraries/ajantv2/includes/version.h DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/includes)
install(FILES ${CMAKE_BINARY_DIR}/ajalibraries/ajantv2/includes/version.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/includes)
endif()
# ajaanc
@ -175,31 +221,6 @@ set(AJAANC_SOURCES
${AJA_LIB_ANC_ROOT}/src/ancillarydata_timecode_vitc.cpp
${AJA_LIB_ANC_ROOT}/src/ancillarylist.cpp)
if (NOT AJA_BUILD_OPENSOURCE)
message("added ajantv2 HEVC/M31 codec")
set(AJANTV2_HEVC_HEADERS
codecs/hevc/m31/ntv2m31.h
codecs/hevc/m31/ntv2m31cparam.h
codecs/hevc/m31/ntv2m31ehparam.h
codecs/hevc/m31/ntv2m31vaparam.h
codecs/hevc/m31/ntv2m31vinparam.h
codecs/hevc/m31/ntv2m31viparam.h)
set(AJANTV2_HEVC_SOURCES
codecs/hevc/m31/ntv2m31.cpp
codecs/hevc/m31/ntv2m31cparam.cpp
codecs/hevc/m31/ntv2m31ehparam.cpp
codecs/hevc/m31/ntv2m31vaparam.cpp
codecs/hevc/m31/ntv2m31vinparam.cpp
codecs/hevc/m31/ntv2m31viparam.cpp)
# `cmake --install` deployments
if (AJA_INSTALL_HEADERS)
install(FILES ${AJANTV2_HEVC_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/codecs/hevc/m31)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${AJANTV2_HEVC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/codecs/hevc/m31)
endif()
endif()
# ajabase
set(AJABASE_COMMON_HEADERS
${AJA_LIB_BASE_ROOT}/common/ajarefptr.h
@ -236,7 +257,7 @@ set(AJABASE_PERSISTENCE_HEADERS
${AJA_LIB_BASE_ROOT}/persistence/sqlite3.h)
set(AJABASE_PNP_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/pnp.h)
set(AJABASE_SYSTEM_HEADERS
set(AJABASE_SYS_HEADERS
${AJA_LIB_BASE_ROOT}/system/atomic.h
${AJA_LIB_BASE_ROOT}/system/debug.h
${AJA_LIB_BASE_ROOT}/system/debugshare.h
@ -278,7 +299,7 @@ set(AJABASE_PERSISTENCE_SOURCES
${AJA_LIB_BASE_ROOT}/persistence/sqlite3.c)
set(AJABASE_PNP_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/pnp.cpp)
set(AJABASE_SYSTEM_SOURCES
set(AJABASE_SYS_SOURCES
${AJA_LIB_BASE_ROOT}/system/atomic.cpp
${AJA_LIB_BASE_ROOT}/system/debug.cpp
${AJA_LIB_BASE_ROOT}/system/diskstatus.cpp
@ -292,33 +313,89 @@ set(AJABASE_SYSTEM_SOURCES
${AJA_LIB_BASE_ROOT}/system/system.cpp
${AJA_LIB_BASE_ROOT}/system/systemtime.cpp
${AJA_LIB_BASE_ROOT}/system/thread.cpp)
# ajabase windows
set(AJABASE_PNP_WIN_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/windows/pnpimpl.h)
set(AJABASE_PNP_WIN_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/windows/pnpimpl.cpp)
set(AJABASE_SYS_WIN_HEADERS
${AJA_LIB_BASE_ROOT}/system/windows/eventimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/infoimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/lockimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/processimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/threadimpl.h)
set(AJABASE_SYS_WIN_SOURCES
${AJA_LIB_BASE_ROOT}/system/windows/eventimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/infoimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/lockimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/processimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/threadimpl.cpp)
# ajabase linux
set(AJABASE_PNP_LIN_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/linux/pnpimpl.h)
set(AJABASE_PNP_LIN_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/linux/pnpimpl.cpp)
set(AJABASE_SYS_LIN_HEADERS
${AJA_LIB_BASE_ROOT}/system/linux/eventimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/infoimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/lockimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/processimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/threadimpl.h)
set(AJABASE_SYS_LIN_SOURCES
${AJA_LIB_BASE_ROOT}/system/linux/eventimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/infoimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/lockimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/processimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/threadimpl.cpp)
# ajabase mac
set(AJABASE_PNP_MAC_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/mac/devicenotifier.h
${AJA_LIB_BASE_ROOT}/pnp/mac/masterport.h
${AJA_LIB_BASE_ROOT}/pnp/mac/pnpimpl.h)
set(AJABASE_PNP_MAC_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/mac/devicenotifier.cpp
${AJA_LIB_BASE_ROOT}/pnp/mac/masterport.cpp
${AJA_LIB_BASE_ROOT}/pnp/mac/pnpimpl.cpp)
set(AJABASE_SYS_MAC_HEADERS
${AJA_LIB_BASE_ROOT}/system/mac/eventimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/infoimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/lockimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/processimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/pthreadsextra.h
${AJA_LIB_BASE_ROOT}/system/mac/threadimpl.h)
set(AJABASE_SYS_MAC_SOURCES
${AJA_LIB_BASE_ROOT}/system/mac/eventimpl.cpp
${AJA_LIB_BASE_ROOT}/system/mac/infoimpl.mm
${AJA_LIB_BASE_ROOT}/system/mac/lockimpl.cpp
${AJA_LIB_BASE_ROOT}/system/mac/processimpl.cpp
${AJA_LIB_BASE_ROOT}/system/mac/pthreadsextra.cpp
${AJA_LIB_BASE_ROOT}/system/mac/threadimpl.cpp)
set(AJABASE_HEADERS
${AJABASE_COMMON_HEADERS}
${AJABASE_NETWORK_HEADERS}
${AJABASE_PERSISTENCE_HEADERS}
${AJABASE_PNP_HEADERS}
${AJABASE_SYSTEM_HEADERS})
${AJABASE_SYS_HEADERS})
set(AJABASE_SOURCES
${AJABASE_COMMON_SOURCES}
${AJABASE_NETWORK_SOURCES}
${AJABASE_PERSISTENCE_SOURCES}
${AJABASE_PNP_SOURCES}
${AJABASE_SYSTEM_SOURCES})
${AJABASE_SYS_SOURCES})
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions(
remove_definitions(-DUNICODE -D_UNICODE)
set(TARGET_COMPILE_DEFS
-D_MBCS
-DCRT_NONSTDC_DEPRECATE
-D_WINSOCK_DEPRECATED_NO_WARNINGS
-DAJA_NO_AUTOIMPORT)
remove_definitions(-DUNICODE -D_UNICODE)
set(EXTRA_STATIC_DEFINES
set(TARGET_COMPILE_DEFS_STATIC
${TARGET_COMPILE_DEFS}
-DAJASTATIC)
set(EXTRA_DYNAMIC_DEFINES
set(TARGET_COMPILE_DEFS_DYNAMIC
${TARGET_COMPILE_DEFS}
-DAJADLL
-DAJA_WINDLL
-DAJADLL_BUILD)
@ -328,61 +405,29 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
${AJA_LIB_BASE_ROOT}/pnp/windows
${AJA_LIB_BASE_ROOT}/system/windows)
set(AJANTV2_OS_HEADERS
src/win/ntv2windriverinterface.h
src/win/ntv2winpublicinterface.h)
set(AJANTV2_OS_SOURCES
# src/win/dllmain.cpp
src/win/ntv2windriverinterface.cpp)
set(AJABASE_OS_SYSTEM_HEADERS
${AJA_LIB_BASE_ROOT}/system/windows/eventimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/infoimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/lockimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/processimpl.h
${AJA_LIB_BASE_ROOT}/system/windows/threadimpl.h)
set(AJABASE_OS_SYSTEM_SOURCES
${AJA_LIB_BASE_ROOT}/system/windows/eventimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/infoimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/lockimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/processimpl.cpp
${AJA_LIB_BASE_ROOT}/system/windows/threadimpl.cpp)
set(AJABASE_OS_PNP_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/windows/pnpimpl.h)
set(AJABASE_OS_PNP_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/windows/pnpimpl.cpp)
set(AJABASE_OS_HEADERS
${AJABASE_OS_SYSTEM_HEADERS}
${AJABASE_OS_PNP_HEADERS})
set(AJABASE_OS_SOURCES
${AJABASE_OS_SYSTEM_SOURCES}
${AJABASE_OS_PNP_SOURCES})
# `cmake --install` deployments
if (AJA_INSTALL_HEADERS)
install(FILES ${AJANTV2_OS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/win)
install(FILES ${AJABASE_OS_SYSTEM_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/windows)
install(FILES ${AJABASE_OS_PNP_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/windows)
endif()
if (AJA_INSTALL_SOURCES)
set(AJANTV2_OS_SOURCES
${AJANTV2_OS_SOURCES}
src/win/dllmain.cpp)
install(FILES ${AJANTV2_OS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/win)
install(FILES ${AJABASE_OS_SYSTEM_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/windows)
install(FILES ${AJABASE_OS_PNP_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/windows)
endif()
set(AJANTV2_HEADERS
${AJANTV2_HEADERS}
${AJANTV2_WIN_HEADERS})
set(AJABASE_HEADERS
${AJABASE_HEADERS}
${AJABASE_PNP_WIN_HEADERS}
${AJABASE_SYS_WIN_HEADERS})
set(AJANTV2_SOURCES
${AJANTV2_SOURCES}
${AJANTV2_WIN_SOURCES})
set(AJABASE_SOURCES
${AJABASE_SOURCES}
${AJABASE_PNP_WIN_SOURCES}
${AJABASE_SYS_WIN_SOURCES})
set(TARGET_LINK_LIBS
advapi32 comctl32 netapi32
odbc32 psapi rpcrt4 setupapi shell32
shlwapi user32 winmm ws2_32 wsock32)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(EXTRA_STATIC_DEFINES
set(TARGET_COMPILE_DEFS_STATIC
-DAJASTATIC)
set(EXTRA_DYNAMIC_DEFINES
set(TARGET_COMPILE_DEFS_DYNAMIC
-DAJADLL_BUILD
-DAJADLL_BUILD)
@ -391,63 +436,28 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
${AJA_LIB_BASE_ROOT}/pnp/linux
${AJA_LIB_BASE_ROOT}/system/linux)
set(AJANTV2_OS_HEADERS
src/lin/ntv2linuxdriverinterface.h
src/lin/ntv2linuxpublicinterface.h)
set(AJANTV2_OS_SOURCES
src/lin/ntv2linuxdriverinterface.cpp)
set(AJABASE_OS_SYSTEM_HEADERS
${AJA_LIB_BASE_ROOT}/system/linux/eventimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/infoimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/lockimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/processimpl.h
${AJA_LIB_BASE_ROOT}/system/linux/threadimpl.h)
set(AJABASE_OS_SYSTEM_SOURCES
${AJA_LIB_BASE_ROOT}/system/linux/eventimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/infoimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/lockimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/processimpl.cpp
${AJA_LIB_BASE_ROOT}/system/linux/threadimpl.cpp)
set(AJABASE_OS_PNP_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/linux/pnpimpl.h)
set(AJABASE_OS_PNP_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/linux/pnpimpl.cpp)
set(AJABASE_OS_HEADERS
${AJABASE_OS_SYSTEM_HEADERS}
${AJABASE_OS_PNP_HEADERS})
set(AJABASE_OS_SOURCES
${AJABASE_OS_SYSTEM_SOURCES}
${AJABASE_OS_PNP_SOURCES})
# `cmake --install` deployments
if (AJA_INSTALL_HEADERS)
install(FILES ${AJANTV2_OS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/lin)
install(FILES ${AJABASE_OS_SYSTEM_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/linux)
install(FILES ${AJABASE_OS_PNP_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/linux)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${AJANTV2_OS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/lin)
install(FILES ${AJABASE_OS_SYSTEM_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/linux)
install(FILES ${AJABASE_OS_PNP_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/linux)
install(FILES ${AJA_CMAKE_DIR}/../ajalibraries/ajantv2/build/Makefile DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/build)
install(FILES ${AJA_CMAKE_DIR}/../build/common.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/configure.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/internal.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/qt.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/sdkversion.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/targets.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
endif()
set(AJANTV2_HEADERS
${AJANTV2_HEADERS}
${AJANTV2_LIN_HEADERS})
set(AJABASE_HEADERS
${AJABASE_HEADERS}
${AJABASE_PNP_LIN_HEADERS}
${AJABASE_SYS_LIN_HEADERS})
set(AJANTV2_SOURCES
${AJANTV2_SOURCES}
${AJANTV2_LIN_SOURCES})
set(AJABASE_SOURCES
${AJABASE_SOURCES}
${AJABASE_PNP_LIN_SOURCES}
${AJABASE_SYS_LIN_SOURCES})
set(TARGET_LINK_LIBS
rt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(EXTRA_STATIC_DEFINES
set(TARGET_COMPILE_DEFS_STATIC
-DAJASTATIC)
set(EXTRA_DYNAMIC_DEFINES
set(TARGET_COMPILE_DEFS_DYNAMIC
-DAJADLL_BUILD
-DAJADLL_BUILD)
@ -457,54 +467,20 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
${AJA_LIB_BASE_ROOT}/system/mac
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include)
set(AJANTV2_OS_HEADERS
src/mac/ntv2macdriverinterface.h
src/mac/ntv2macpublicinterface.h)
set(AJANTV2_OS_SOURCES
src/mac/ntv2macdriverinterface.cpp)
set(AJABASE_OS_PNP_HEADERS
${AJA_LIB_BASE_ROOT}/pnp/mac/devicenotifier.h
${AJA_LIB_BASE_ROOT}/pnp/mac/masterport.h
${AJA_LIB_BASE_ROOT}/pnp/mac/pnpimpl.h)
set(AJABASE_OS_PNP_SOURCES
${AJA_LIB_BASE_ROOT}/pnp/mac/devicenotifier.cpp
${AJA_LIB_BASE_ROOT}/pnp/mac/masterport.cpp
${AJA_LIB_BASE_ROOT}/pnp/mac/pnpimpl.cpp)
set(AJABASE_OS_SYSTEM_HEADERS
${AJA_LIB_BASE_ROOT}/system/mac/eventimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/infoimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/lockimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/processimpl.h
${AJA_LIB_BASE_ROOT}/system/mac/pthreadsextra.h
${AJA_LIB_BASE_ROOT}/system/mac/threadimpl.h)
set(AJABASE_OS_SYSTEM_SOURCES
${AJA_LIB_BASE_ROOT}/system/mac/eventimpl.cpp
${AJA_LIB_BASE_ROOT}/system/mac/infoimpl.mm
${AJA_LIB_BASE_ROOT}/system/mac/lockimpl.cpp
${AJA_LIB_BASE_ROOT}/system/mac/processimpl.cpp
${AJA_LIB_BASE_ROOT}/system/mac/pthreadsextra.cpp
${AJA_LIB_BASE_ROOT}/system/mac/threadimpl.cpp)
set(AJABASE_OS_HEADERS
${AJABASE_OS_SYSTEM_HEADERS}
${AJABASE_OS_PNP_HEADERS})
set(AJABASE_OS_SOURCES
${AJABASE_OS_SYSTEM_SOURCES}
${AJABASE_OS_PNP_SOURCES})
# `cmake --install` deployments
if (AJA_INSTALL_HEADERS)
install(FILES ${AJANTV2_OS_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/mac)
install(FILES ${AJABASE_OS_SYSTEM_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/mac)
install(FILES ${AJABASE_OS_PNP_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/mac)
endif()
if (AJA_INSTALL_SOURCES)
install(FILES ${AJANTV2_OS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/mac)
install(FILES ${AJABASE_OS_SYSTEM_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/mac)
install(FILES ${AJABASE_OS_PNP_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/mac)
endif()
set(AJANTV2_HEADERS
${AJANTV2_HEADERS}
${AJANTV2_MAC_HEADERS})
set(AJABASE_HEADERS
${AJABASE_HEADERS}
${AJABASE_PNP_MAC_HEADERS}
${AJABASE_SYS_MAC_HEADERS})
set(AJANTV2_SOURCES
${AJANTV2_SOURCES}
${AJANTV2_MAC_SOURCES})
set(AJABASE_SOURCES
${AJABASE_SOURCES}
${AJABASE_PNP_MAC_SOURCES}
${AJABASE_SYS_MAC_SOURCES})
find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation)
find_library(FOUNDATION_FRAMEWORK Foundation)
@ -516,20 +492,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
${FOUNDATION_FRAMEWORK})
endif()
# coalesce ajabase module headers and sources
set(AJABASE_HEADERS
${AJABASE_HEADERS}
${AJABASE_OS_HEADERS})
set(AJABASE_SOURCES
${AJABASE_SOURCES}
${AJABASE_OS_SOURCES})
set(AJANTV2_HEADERS
${AJANTV2_HEADERS}
${AJANTV2_OS_HEADERS})
set(AJANTV2_SOURCES
${AJANTV2_SOURCES}
${AJANTV2_OS_SOURCES})
set(AJANTV2_TARGET_SOURCES
${AJAANC_SOURCES}
${AJAANC_HEADERS}
@ -545,71 +507,90 @@ if (NOT AJA_BUILD_OPENSOURCE)
endif()
# libajantv2
set(BUILD_TARGETS ajantv2)
add_library(ajantv2 STATIC ${AJANTV2_TARGET_SOURCES})
target_include_directories(ajantv2 PUBLIC ${AJANTV2_TARGET_INCLUDE_DIRS})
target_link_libraries(ajantv2 PUBLIC ${TARGET_LINK_LIBS})
target_compile_definitions(ajantv2 PUBLIC ${EXTRA_STATIC_DEFINES})
target_compile_definitions(ajantv2 PUBLIC ${TARGET_COMPILE_DEFS_STATIC})
if (AJA_NTV2_SDK_GEN)
aja_ntv2_sdk_gen(ajantv2)
endif()
if (AJA_BUILD_SHARED)
list(APPEND BUILD_TARGETS ajantv2-dyn)
add_library(ajantv2-dyn SHARED ${AJANTV2_TARGET_SOURCES})
target_compile_definitions(ajantv2-dyn PUBLIC ${EXTRA_DYNAMIC_DEFINES})
target_compile_definitions(ajantv2-dyn PUBLIC ${TARGET_COMPILE_DEFS_DYNAMIC})
target_include_directories(ajantv2-dyn PUBLIC ${AJANTV2_TARGET_INCLUDE_DIRS})
target_link_libraries(ajantv2-dyn PUBLIC ${TARGET_LINK_LIBS} ${EXTRA_DYNAMIC_LIBRARIES})
set_target_properties(ajantv2-dyn PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_${AJA_NTV2_SDK_VERSION_MAJOR}")
if (AJA_NTV2_SDK_GEN)
aja_ntv2_sdk_gen(ajantv2-dyn)
endif()
endif()
add_library(ajabase INTERFACE)
set(AJANTV2_UTILITY_PUBLIC_HEADERS
utilityfiles/public/ntv2firmwareinstallerthread.h
utilityfiles/public/ntv2hevcfirmwareinstallerthread.h)
set(AJANTV2_UTILITY_PUBLIC_SOURCES
utilityfiles/public/ntv2firmwareinstallerthread.cpp
utilityfiles/public/ntv2hevcfirmwareinstallerthread.cpp)
# `cmake --install` deployments
if (AJA_INSTALL_HEADERS)
# Driver interface headers will be deployed to ajantv2/src/<platform>.
# We remove them from the AJANTV2_HEADERS list before cmake install is run.
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(REMOVE_ITEM AJANTV2_HEADERS src/win/ntv2windriverinterface.h)
list(REMOVE_ITEM AJANTV2_HEADERS src/win/ntv2winpublicinterface.h)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
list(REMOVE_ITEM AJANTV2_HEADERS src/lin/ntv2linuxdriverinterface.h)
list(REMOVE_ITEM AJANTV2_HEADERS src/lin/ntv2linuxpublicinterface.h)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(REMOVE_ITEM AJANTV2_HEADERS src/mac/ntv2macdriverinterface.h)
list(REMOVE_ITEM AJANTV2_HEADERS src/mac/ntv2macpublicinterface.h)
endif()
list(REMOVE_ITEM AJANTV2_HEADERS src/ntv2devicefeatures.hpp)
install(FILES ${AJABASE_COMMON_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/common)
install(FILES ${AJABASE_NETWORK_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/network)
install(FILES ${AJABASE_PERSISTENCE_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/persistence)
install(FILES ${AJABASE_PNP_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp)
install(FILES ${AJABASE_SYSTEM_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system)
install(FILES ${AJAANC_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajaanc/includes)
install(FILES ${AJANTV2_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/includes)
install(FILES ${AJANTV2_UTILITY_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/utilityfiles/public)
install(FILES ${AJABASE_COMMON_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/common)
install(FILES ${AJABASE_NETWORK_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/network)
install(FILES ${AJABASE_PERSISTENCE_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/persistence)
install(FILES ${AJABASE_PNP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/pnp)
install(FILES ${AJABASE_PNP_WIN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/pnp/windows)
install(FILES ${AJABASE_PNP_MAC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/pnp/mac)
install(FILES ${AJABASE_PNP_LIN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/pnp/linux)
install(FILES ${AJABASE_SYS_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/system)
install(FILES ${AJABASE_SYS_WIN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/system/windows)
install(FILES ${AJABASE_SYS_MAC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/system/mac)
install(FILES ${AJABASE_SYS_LIN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajabase/system/linux)
install(FILES ${AJAANC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajaanc/includes)
install(FILES ${AJANTV2_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/includes)
install(FILES ${AJANTV2_WIN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/src/win)
install(FILES ${AJANTV2_MAC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/src/mac)
install(FILES ${AJANTV2_LIN_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/src/lin)
install(FILES ${AJANTV2_UTILITY_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/utilityfiles/public)
if (AJA_BUILDING_CMAKE)
install(FILES includes/version.h.in DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ajalibraries/ajantv2/includes)
endif()
endif()
if (AJA_INSTALL_SOURCES)
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(REMOVE_ITEM AJANTV2_SOURCES src/win/ntv2windriverinterface.cpp)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
list(REMOVE_ITEM AJANTV2_SOURCES src/lin/ntv2linuxdriverinterface.cpp)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(REMOVE_ITEM AJANTV2_SOURCES src/mac/ntv2macdriverinterface.cpp)
endif()
list(APPEND AJANTV2_SOURCES src/ntv2devicefeatures.hpp)
install(FILES ${AJABASE_COMMON_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/common)
install(FILES ${AJABASE_NETWORK_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/network)
install(FILES ${AJABASE_PERSISTENCE_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/persistence)
install(FILES ${AJABASE_PNP_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp)
install(FILES ${AJABASE_SYSTEM_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system)
install(FILES ${AJAANC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajaanc/src)
install(FILES ${AJANTV2_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src)
list(APPEND AJANTV2_WIN_SOURCES src/win/dllmain.cpp)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2)
install(FILES ${AJABASE_COMMON_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/common)
install(FILES ${AJABASE_NETWORK_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/network)
install(FILES ${AJABASE_PERSISTENCE_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/persistence)
install(FILES ${AJABASE_PNP_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp)
install(FILES ${AJABASE_PNP_WIN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/windows)
install(FILES ${AJABASE_PNP_MAC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/mac)
install(FILES ${AJABASE_PNP_LIN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/pnp/linux)
install(FILES ${AJABASE_SYS_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system)
install(FILES ${AJABASE_SYS_WIN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/windows)
install(FILES ${AJABASE_SYS_MAC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/mac)
install(FILES ${AJABASE_SYS_LIN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajabase/system/linux)
install(FILES ${AJAANC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajaanc/src)
install(FILES ${AJANTV2_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src)
install(FILES ${AJANTV2_WIN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/win)
install(FILES ${AJANTV2_MAC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/mac)
install(FILES ${AJANTV2_LIN_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/src/lin)
install(FILES ${AJANTV2_UTILITY_PUBLIC_SOURCES} DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/utilityfiles/public)
# build stuff
install(FILES ${AJA_CMAKE_DIR}/../ajalibraries/ajantv2/build/Makefile DESTINATION ${CMAKE_INSTALL_PREFIX}/ajalibraries/ajantv2/build)
install(FILES ${AJA_CMAKE_DIR}/../build/common.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/configure.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/internal.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/qt.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/sdkversion.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
install(FILES ${AJA_CMAKE_DIR}/../build/targets.mk DESTINATION ${CMAKE_INSTALL_PREFIX}/build)
endif()
install(TARGETS ajantv2
install(TARGETS ${BUILD_TARGETS}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX})
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (AJA_CODE_SIGN)
aja_code_sign(ajantv2-dyn)
endif()

View File

@ -7,5 +7,5 @@
#define AJA_NTV2_SDK_VERSION_MINOR @AJA_NTV2_SDK_VERSION_MINOR@
#define AJA_NTV2_SDK_VERSION_POINT @AJA_NTV2_SDK_VERSION_POINT@
#define AJA_NTV2_SDK_BUILD_NUMBER @AJA_NTV2_SDK_BUILD_NUMBER@
#define AJA_NTV2_SDK_BUILD_DATETIME @AJA_NTV2_SDK_BUILD_DATETIME@
#define AJA_NTV2_SDK_BUILD_TYPE @AJA_NTV2_SDK_BUILD_TYPE@
#define AJA_NTV2_SDK_BUILD_DATETIME "@AJA_NTV2_SDK_BUILD_DATETIME@"
#define AJA_NTV2_SDK_BUILD_TYPE "@AJA_NTV2_SDK_BUILD_TYPE@"

View File

@ -0,0 +1,67 @@
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_DEBUG_POSTFIX d)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# macOS Build Settings
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
if (NOT DEFINED ENV{MACOSX_DEPLOYMENT_TARGET})
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum macOS deployment version" FORCE)
endif()
# Get the macOS SDK version
get_filename_component(MACOS_SDK_NAME ${CMAKE_OSX_SYSROOT} NAME_WLE)
string(REPLACE "MacOSX" "" MACOS_SDK_VERSION ${MACOS_SDK_NAME})
string(REPLACE "." ";" MACOS_SDK_VERSION_LIST ${MACOS_SDK_VERSION})
list(GET MACOS_SDK_VERSION_LIST 0 MACOS_SDK_VERSION_MAJOR)
list(GET MACOS_SDK_VERSION_LIST 1 MACOS_SDK_VERSION_MINOR)
set(MACOS_FRAMEWORKS_DIR ${CMAKE_OSX_SYSROOT}/System/Library/Frameworks)
# TODO(paulh): Generate macOS Universal (multi-architecture) builds.
# This will require Qt6+ for the AJA Retail apps.
# e.g. set(CMAKE_OSX_ARCHITECTURES arm64 x86_64)
endif()
if (AJA_QT_DIR)
aja_message(STATUS "AJA Qt Dir Variable: ${AJA_QT_DIR}")
endif()
if (DEFINED ENV{AJA_QT_DIR})
set(AJA_QT_DIR $ENV{AJA_QT_DIR})
aja_message(STATUS "AJA Qt Dir Environment: $ENV{AJA_QT_DIR}")
endif()
option(AJA_BUILD_OPENSOURCE "Build NTV2 SDK as open-source (MIT license)?" ON)
option(AJA_BUILD_QT_BASED "Build NTV2 Demos and Apps which depend upon Qt?" ON)
option(AJA_BUILD_SHARED "Build NTV2 shared libraries?" OFF)
option(AJA_CODE_SIGN "Code sign binary outputs?" OFF) # for AJA internal CI builds only
option(AJA_DEPLOY_LIBS "Deploy dependency libraries (DLL/dylib) into the .exe output directory (Win32) or .app bundle (macOS)?" OFF)
option(AJA_INSTALL_SOURCES "Deploy sources into build output directory?" ON)
option(AJA_INSTALL_HEADERS "Deploy headers into build output directory?" ON)
option(AJA_NTV2_SDK_GEN "Run the ajantv2 `sdkgen` script before building (not available in NTV2 open-source)?" OFF)
option(AJA_USE_CLANG "Build NTV2 SDK with LLVM Clang compiler?" OFF)
option(AJA_USE_GCC_NEW_ABI "Build NTV2 SDK with GCC 5 or later?" OFF) # for AJA internal CI builds only
option(AJA_BUILDING_CMAKE "Set to ON if building the NTV2 repo with CMake" OFF)
if (AJA_BUILD_OPENSOURCE)
aja_message(STATUS "Building open-source AJA NTV2 SDK (MIT license)")
option(AJA_BUILD_APPS "Build AJA NTV2 applications?" ON)
option(AJA_BUILD_DOCS "Build AJA NTV2 documentation?" OFF)
option(AJA_BUILD_DRIVER "Build AJA NTV2 driver?" ON)
option(AJA_BUILD_LIBS "Build AJA libraries?" ON)
option(AJA_BUILD_NONAJA "Build non-aja shared libraries?" OFF)
option(AJA_BUILD_PLUGINS "Build AJA Plug-ins?" OFF)
option(AJA_BUILD_QA "Build AJA NTV2 QA apps and libs?" OFF)
option(AJA_BUILD_TESTS "Build unit tests?" OFF)
else()
# build NTV2 as proprietary, including certain proprietary apps, plugins, etc.
aja_message(STATUS "Building AJA NTV2 SDK for internal and OEM usage")
option(AJA_BUILD_APPS "Build AJA NTV2 applications?" ON)
option(AJA_BUILD_DOCS "Build AJA NTV2 documentation?" OFF)
option(AJA_BUILD_DRIVER "Build AJA NTV2 driver?" ON)
option(AJA_BUILD_LIBS "Build AJA libraries?" ON)
option(AJA_BUILD_NONAJA "Build non-aja shared libraries?" ON)
option(AJA_BUILD_PLUGINS "Build AJA Plug-ins?" ON)
option(AJA_BUILD_QA "Build AJA NTV2 QA apps and libs?" ON)
option(AJA_BUILD_TESTS "Build unit tests?" ON)
endif()

View File

@ -1,14 +1,13 @@
# Common preprocessor defines
if(CMAKE_BUILD_TYPE MATCHES Debug)
message("Build Type: Debug")
aja_message(STATUS "Build Type: Debug")
add_definitions(-DAJA_DEBUG -D_DEBUG)
elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
message("Build Type: Release with Debug Symbols")
aja_message(STATUS "Build Type: Release with Debug Symbols")
else()
message("Build Type: Release")
aja_message(STATUS "Build Type: Release")
add_definitions(-DNDEBUG)
endif()
# Platform-specific preprocessor defines
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions(

View File

@ -5,9 +5,12 @@ set(AJA_APPS_ROOT ${AJA_CMAKE_DIR}/../ajaapps)
set(AJA_DRIVER_ROOT ${AJA_CMAKE_DIR}/../ajadriver)
set(AJA_LIBRARIES_ROOT ${AJA_CMAKE_DIR}/../ajalibraries)
set(AJA_PLUGINS_ROOT ${AJA_CMAKE_DIR}/../ajaplugins)
set(AJA_BUILD_ROOT ${AJA_CMAKE_DIR}/../build)
set(AJA_INSTALLERS_ROOT ${AJA_CMAKE_DIR}/../installers)
set(AJA_QA_ROOT ${AJA_CMAKE_DIR}/../qa)
set(NON_AJA_ROOT ${AJA_CMAKE_DIR}/../non-aja)
set(AJA_DEMO_COMMON_ROOT ${AJA_APPS_ROOT}/crossplatform/demoapps)
set(AJA_CI_ROOT ${AJA_CMAKE_DIR}/../CI)
set(AJA_LIB_ANC_ROOT ${AJA_LIBRARIES_ROOT}/ajaanc)
set(AJA_LIB_BASE_ROOT ${AJA_LIBRARIES_ROOT}/ajabase)

View File

@ -1,7 +1,7 @@
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(AJA_BITS 64)
message(STATUS "Bits: 64-bit")
aja_message(STATUS "Bits: 64-bit")
else()
set(AJA_BITS 32)
message(STATUS "Bits: 32-bit")
aja_message(STATUS "Bits: 32-bit")
endif()

View File

@ -1,12 +1,126 @@
if(NOT DEFINED Python2_EXECUTABLE)
find_package(Python2 QUIET)
endif()
if(NOT DEFINED Python3_EXECUTABLE)
find_package(Python3 QUIET)
endif()
if(NOT DEFINED GIT_EXECUTABLE)
find_package(Git QUIET)
endif()
function(aja_message mode msg)
message(${mode} "AJA: ${msg}" ${ARGN})
endfunction(aja_message)
aja_message(STATUS "Python 2 Executable: ${Python2_EXECUTABLE}")
aja_message(STATUS "Python 3 Executable: ${Python3_EXECUTABLE}")
aja_message(STATUS "Git Executable: ${GIT_EXECUTABLE}")
# wrapper around add_subdirectory that only adds the directory
# if the target exists and contains a CMakeLists.txt file
function(add_subdirectory_if_valid target)
if (EXISTS ${target} AND EXISTS ${target}/CMakeLists.txt)
add_subdirectory(${target})
# NOTE: Has an optional variadic arg for specifying a full project name (eg. AJA ControlRoom, etc.)
function(aja_add_subdirectory target)
set(AJA_PRODUCT_NAME "")
set (variadic_args ${ARGN})
list(LENGTH variadic_args variadic_count)
if (${variadic_count} GREATER 0)
list(GET variadic_args 0 AJA_PRODUCT_NAME)
endif()
endfunction()
if (${variadic_count} GREATER 1)
list(GET variadic_args 1 AJA_PRODUCT_DESC)
endif()
set(target_path ${CMAKE_CURRENT_SOURCE_DIR}/${target})
if (EXISTS ${target_path} AND EXISTS ${target_path}/CMakeLists.txt)
add_subdirectory(${target_path})
set(status_msg "added target: ${target}")
if (AJA_PRODUCT_NAME)
set(status_msg "${status_msg} (${AJA_PRODUCT_NAME})")
endif()
aja_message(STATUS ${status_msg})
else()
set(status_msg "target not found: ${target}")
if (AJA_PRODUCT_NAME)
set(status_msg "${status_msg} (${AJA_PRODUCT_NAME})")
endif()
aja_message(WARNING ${status_msg})
endif()
endfunction(aja_add_subdirectory)
function(post_build_copy_file target src dst)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${src} ${dst})
endfunction()
endfunction(post_build_copy_file)
function(aja_make_version_rc product_name product_desc file_in file_out icon_file)
set(AJA_APP_ICON ${icon_file})
set(AJA_PRODUCT_NAME ${product_name})
set(AJA_PRODUCT_DESC ${product_desc})
configure_file(${file_in} ${file_out} @ONLY)
endfunction(aja_make_version_rc)
function(aja_make_version_elf target product_name product_desc file_in file_out icon_file)
set(AJA_APP_ICON ${icon_file})
set(AJA_PRODUCT_NAME ${product_name})
set(AJA_PRODUCT_DESC ${product_desc})
configure_file(${file_in} ${file_out} @ONLY)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
# embed version info as JSON in elf header
add_custom_command(TARGET ${target} POST_BUILD
COMMAND
objcopy
--add-section "aja_app_info=${file_out}"
"$<TARGET_FILE:${target}>"
VERBATIM)
endif()
endfunction(aja_make_version_elf)
function(aja_make_version_plist target product_name bundle_sig file_in file_out icon_file)
set(AJA_PRODUCT_NAME ${product_name})
set(AJA_BUNDLE_SIGNATURE ${bundle_sig})
get_filename_component(icon_filename ${icon_file} NAME)
set(AJA_APP_ICON ${icon_filename})
aja_message(STATUS "mac icon: ${icon_filename}")
configure_file(${file_in} ${file_out} @ONLY)
set_source_files_properties(${file_out} PROPERTIES
MACOSX_PACKAGE_LOCATION Contents)
set_source_files_properties(${icon_file} PROPERTIES
MACOSX_PACKAGE_LOCATION Resources)
set_target_properties(${target} PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST ${file_out})
endfunction(aja_make_version_plist)
function(aja_code_sign targets)
# Code sign build targets with aja "pythonlib" helper scripts.
# NOTE: This functionality is not yet available in ntv2 open-source.
if (UNIX AND NOT APPLE)
aja_message(STATUS "Code signing is not available on this platform!")
return()
endif()
foreach(target IN LISTS targets)
if (EXISTS "${AJA_NTV2_ROOT}/installers/pythonlib/aja/tools/sign.py")
set(pythonlib_path ${AJA_NTV2_ROOT}/installers/pythonlib)
get_filename_component(pythonlib_path "${pythonlib_path}" REALPATH)
set(sign_script_path ${AJA_NTV2_ROOT}/installers/pythonlib/aja/tools/sign.py)
get_filename_component(sign_script_path "${sign_script_path}" REALPATH)
aja_message(STATUS "Code Sign: $<TARGET_FILE:${target}>")
add_custom_command(TARGET ${target} POST_BUILD
COMMAND
${CMAKE_COMMAND} -E env "PYTHONPATH=\"${pythonlib_path}\""
${Python3_EXECUTABLE}
${sign_script_path}
$<TARGET_FILE:${target}>
COMMENT "Signing '$<TARGET_FILE:${target}>' ...")
endif()
endforeach()
endfunction(aja_code_sign)
function(aja_ntv2_sdk_gen target_deps)
add_custom_command(
TARGET ${target_deps} PRE_BUILD
COMMAND
${Python2_EXECUTABLE} ${AJA_NTV2_ROOT}/ajalibraries/ajantv2/sdkgen/ntv2sdkgen.py
--verbose --unused --ajantv2 ajalibraries/ajantv2 --ohh ajalibraries/ajantv2/includes --ohpp ajalibraries/ajantv2/src
WORKING_DIRECTORY ${AJA_NTV2_ROOT}
COMMENT "Running ntv2sdkgen script...")
endfunction(aja_ntv2_sdk_gen)

View File

@ -42,7 +42,7 @@ function(deploy_qt_libs target)
get_target_property(_is_target_bundle ${target} MACOSX_BUNDLE)
if (_is_target_bundle)
message("macOS bundle: ${target}")
aja_message(STATUS "macOS bundle: ${target}")
add_custom_target(
${target}_macqtdeploy ALL
DEPENDS $<TARGET_BUNDLE_DIR:${target}>
@ -51,7 +51,7 @@ function(deploy_qt_libs target)
VERBATIM
)
else()
message("macOS binary: ${target}")
aja_message(STATUS "macOS binary: ${target}")
add_custom_target(
${target}_macqtdeploy ALL
DEPENDS $<TARGET_FILE_DIR:${target}>
@ -63,7 +63,7 @@ function(deploy_qt_libs target)
add_dependencies(${target}_macqtdeploy ${target})
elseif (UNIX AND NOT APPLE)
message("lin_deploy_qt: ${target}")
aja_message(STATUS "lin_deploy_qt: ${target}")
set(LIB_RPATH "")
set(QT_LIBS_OPATH "")
set(QT_PLUGINS_OPATH "")

View File

@ -0,0 +1,37 @@
set(AJA_COMPANY_NAME "AJA Video Systems, Inc.")
set(AJA_WEBSITE "https://www.aja.com/")
# NTV2 SDK version number variables. Generates an include file in `ajantv2/includes/ntv2version.h`,
# which is used throughout the SDK via `ajantv2/includes/ntv2enums.h`.
# Override the following variables to set an arbitrary NTV2 SDK version number.
if (AJA_BUILDING_CMAKE)
string(TIMESTAMP AJA_BUILD_MONTH "%m")
string(TIMESTAMP AJA_BUILD_DAY "%d")
string(TIMESTAMP AJA_BUILD_YEAR "%Y")
string(TIMESTAMP DATETIME_NOW "%m/%d/%Y +8:%H:%M:%S")
if (NOT AJA_NTV2_SDK_VERSION_MAJOR)
set(AJA_NTV2_SDK_VERSION_MAJOR "16")
endif()
if (NOT AJA_NTV2_SDK_VERSION_MINOR)
set(AJA_NTV2_SDK_VERSION_MINOR "3")
endif()
if (NOT AJA_NTV2_SDK_VERSION_POINT)
set(AJA_NTV2_SDK_VERSION_POINT "1")
endif()
set(BUILD_NUMBER_CACHE
${CMAKE_MODULE_PATH}.CMakeBuildNumber
CACHE INTERNAL "AJA NTV2 build number cache file")
if (NOT AJA_NTV2_SDK_BUILD_NUMBER AND EXISTS ${BUILD_NUMBER_CACHE})
file(READ ${BUILD_NUMBER_CACHE} AJA_NTV2_SDK_BUILD_NUMBER)
math(EXPR AJA_NTV2_SDK_BUILD_NUMBER "${AJA_NTV2_SDK_BUILD_NUMBER}+1")
elseif(NOT DEFINED AJA_NTV2_SDK_BUILD_NUMBER)
set(AJA_NTV2_SDK_BUILD_NUMBER "1")
endif()
set(AJA_NTV2_SDK_BUILD_DATETIME ${DATETIME_NOW})
set(AJA_NTV2_VER_STR "${AJA_NTV2_SDK_VERSION_MAJOR}.${AJA_NTV2_SDK_VERSION_MINOR}.${AJA_NTV2_SDK_VERSION_POINT}")
set(AJA_NTV2_VER_STR_LONG "${AJA_NTV2_VER_STR}.${AJA_NTV2_SDK_BUILD_NUMBER}")
string(REPLACE "." "," AJA_NTV2_VER_STR_COMMA "${AJA_NTV2_VER_STR_LONG}")
set(AJA_NTV2_SDK_BUILD_TYPE "d") # r = release, d = debug, b = beta
aja_message(STATUS "NTV2 SDK Version: ${AJA_NTV2_VER_STR} ${aja_ntv2_build_type_letter}${AJA_NTV2_SDK_BUILD_NUMBER}")
endif()

View File

@ -1,72 +0,0 @@
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_DEBUG_POSTFIX d)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# macOS build settings
if (NOT DEFINED ENV{MACOSX_DEPLOYMENT_TARGET})
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum macOS deployment version" FORCE)
endif()
# TODO(paulh): generate universal builds up front
# set(CMAKE_OSX_ARCHITECTURES arm64 x86_64)
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# get the Mac OS SDK major and minor numbers
# MACOS_SDK_NAME will contain something like MacOSX11.1
# MACOS_SDK_VERSION = 11.1
# MACOS_SDK_VERSION_MAJOR = 11
# MACOS_SDK_VERSION_MINOR = 1
get_filename_component(MACOS_SDK_NAME ${CMAKE_OSX_SYSROOT} NAME_WLE)
string(REPLACE "MacOSX" "" MACOS_SDK_VERSION ${MACOS_SDK_NAME})
string(REPLACE "." ";" MACOS_SDK_VERSION_LIST ${MACOS_SDK_VERSION})
list(GET MACOS_SDK_VERSION_LIST 0 MACOS_SDK_VERSION_MAJOR)
list(GET MACOS_SDK_VERSION_LIST 1 MACOS_SDK_VERSION_MINOR)
set(MACOS_FRAMEWORKS_DIR ${CMAKE_OSX_SYSROOT}/System/Library/Frameworks)
endif()
if (AJA_QT_DIR)
message("AJA Qt Dir Variable: ${AJA_QT_DIR}")
endif()
if (DEFINED ENV{AJA_QT_DIR})
set(AJA_QT_DIR $ENV{AJA_QT_DIR})
message("AJA Qt Dir Environment: $ENV{AJA_QT_DIR}")
endif()
option(AJA_BUILD_OPENSOURCE "Build NTV2 SDK as open-source (MIT license)" ON)
# Build ajantv2 open-source SDK
if (AJA_BUILD_OPENSOURCE)
message("NOTE: Building open-source AJA NTV2 SDK components (MIT license)")
option(AJA_BUILDING_CMAKE "Build NTV2 SDK with version.h generated by CMake" OFF)
option(AJA_BUILD_QT_BASED "Build NTV2 Demos and Apps which depend upon Qt" ON)
option(AJA_BUILD_SHARED "Build NTV2 shared libraries" OFF)
option(AJA_DEPLOY_OUTPUTS "Gather build artifacts into top-level directory, and in bin/lib dirs." OFF)
option(AJA_INSTALL_SOURCES "Deploy sources into build output directory." OFF)
option(AJA_INSTALL_HEADERS "Deploy headers into build output directory." OFF)
option(AJA_DEPLOY_LIBS "Deploy dependency libraries (DLL/dylib) into the .exe output directory (Win32) or .app bundle (macOS)." OFF)
option(AJA_BUILD_APPS "Build AJA NTV2 applications" ON)
option(AJA_BUILD_DRIVER "Build AJA NTV2 driver" ON)
option(AJA_BUILD_LIBS "Build AJA libraries" ON)
option(AJA_BUILD_PLUGINS "Build AJA Plug-ins" OFF)
option(AJA_BUILD_TESTS "Build unit tests" OFF)
option(AJA_BUILD_QA "Build AJA NTV2 QA apps and libs" OFF)
option(AJA_BUILD_NONAJA "Build non-aja shared libraries" OFF)
else()
option(AJA_BUILDING_CMAKE "Build NTV2 SDK with version.h generated by CMake" OFF)
option(AJA_BUILD_QT_BASED "Build NTV2 Demos and Apps which depend upon Qt" ON)
option(AJA_BUILD_SHARED "Build NTV2 shared libraries" OFF)
option(AJA_DEPLOY_OUTPUTS "Gather build artifacts into top-level directory, and in bin/lib dirs." OFF)
option(AJA_INSTALL_SOURCES "Deploy sources into build output directory." OFF)
option(AJA_INSTALL_HEADERS "Deploy headers into build output directory." OFF)
option(AJA_DEPLOY_LIBS "Deploy dependency libraries (DLL/dylib) into the .exe output directory (Win32) or .app bundle (macOS)." OFF)
option(AJA_BUILD_APPS "Build AJA NTV2 applications" ON)
option(AJA_BUILD_DRIVER "Build AJA NTV2 driver" ON)
option(AJA_BUILD_LIBS "Build AJA libraries" ON)
option(AJA_BUILD_PLUGINS "Build AJA Plug-ins" ON)
option(AJA_BUILD_TESTS "Build unit tests" ON)
option(AJA_BUILD_QA "Build AJA NTV2 QA apps and libs" ON)
option(AJA_BUILD_NONAJA "Build non-aja shared libraries" ON)
endif()

View File

@ -0,0 +1 @@
{"AppName": "@AJA_PRODUCT_NAME@","AppDescription": "@AJA_PRODUCT_DESC@","AppVersion": "@AJA_NTV2_VER_STR@","AppVersionMajor": "@AJA_NTV2_SDK_VERSION_MAJOR@","AppVersionMinor": "@AJA_NTV2_SDK_VERSION_MINOR@","AppVersionPoint": "@AJA_NTV2_SDK_VERSION_POINT@","AppVersionBuild": "@AJA_NTV2_SDK_BUILD_NUMBER@","AppBuildYear": "@AJA_BUILD_YEAR@","AppBuildMonth": "@AJA_BUILD_MONTH@","AppBuildDay": "@AJA_BUILD_DAY@","AppCopyright": "Copyright (C) @AJA_COMPANY_NAME@ 2011-@AJA_BUILD_YEAR@","CompanyName": "@AJA_COMPANY_NAME@"}

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>@PROJECT_NAME@</string>
<key>CFBundleName</key>
<string>@AJA_PRODUCT_NAME@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleIdentifier</key>
<string>com.aja.@PROJECT_NAME@</string>
<key>CFBundleIconFile</key>
<string>@AJA_APP_ICON@</string>
<key>CFBundleSignature</key>
<string>@AJA_BUNDLE_SIGNATURE@</string>
<key>CFBundleVersion</key>
<string>@AJA_NTV2_VER_STR@</string>
<key>CFBundleShortVersionString</key>
<string>@AJA_NTV2_VER_STR@</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © @AJA_COMPANY_NAME@ 2012-@AJA_BUILD_YEAR@</string>
<key>CFBundleGetInfoString</key>
<string>@AJA_NTV2_VER_STR@ Copyright © @AJA_COMPANY_NAME@ 2012-@AJA_BUILD_YEAR@</string>
</dict>
</plist>

View File

@ -0,0 +1,136 @@
// Microsoft Visual C++ generated resource script.
//
//#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
// These variables replaced by CMake builds
#define COMPANY_NAME_STR "@AJA_COMPANY_NAME@\0"
#define INTERNAL_NAME_STR "@PROJECT_NAME@\0"
#define ORIGINAL_FILENAME_STR "@PROJECT_NAME@.exe\0"
#define PRODUCT_NAME_STR "@AJA_PRODUCT_NAME@\0"
#define VER_FILEVERSION @AJA_NTV2_VER_STR_COMMA@
#define VER_FILEVERSION_STR "@AJA_NTV2_VER_STR_LONG@\0"
#define VER_PRODUCTVERSION @AJA_NTV2_VER_STR_COMMA@
#define VER_PRODUCTVERSION_STR "@AJA_NTV2_VER_STR_LONG@\0"
#define LEGAL_COPYRIGHT_STR "© @AJA_COMPANY_NAME@ @AJA_BUILD_YEAR@\0"
#ifndef DEBUG
#define VER_DEBUG 0
#define VER_PRERELEASE 0
#define VER_PRIVATEBUILD 0
#else
#define VER_DEBUG VS_FF_DEBUG
#define VER_PRERELEASE VS_FF_PRERELEASE
#define VER_PRIVATEBUILD 0
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG)
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", COMPANY_NAME_STR
VALUE "FileDescription", "\0"
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", INTERNAL_NAME_STR
VALUE "LegalCopyright", LEGAL_COPYRIGHT_STR
VALUE "LegalTrademarks1", "\0"
VALUE "LegalTrademarks2", "\0"
VALUE "OriginalFilename", ORIGINAL_FILENAME_STR
VALUE "ProductName", PRODUCT_NAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
/* The following line should only be modified for localized versions. */
/* It consists of any number of WORD,WORD pairs, with each pair */
/* describing a language,codepage combination supported by the file. */
/* */
/* For example, a file might have values "0x409,1252" indicating that it */
/* supports English language (0x409) in the Windows ANSI codepage (1252). */
VALUE "Translation", 0x409, 1252
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON DISCARDABLE "@AJA_APP_ICON@"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -0,0 +1,2 @@
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)

View File

@ -0,0 +1,34 @@
# Toolchain intended for AJA internal CI builds
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
if (AJA_USE_CLANG)
set(CMAKE_C_COMPILER clang.exe)
set(CMAKE_CXX_COMPILER clang++.exe)
else()
set(CMAKE_C_COMPILER cl.exe)
set(CMAKE_CXX_COMPILER cl.exe)
endif()
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
if (AJA_USE_CLANG)
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
else()
if(AJA_USE_GCC_NEW_ABI)
# GCC >= 5 (supports C++11)
set(CMAKE_CXX_STANDARD 11)
if (NOT EXISTS /opt/aja/bin/g++)
message(FATAL_ERROR "AJA: GCC 5 not found in /opt/aja/bin")
return()
endif()
message(STATUS "AJA: Building with GCC 5 in /opt/aja/bin")
set(CMAKE_C_COMPILER /opt/aja/bin/gcc)
set(CMAKE_CXX_COMPILER /opt/aja/bin/g++)
else()
# GCC <= 4.8.5 (CentOS7 default compiler)
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
endif()
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# no-op
endif()

View File

@ -0,0 +1,2 @@
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)

View File

@ -0,0 +1,2 @@
set(CMAKE_C_COMPILER clang.exe)
set(CMAKE_CXX_COMPILER clang++.exe)

View File

@ -0,0 +1,2 @@
set(CMAKE_C_COMPILER cl.exe)
set(CMAKE_CXX_COMPILER cl.exe)