FindLibAJANTV2.cmake 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. # Once done these will be defined:
  2. #
  3. # LIBAJANTV2_FOUND LIBAJANTV2_INCLUDE_DIRS LIBAJANTV2_LIBRARIES
  4. #
  5. find_package(PkgConfig QUIET)
  6. if(PKG_CONFIG_FOUND)
  7. pkg_check_modules(_AJA QUIET ajantv2)
  8. endif()
  9. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  10. set(_lib_suffix 64)
  11. else()
  12. set(_lib_suffix 32)
  13. endif()
  14. find_path(
  15. AJA_LIBRARIES_INCLUDE_DIR
  16. NAMES ajalibraries
  17. HINTS ENV
  18. AJASDKPath${_lib_suffix}
  19. ENV
  20. AJASDKPath
  21. ENV
  22. DepsPath${_lib_suffix}
  23. ENV
  24. DepsPath
  25. ${AJASDKPath${_lib_suffix}}
  26. ${AJASDKPath}
  27. ${DepsPath${_lib_suffix}}
  28. ${DepsPath}
  29. ${_AJA_NTV2_INCLUDE_DIRS}
  30. PATHS /usr/include /usr/local/include /opt/local/include /sw/include
  31. PATH_SUFFIXES include)
  32. find_library(
  33. AJA_NTV2_LIB
  34. NAMES ${_AJA_NTV2_LIBRARIES} ajantv2 libajantv2
  35. HINTS ENV
  36. AJASDKPath${_lib_suffix}
  37. ENV
  38. AJASDKPath
  39. ENV
  40. DepsPath${_lib_suffix}
  41. ENV
  42. DepsPath
  43. ${AJASDKPath${_lib_suffix}}
  44. ${AJASDKPath}
  45. ${DepsPath${_lib_suffix}}
  46. ${DepsPath}
  47. ${_AJA_NTV2_LIBRARY_DIRS}
  48. PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib
  49. PATH_SUFFIXES
  50. lib${_lib_suffix}
  51. lib
  52. libs${_lib_suffix}
  53. libs
  54. bin${_lib_suffix}
  55. bin
  56. ../lib${_lib_suffix}
  57. ../lib
  58. ../libs${_lib_suffix}
  59. ../libs
  60. ../bin${_lib_suffix}
  61. ../bin)
  62. find_library(
  63. AJA_NTV2_DEBUG_LIB
  64. NAMES ajantv2d libajantv2d
  65. HINTS ENV
  66. AJASDKPath${_lib_suffix}
  67. ENV
  68. AJASDKPath
  69. ENV
  70. DepsPath${_lib_suffix}
  71. ENV
  72. DepsPath
  73. ${AJASDKPath${_lib_suffix}}
  74. ${AJASDKPath}
  75. ${DepsPath${_lib_suffix}}
  76. ${DepsPath}
  77. ${_AJA_NTV2_LIBRARY_DIRS}
  78. PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib
  79. PATH_SUFFIXES
  80. lib${_lib_suffix}
  81. lib
  82. libs${_lib_suffix}
  83. libs
  84. bin${_lib_suffix}
  85. bin
  86. ../lib${_lib_suffix}
  87. ../lib
  88. ../libs${_lib_suffix}
  89. ../libs
  90. ../bin${_lib_suffix}
  91. ../bin)
  92. include(FindPackageHandleStandardArgs)
  93. find_package_handle_standard_args(LibAJANTV2 DEFAULT_MSG AJA_LIBRARIES_INCLUDE_DIR AJA_NTV2_LIB)
  94. mark_as_advanced(AJA_LIBRARIES_INCLUDE_DIR AJA_NTV2_LIB)
  95. if(LIBAJANTV2_FOUND)
  96. set(AJA_LIBRARIES_INCLUDE_DIR ${AJA_LIBRARIES_INCLUDE_DIR}/ajalibraries)
  97. set(AJA_LIBRARIES_INCLUDE_DIRS
  98. ${AJA_LIBRARIES_INCLUDE_DIR} ${AJA_LIBRARIES_INCLUDE_DIR}/ajaanc ${AJA_LIBRARIES_INCLUDE_DIR}/ajabase
  99. ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2 ${AJA_LIBRARIES_INCLUDE_DIR}/ajantv2/includes)
  100. set(LIBAJANTV2_LIBRARIES ${AJA_NTV2_LIB})
  101. if(AJA_NTV2_DEBUG_LIB STREQUAL "AJA_NTV2_DEBUG_LIB-NOTFOUND")
  102. set(AJA_NTV2_DEBUG_LIB ${AJA_NTV2_LIB})
  103. mark_as_advanced(AJA_NTV2_DEBUG_LIB)
  104. endif()
  105. set(LIBAJANTV2_DEBUG_LIBRARIES ${AJA_NTV2_DEBUG_LIB})
  106. set(LIBAJANTV2_INCLUDE_DIRS ${AJA_LIBRARIES_INCLUDE_DIRS})
  107. if(NOT TARGET AJA::LibAJANTV2)
  108. if(IS_ABSOLUTE "${LIBAJANTV2_LIBRARIES}")
  109. add_library(AJA::LibAJANTV2 UNKNOWN IMPORTED)
  110. set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LOCATION "${LIBAJANTV2_LIBRARIES}")
  111. if(DEFINED LIBAJANTV2_DEBUG_LIBRARIES)
  112. set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBAJANTV2_DEBUG_LIBRARIES}")
  113. endif()
  114. else()
  115. add_library(AJA::LibAJANTV2 INTERFACE IMPORTED)
  116. set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LIBNAME "${LIBAJANTV2_LIBRARIES}")
  117. if(DEFINED LIBAJANTV2_DEBUG_LIBRARIES)
  118. set_target_properties(AJA::LibAJANTV2 PROPERTIES IMPORTED_LIBNAME_DEBUG "${LIBAJANTV2_DEBUG_LIBRARIES}")
  119. endif()
  120. endif()
  121. set_target_properties(AJA::LibAJANTV2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBAJANTV2_INCLUDE_DIRS}")
  122. target_compile_definitions(
  123. AJA::LibAJANTV2
  124. INTERFACE "$<$<BOOL:${OS_WINDOWS}>:AJA_WINDOWS;_WINDOWS;WIN32;MSWindows>"
  125. "$<$<AND:$<BOOL:${OS_WINDOWS}>,$<CONFIG:DEBUG>>:_DEBUG;_NDEBUG>"
  126. "$<$<BOOL:${OS_MACOS}>:AJAMac;AJA_MAC>" "$<$<BOOL:${OS_LINUX}>:AJA_LINUX;AJALinux>")
  127. endif()
  128. endif()