cmake_minimum_required(VERSION 3.10)

project(videomasterip_samples)

if(NOT CUSTOM)
   if(WIN32)
      include_directories($ENV{VIDEOMASTERIP})
      link_directories($ENV{VIDEOMASTERIP_LIB})
      link_libraries(videomasterip2)
   endif()
   if(UNIX)
      link_libraries(videomasterip pthread)
   endif()
endif()


#Needed libraries to compile sample_st2110_22 samples.
# Find IntoPix's IpxBoxes
file(GLOB WIN_INSTALL_PATH "C:/Program Files*/intoPIX/intoPIX Boxes*")
include(FindPackageHandleStandardArgs)
find_path(IPXBOXES_INC NAMES IpxBoxes/xs-boxes.h PATHS "${WIN_INSTALL_PATH}/include" "${CMAKE_INSTALL_PREFIX}/include")
find_library(IPXBOXES_LIB NAMES IpxBoxes PATHS "${WIN_INSTALL_PATH}/bin" "${WIN_INSTALL_PATH}/lib" "${CMAKE_INSTALL_PREFIX}/lib")
FIND_PACKAGE_HANDLE_STANDARD_ARGS(IPXBOXES DEFAULT_MSG IPXBOXES_INC IPXBOXES_LIB)
mark_as_advanced(IPXBOXES_INC IPXBOXES_LIB)

# Find IntoPix's IpxCpuCodec
file(GLOB WIN_INSTALL_PATH "C:/Program Files*/intoPIX/intoPIX CPU Codec*")
include(FindPackageHandleStandardArgs)
find_path(IPXCPUCODEC_INC NAMES IpxCpuCodec/encode.h PATHS "${WIN_INSTALL_PATH}/include" "${LIN_INSTALL_PATH}/include" "${CMAKE_INSTALL_PREFIX}/include")
find_library(IPXCPUCODEC_LIB NAMES IpxCpuCodec PATHS "${WIN_INSTALL_PATH}/bin" "${WIN_INSTALL_PATH}/lib" "${LIN_INSTALL_PATH}/lib" "${CMAKE_INSTALL_PREFIX}/lib")
find_library(IPXCPUCODEC_STATIC_LIB NAMES IpxCpuCodec_static PATHS "${WIN_INSTALL_PATH}/bin" "${WIN_INSTALL_PATH}/lib" "${LIN_INSTALL_PATH}/lib" "${CMAKE_INSTALL_PREFIX}/lib")
FIND_PACKAGE_HANDLE_STANDARD_ARGS(IPXCPUCODEC DEFAULT_MSG IPXCPUCODEC_INC IPXCPUCODEC_LIB IPXCPUCODEC_STATIC_LIB)
if(${IPXCPUCODEC_FOUND})
    mark_as_advanced(IPXCPUCODEC_INC IPXCPUCODEC_LIB IPXCPUCODEC_STATIC_LIB)
endif()

#Find GLFW3 which is needed for sample_st2110_20_rx_viewer and inherited from the video-viewer (https://github.com/deltacasttv/video-viewer)
find_package(glfw3 QUIET)

include_directories( PRIVATE "../")

add_subdirectory(sample_ptp)
add_subdirectory(sample_st2110_20_rx)
add_subdirectory(sample_rx_m_tx)
add_subdirectory(sample_st2110_20_tx)
add_subdirectory(sample_st2110_20_rx_st2022_7)
add_subdirectory(sample_st2110_20_tx_st2022_7)
if(GLFW3_FOUND)
add_subdirectory(sample_st2110_20_rx_viewer)
endif()
if(IPXCPUCODEC_FOUND AND IPXBOXES_FOUND)
   add_subdirectory(sample_st2110_22_rx)
   add_subdirectory(sample_st2110_22_tx)
endif()
add_subdirectory(sample_st2110_30_rx)
add_subdirectory(sample_st2110_30_tx)
add_subdirectory(sample_st2110_40_rx)
add_subdirectory(sample_st2110_40_tx)
add_subdirectory(sample_st2110_40_afd_rx)
add_subdirectory(sample_st2110_40_afd_tx)
add_subdirectory(sample_st2110_40_cc_608_vanc_rx)
add_subdirectory(sample_st2110_40_cc_608_vanc_tx)
add_subdirectory(sample_st2110_40_cc_op47_rx)
add_subdirectory(sample_st2110_40_cc_op47_tx)
add_subdirectory(sample_st2110_40_hdr_metadata_rx)
add_subdirectory(sample_st2110_40_timecode_rx)
add_subdirectory(sample_st2110_40_timecode_tx)
add_subdirectory(sample_refresh_licensing)
add_subdirectory(sample_rx_stream_sync)
add_subdirectory(sample_tx_stream_sync)