77INCLUDE (ProcessorCount) # require CMake 3.15+
88PROCESSORCOUNT(_cpu_count)
99
10- RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_AJA" "16.2 " "make" "" )
10+ RV_CREATE_STANDARD_DEPS_VARIABLES("RV_DEPS_AJA" "17.1.0 " "make" "" )
1111RV_SHOW_STANDARD_DEPS_VARIABLES()
1212
13- SET (_patch
14- "bugfix5"
15- )
13+ STRING (REPLACE "." "_" _version_with_underscore ${_version} )
1614
1715SET (_download_url
18- "https://github.com/aja-video/ntv2 /archive/refs/tags/v ${_version} - ${_patch } .zip"
16+ "https://github.com/aja-video/libajantv2 /archive/refs/tags/ntv2_ ${_version_with_underscore } .zip"
1917)
2018
2119SET (_download_hash
22- "5ec7f3f7ecfc322ca9307203155a4481 "
20+ "b9d189f77e18dbdff7c39a339b1a5dd4 "
2321)
2422
25- SET (_install_dir
26- ${RV_DEPS_BASE_DIR} /${_target} /install
23+ IF (RV_TARGET_WINDOWS)
24+ RV_MAKE_STANDARD_LIB_NAME(ajantv2_vs143_MT "" "SHARED" "d" )
25+ ELSE ()
26+ RV_MAKE_STANDARD_LIB_NAME(ajantv2 "" "SHARED" "d" )
27+ ENDIF ()
28+
29+ SET (_aja_ntv2_include_dir
30+ ${_include_dir} /libajantv2/ajantv2/includes
2731)
28- SET (_include_dir
29- ${_install_dir} / include
32+ SET (_aja_include_dir
33+ ${_include_dir} /libajantv2
3034)
3135
32- IF (RV_TARGET_LINUX )
33- SET (_lib_dir
34- ${_install_dir} /lib64
35- )
36+ IF (RHEL_VERBOSE )
37+ SET (_mbedtls_lib_dir
38+ ${_build_dir} /ajantv2/mbedtls- install /lib64
39+ )
3640ELSE ()
37- SET (_lib_dir
38- ${_install_dir} /lib
39- )
41+ SET (_mbedtls_lib_dir
42+ ${_build_dir} /ajantv2/mbedtls- install /lib
43+ )
4044ENDIF ()
4145
42- SET (_make_command
43- make
44- )
45- SET (_configure_command
46- cmake
47- )
46+ SET (_mbedtls_lib ${_mbedtls_lib_dir} /${CMAKE_STATIC_LIBRARY_PREFIX} mbedtls${CMAKE_STATIC_LIBRARY_SUFFIX} )
47+ SET (_mbedx509_lib ${_mbedtls_lib_dir} /${CMAKE_STATIC_LIBRARY_PREFIX} mbedx509${CMAKE_STATIC_LIBRARY_SUFFIX} )
48+ SET (_mbedcrypto_lib ${_mbedtls_lib_dir} /${CMAKE_STATIC_LIBRARY_PREFIX} mbedcrypto${CMAKE_STATIC_LIBRARY_SUFFIX} )
4849
49- IF (${RV_OSX_EMULATION} )
50- SET (_darwin_x86_64
51- "arch" "${RV_OSX_EMULATION_ARCH} "
52- )
50+ LIST (APPEND _byproducts ${_mbedtls_lib} ${_mbedx509_lib} ${_mbedcrypto_lib} )
5351
54- SET (_make_command
55- ${_darwin_x86_64} ${_make_command}
52+ # There is an issue with the recent AJA SDK : the OS specific header files are no longer copied to _aja_ntv2_include_dir Adding custom paths here to work around
53+ # this issue
54+ IF (RV_TARGET_LINUX)
55+ SET (_aja_ntv2_os_specific_include_dir
56+ ${_include_dir} /libajantv2/ajantv2/src/lin
5657 )
57- SET (_configure_command
58- ${_darwin_x86_64} ${_configure_command}
58+ ELSEIF (RV_TARGET_DARWIN)
59+ SET (_aja_ntv2_os_specific_include_dir
60+ ${_include_dir} /libajantv2/ajantv2/src/mac
5961 )
60- ENDIF ()
61-
62- IF (RV_TARGET_WINDOWS)
63- # MSYS2/CMake defaults to Ninja
64- SET (_make_command
65- ninja
66- )
67- ENDIF ()
68-
69- IF (${CMAKE_BUILD_TYPE} STREQUAL "Debug" )
70- SET (AJA_DEBUG_POSTFIX
71- "d"
62+ ELSEIF (RV_TARGET_WINDOWS)
63+ SET (_aja_ntv2_os_specific_include_dir
64+ ${_include_dir} /libajantv2/ajantv2/src/win
7265 )
7366ENDIF ()
7467
75- SET (_aja_ntv2_libname
76- ${CMAKE_STATIC_LIBRARY_PREFIX} ajantv2${AJA_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
68+ LIST (APPEND
69+ _configure_options
70+ "-DAJANTV2_DISABLE_DEMOS=ON"
71+ "-DAJANTV2_DISABLE_TOOLS=ON"
72+ "-DAJANTV2_DISABLE_TESTS=ON"
73+ "-DAJANTV2_BUILD_SHARED=ON"
7774)
7875
79- SET (_aja_ntv2_lib
80- ${_lib_dir} /${_aja_ntv2_libname}
81- )
82- SET (_aja_ntv2_include_dir
83- ${_include_dir} /ajalibraries/ajantv2/includes
84- )
85- SET (_aja_include_dir
86- ${_include_dir} /ajalibraries
87- )
76+ # In Debug, the MSVC runtime library needs to be set to MultiThreadedDebug. Otherwise, it will be set to MultiThreaded.
77+ IF (RV_TARGET_WINDOWS AND CMAKE_BUILD_TYPE MATCHES "^Debug$" )
78+ LIST (APPEND
79+ _configure_options
80+ "-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug"
81+ )
82+ ENDIF ()
8883
8984EXTERNALPROJECT_ADD(
9085 ${_target}
@@ -93,34 +88,46 @@ EXTERNALPROJECT_ADD(
9388 DOWNLOAD_NAME ${_target} _${_version} .zip
9489 DOWNLOAD_DIR ${RV_DEPS_DOWNLOAD_DIR}
9590 DOWNLOAD_EXTRACT_TIMESTAMP TRUE
96- SOURCE_DIR ${RV_DEPS_BASE_DIR} /${_target} /src
91+ SOURCE_DIR ${_source_dir}
92+ BINARY_DIR ${_build_dir}
9793 INSTALL_DIR ${_install_dir}
98- CONFIGURE_COMMAND ${CMAKE_COMMAND} -G Ninja -DCMAKE_INSTALL_PREFIX=${_install_dir} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
99- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DAJA_BUILD_APPS=OFF ${RV_DEPS_BASE_DIR} /${_target} /src
100- # Not using _cmake_build_command and _cmake_install_command since the build dir need to change.
101- BUILD_COMMAND ${CMAKE_COMMAND} --build ${RV_DEPS_BASE_DIR} /${_target} /src --config ${CMAKE_BUILD_TYPE} -j${_cpu_count}
102- INSTALL_COMMAND ${CMAKE_COMMAND} --install ${RV_DEPS_BASE_DIR} /${_target} /src --prefix ${_install_dir} --config ${CMAKE_BUILD_TYPE}
103- BUILD_IN_SOURCE TRUE
94+ CONFIGURE_COMMAND ${CMAKE_COMMAND} ${_configure_options}
95+ BUILD_COMMAND ${_cmake_build_command}
96+ INSTALL_COMMAND ${_cmake_install_command} && ${CMAKE_COMMAND} -E copy_directory ${_mbedtls_lib_dir} ${_lib_dir}
97+ BUILD_IN_SOURCE FALSE
10498 BUILD_ALWAYS FALSE
105- BUILD_BYPRODUCTS ${_aja_ntv2_lib }
99+ BUILD_BYPRODUCTS ${_byproducts }
106100 USES_TERMINAL_BUILD TRUE
107101)
108102
109- ADD_LIBRARY (aja::ntv2 STATIC IMPORTED GLOBAL )
103+ RV_COPY_LIB_BIN_FOLDERS()
104+
105+ ADD_LIBRARY (aja::ntv2 SHARED IMPORTED GLOBAL )
110106ADD_DEPENDENCIES (aja::ntv2 ${_target} )
111107SET_PROPERTY (
112108 TARGET aja::ntv2
113- PROPERTY IMPORTED_LOCATION ${_aja_ntv2_lib }
109+ PROPERTY IMPORTED_LOCATION ${_libpath }
114110)
115111SET_PROPERTY (
116112 TARGET aja::ntv2
117- PROPERTY IMPORTED_SONAME ${_aja_ntv2_libname }
113+ PROPERTY IMPORTED_SONAME ${_libname }
118114)
115+ IF (RV_TARGET_WINDOWS)
116+ SET_PROPERTY (
117+ TARGET aja::ntv2
118+ PROPERTY IMPORTED_IMPLIB ${_implibpath}
119+ )
120+ ENDIF ()
119121
120- FILE (MAKE_DIRECTORY ${_aja_include_dir} ${_aja_ntv2_include_dir} )
122+ FILE (MAKE_DIRECTORY ${_aja_include_dir} ${_aja_ntv2_include_dir} ${_aja_ntv2_os_specific_include_dir} )
121123TARGET_INCLUDE_DIRECTORIES (
122124 aja::ntv2
123- INTERFACE ${_aja_include_dir} ${_aja_ntv2_include_dir}
125+ INTERFACE ${_aja_include_dir} ${_aja_ntv2_include_dir} ${_aja_ntv2_os_specific_include_dir}
126+ )
127+
128+ TARGET_LINK_LIBRARIES (
129+ aja::ntv2 INTERFACE
130+ ${_mbedtls_lib} ${_mbedx509_lib} ${_mbedcrypto_lib}
124131)
125132
126133IF (RV_TARGET_DARWIN)
@@ -140,37 +147,9 @@ SET(RV_DEPS_AJA_COMPILE_OPTIONS
140147
141148LIST (APPEND RV_DEPS_LIST aja::ntv2)
142149
143- IF (RV_TARGET_WINDOWS)
144- FILE (MAKE_DIRECTORY ${_install_dir} /lib)
145- FILE (MAKE_DIRECTORY ${_install_dir} /bin)
146-
147- ADD_CUSTOM_COMMAND (
148- TARGET ${_target}
149- POST_BUILD
150- COMMENT "Installing ${_target} 's libs and bin into ${RV_STAGE_LIB_DIR} and ${RV_STAGE_BIN_DIR} "
151- COMMAND ${CMAKE_COMMAND} -E copy_directory ${_install_dir} /lib ${RV_STAGE_LIB_DIR}
152- COMMAND ${CMAKE_COMMAND} -E copy_directory ${_install_dir} /bin ${RV_STAGE_BIN_DIR}
153- )
154- ADD_CUSTOM_TARGET (
155- ${_target} -stage-target ALL
156- DEPENDS ${RV_STAGE_LIB_DIR} /${_aja_ntv2_libname}
157- )
158- ELSE ()
159- ADD_CUSTOM_COMMAND (
160- COMMENT "Installing ${_target} 's libs into ${RV_STAGE_LIB_DIR} "
161- OUTPUT ${RV_STAGE_LIB_DIR} /${_aja_ntv2_libname}
162- COMMAND ${CMAKE_COMMAND} -E copy_directory ${_lib_dir} ${RV_STAGE_LIB_DIR}
163- DEPENDS ${_target}
164- )
165- ADD_CUSTOM_TARGET (
166- ${_target} -stage-target ALL
167- DEPENDS ${RV_STAGE_LIB_DIR} /${_aja_ntv2_libname}
168- )
169- ENDIF ()
170-
171150ADD_DEPENDENCIES (dependencies ${_target} -stage-target )
172151
173152SET (RV_DEPS_AJA_VERSION
174153 ${_version}
175154 CACHE INTERNAL "" FORCE
176- )
155+ )
0 commit comments