1set(NDI_SDK_INCLUDE_PATH "" CACHE PATH "NDI SDK include path")
2set(NDI_SDK_LIBRARY_PATH "" CACHE PATH "NDI SDK library path")
3
4if(NOT (NDI_SDK_INCLUDE_PATH AND NDI_SDK_LIBRARY_PATH))
5  message(FATAL_ERROR "NDI SDK: Please povide NDI_SDK_INCLUDE_PATH and NDI_SDK_LIBRARY_PATH!")
6endif()
7
8find_path(NDI_INCLUDE_DIR
9  NAMES
10    Processing.NDI.compat.h
11    Processing.NDI.deprecated.h
12    Processing.NDI.DynamicLoad.h
13    Processing.NDI.Find.h
14    Processing.NDI.FrameSync.h
15    Processing.NDI.Lib.cplusplus.h
16    Processing.NDI.Lib.h
17    Processing.NDI.Recv.ex.h
18    Processing.NDI.Recv.h
19    Processing.NDI.Routing.h
20    Processing.NDI.Send.h
21    Processing.NDI.structs.h
22    Processing.NDI.utilities.h
23  PATHS "${NDI_SDK_INCLUDE_PATH}"
24)
25
26find_library(NDI_LIBRARY
27  NAMES ndi
28  PATHS "${NDI_SDK_LIBRARY_PATH}"
29)
30if(NOT NDI_LIBRARY)
31  message(FATAL_ERROR "NDI SDK: libndi.so / ndi.dll not found in:\n${NDI_SDK_LIBRARY_PATH}\nMaybe you have to create a symlink or rename the file.")
32endif()
33
34include(FindPackageHandleStandardArgs)
35find_package_handle_standard_args(NDI
36  FOUND_VAR NDI_FOUND
37  REQUIRED_VARS
38    NDI_LIBRARY
39    NDI_INCLUDE_DIR
40)
41
42if(NDI_FOUND AND NOT TARGET NDI::NDI)
43  add_library(NDI::NDI SHARED IMPORTED)
44  set_target_properties(NDI::NDI PROPERTIES
45    IMPORTED_LOCATION "${NDI_LIBRARY}"
46    INTERFACE_INCLUDE_DIRECTORIES "${NDI_INCLUDE_DIR}"
47  )
48endif()
49
50mark_as_advanced(
51  NDI_INCLUDE_DIR
52  NDI_LIBRARY
53)