diff --git a/CMakeLists.txt b/CMakeLists.txt index fe7f212d5..435fecdd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -235,6 +235,15 @@ OPTION(PLUS_USE_INFRARED_TEQ1_CAM "Provide support for capturing an Infrared The OPTION(PLUS_USE_INFRARED_TEEV2_CAM "Provide support for capturing an Infrared Therma Expert EV2 Camera capture stream" OFF) OPTION(PLUS_USE_ULTRAVIOLET_PCOUV_CAM "Provide support for capturing an PCO Ultraviolet Camera capture stream" OFF) OPTION(PLUS_USE_DAQVIDEOSOURCE "Provide support for capturing an CameraLink Camera using DAQ System USB3-FRM13-B Grabber" OFF) +OPTION(PLUS_USE_DAQMMFCOMBINED_VIDEO "Provide support for capturing an CameraLink Camera using DAQ System USB3-FRM13-B Grabber and MMF Camera" OFF) +OPTION(PLUS_USE_FLIRSPINNAKER_CAM "Provide support for capturing an FLIR Spinnaker capture stream" OFF) +OPTION(PLUS_USE_SPECIM_CAM "Provide support for capturing an Specim Fx17e capture stream" OFF) + +IF(PLUS_USE_DAQMMFCOMBINED_VIDEO) + SET (PLUS_USE_DAQVIDEOSOURCE ON CACHE BOOL "Provide support for the DAQ System USB3-FRM13-B + MMF combined device" FORCE) + SET (PLUS_USE_MMF_VIDEO ON CACHE BOOL "Provide support for the DAQ System USB3-FRM13-B + MMF combined device" FORCE) +ENDIF() + OPTION(PLUS_USE_PHILIPS_3D_ULTRASOUND "Provide support for the Philips ie33 3D ultrasound probe" OFF) IF(PLUS_USE_PHILIPS_3D_ULTRASOUND) OPTION(PLUS_TEST_PHILIPS_3D_ULTRASOUND "Enable testing of acquisition from Philips 3D ultrasound systems. Enable this only if a Philips device is accessible from this computer. " OFF) @@ -683,6 +692,20 @@ IF(PLUS_USE_DAQVIDEOSOURCE) ENDIF() ENDIF() +IF(PLUS_USE_FLIRSPINNAKER_CAM) + FIND_PACKAGE(FLIRSPINNAKER_SDK) + IF(NOT FLIRSPINNAKER_SDK_FOUND) + MESSAGE(FATAL_ERROR "This project requires FLIR SPINNAKER SDK for supporting the FLIR camera device. One of the components is missing. Please verify configuration or turn off PLUS_USE_FLIRSPINNAKER_CAM.") + ENDIF() +ENDIF() + +IF(PLUS_USE_SPECIM_CAM) + FIND_PACKAGE(SPECIM_SDK) + IF(NOT SPECIM_SDK_FOUND) + MESSAGE(FATAL_ERROR "This project requires Specim - LUMO Sensor SDK for supporting the Specim Fx17e camera device. One of the components is missing. Please verify configuration or turn off PLUS_USE_SPECIM_CAM.") + ENDIF() +ENDIF() + IF(PLUS_USE_ATRACSYS) SET(PLUS_USE_ATRACSYS_DEVICE_TYPE "SET_DEVICE_TYPE" CACHE STRING "Type of Atracsys device to build support for.") SET_PROPERTY(CACHE PLUS_USE_ATRACSYS_DEVICE_TYPE PROPERTY STRINGS stk ftk ftksim) diff --git a/Modules/FindFLIRSpinnaker_SDK.cmake b/Modules/FindFLIRSpinnaker_SDK.cmake new file mode 100644 index 000000000..4aad485a0 --- /dev/null +++ b/Modules/FindFLIRSpinnaker_SDK.cmake @@ -0,0 +1,71 @@ +############################################################################### +# Find FLIR SYSTEMS SPINNAKER SDK +# +# find_package(FLIRSPINNAKERSDK) +# +# Variables defined by this module: +# +# FLIRSPINNAKERSDK_FOUND True if SDK found +# FLIRSPINNAKERSDK_VERSION The version of SDK +# FLIRSPINNAKERSDK_INCLUDE_DIR The location(s) of SDK headers +# FLIRSPINNAKERSDK_LIBRARY_DIR Libraries needed to use SDK +# FLIRSPINNAKERSDK_BINARY_DIR Binaries needed to use SDK +# "$ENV{PROGRAMFILES}/FLIR Systems/Spinnaker" + +SET(FLIRSPINNAKER_SDK_PATH_HINTS + "C:/Program Files/FLIR Systems/Spinnaker" + ) + +find_path(FLIRSPINNAKER_SDK_DIR include/Spinnaker.h + PATHS ${FLIRSPINNAKER_SDK_PATH_HINTS} + DOC "FLIR SYSTEMS Spinnaker SDK directory") + +if (FLIRSPINNAKER_SDK_DIR) + # Include directories + set(FLIRSPINNAKER_SDK_INCLUDE_DIR ${FLIRSPINNAKER_SDK_DIR}/include) + mark_as_advanced(FLIRSPINNAKER_SDK_INCLUDE_DIR) + + + # Libraries + SET(PLATFORM_SUFFIX "") + SET(LIB_FILENAME "Spinnaker_v140.lib") + SET(SDK_FILENAME "Spinnaker_v140.dll") + + IF (CMAKE_HOST_WIN32 AND CMAKE_CL_64 ) + SET(PLATFORM_LIB_SUFFIX "lib64/vs2015") + SET(PLATFORM_BIN_SUFFIX "bin64/vs2015") + ENDIF (CMAKE_HOST_WIN32 AND CMAKE_CL_64 ) + + IF (CMAKE_HOST_WIN32 AND NOT CMAKE_CL_64 ) + SET(PLATFORM_LIB_SUFFIX "lib/vs2015") + SET(PLATFORM_BIN_SUFFIX "bin/vs2015") + ENDIF (CMAKE_HOST_WIN32 AND NOT CMAKE_CL_64 ) + + + + find_library(FLIRSPINNAKER_SDK_LIBRARY + NAMES ${LIB_FILENAME} + PATHS "${FLIRSPINNAKER_SDK_DIR}/${PLATFORM_LIB_SUFFIX}/" NO_DEFAULT_PATH + PATH_SUFFIXES ${PLATFORM_SUFFIX}) + + find_path(FLIRSPINNAKER_SDK_BINARY + NAMES ${SDK_FILENAME} + PATHS "${FLIRSPINNAKER_SDK_DIR}/${PLATFORM_BIN_SUFFIX}/" NO_DEFAULT_PATH + PATH_SUFFIXES ${PLATFORM_SUFFIX}) + + + mark_as_advanced(FLIRSPINNAKER_SDK_LIBRARY) + mark_as_advanced(FLIRSPINNAKER_SDK_BINARY) + + set(FLIRSPINNAKER_BIN_FILE ${FLIRSPINNAKER_SDK_BINARY} "/" ${SDK_FILENAME}) + + set(FLIRSPINNAKER_SDK_VERSION "1.0") + +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(FLIRSPINNAKER_SDK + FOUND_VAR FLIRSPINNAKER_SDK_FOUND + REQUIRED_VARS FLIRSPINNAKER_SDK_DIR FLIRSPINNAKER_SDK_LIBRARY FLIRSPINNAKER_SDK_INCLUDE_DIR + VERSION_VAR FLIRSPINNAKER_SDK_VERSION +) diff --git a/Modules/FindSPECIM_SDK.cmake b/Modules/FindSPECIM_SDK.cmake new file mode 100644 index 000000000..964dfe931 --- /dev/null +++ b/Modules/FindSPECIM_SDK.cmake @@ -0,0 +1,90 @@ +############################################################################### +# Find SPECIM - LUMO SDK +# +# find_package(SPECIMSDK) +# +# Variables defined by this module: +# +# SPECIMSDK_FOUND True if SDK found +# SPECIMSDK_VERSION The version of SDK +# SPECIMSDK_INCLUDE_DIR The location(s) of SDK headers +# SPECIMSDK_LIBRARY_DIR Libraries needed to use SDK +# SPECIMSDK_BINARY_DIR Binaries needed to use SDK +# "$ENV{ProgramFiles\(x86\)}/Specim/SDKs/Lumo_Sensor_SDK" +# "C:/Program Files (x86)/Specim/SDKs/Lumo_Sensor_SDK" + +SET(SPECIM_SDK_PATH_HINTS + "$ENV{ProgramFiles\(x86\)}/Specim/SDKs/Lumo_Sensor_SDK" + ) + +find_path(SPECIM_SDK_DIR include/SI_sensor.h + PATHS ${SPECIM_SDK_PATH_HINTS} + DOC "SPECIM - LUMO Sensor SDK directory") + +if (SPECIM_SDK_DIR) + # Include directories + set(SPECIM_SDK_INCLUDE_DIR ${SPECIM_SDK_DIR}/include) + mark_as_advanced(SPECIM_SDK_INCLUDE_DIR) + + + # Libraries + SET(PLATFORM_SUFFIX "") + SET(LIB_FILENAME "SpecSensor.lib") + SET(SDK_FILENAME "SpecSensor.dll") + + IF (CMAKE_HOST_WIN32 AND CMAKE_CL_64 ) + SET(PLATFORM_LIB_SUFFIX "bin/x64") + SET(PLATFORM_BIN_SUFFIX "bin/x64") + ENDIF (CMAKE_HOST_WIN32 AND CMAKE_CL_64 ) + + IF (CMAKE_HOST_WIN32 AND NOT CMAKE_CL_64 ) + SET(PLATFORM_LIB_SUFFIX "bin/Win32") + SET(PLATFORM_BIN_SUFFIX "bin/Win32") + ENDIF (CMAKE_HOST_WIN32 AND NOT CMAKE_CL_64 ) + + + + find_library(SPECIM_SDK_LIBRARY + NAMES ${LIB_FILENAME} + PATHS "${SPECIM_SDK_DIR}/${PLATFORM_LIB_SUFFIX}/" NO_DEFAULT_PATH + PATH_SUFFIXES ${PLATFORM_SUFFIX}) + + find_path(SPECIM_SDK_BINARY + NAMES ${SDK_FILENAME} + PATHS "${SPECIM_SDK_DIR}/${PLATFORM_BIN_SUFFIX}/" NO_DEFAULT_PATH + PATH_SUFFIXES ${PLATFORM_SUFFIX}) + + IF (CMAKE_HOST_WIN32 AND CMAKE_CL_64 ) + SET(SPECIM_SDK_DLLS + ${SPECIM_SDK_BINARY}/${SDK_FILENAME} + ${SPECIM_SDK_BINARY}/grab014.dll + ${SPECIM_SDK_BINARY}/PvBase64.dll + ${SPECIM_SDK_BINARY}/PvStream64.dll + ${SPECIM_SDK_BINARY}/tbb.dll + ${SPECIM_SDK_BINARY}/PvDevice64.dll + ${SPECIM_SDK_BINARY}/tbbmalloc.dll) + ENDIF (CMAKE_HOST_WIN32 AND CMAKE_CL_64 ) + + IF (CMAKE_HOST_WIN32 AND NOT CMAKE_CL_64 ) + SET(SPECIM_SDK_DLLS + ${SPECIM_SDK_BINARY}/${SDK_FILENAME} + ${SPECIM_SDK_BINARY}/grab014.dll + ${SPECIM_SDK_BINARY}/tbb.dll + ${SPECIM_SDK_BINARY}/tbbmalloc.dll) + ENDIF (CMAKE_HOST_WIN32 AND NOT CMAKE_CL_64 ) + + mark_as_advanced(SPECIM_SDK_LIBRARY) + mark_as_advanced(SPECIM_SDK_BINARY) + + set(SPECIM_BIN_FILE ${SPECIM_SDK_BINARY} "/" ${SDK_FILENAME}) + + set(SPECIM_SDK_VERSION "1.0") + +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(SPECIM_SDK + FOUND_VAR SPECIM_SDK_FOUND + REQUIRED_VARS SPECIM_SDK_DIR SPECIM_SDK_LIBRARY SPECIM_SDK_INCLUDE_DIR + VERSION_VAR SPECIM_SDK_VERSION +) diff --git a/SuperBuild/External_PlusLib.cmake b/SuperBuild/External_PlusLib.cmake index 47f010cbe..082af0ea4 100644 --- a/SuperBuild/External_PlusLib.cmake +++ b/SuperBuild/External_PlusLib.cmake @@ -304,6 +304,28 @@ IF(PLUS_USE_DAQVIDEOSOURCE) ) ENDIF() +IF(PLUS_USE_FLIRSPINNAKER_CAM) + LIST(APPEND PLUSBUILD_ADDITIONAL_SDK_ARGS + -DFLIRSPINNAKER_SDK_INCLUDE_DIR:PATH=${FLIRSPINNAKER_SDK_INCLUDE_DIR} + -DFLIRSPINNAKER_SDK_LIBRARY:PATH=${FLIRSPINNAKER_SDK_LIBRARY} + -DFLIRSPINNAKER_SDK_BINARY:PATH=${FLIRSPINNAKER_SDK_BINARY} + -DFLIRSPINNAKER_SDK_DIR:PATH=${FLIRSPINNAKER_SDK_DIR} + ) +ENDIF() + +### PLUS_USE_DAQMMFCOMBINED_VIDEO is virtual. ARGS from DAQVideoSource and MMF_Video. +### IF(PLUS_USE_DAQMMFCOMBINED_VIDEO) +### ENDIF() + +IF(PLUS_USE_SPECIM_CAM) + LIST(APPEND PLUSBUILD_ADDITIONAL_SDK_ARGS + -DSPECIM_SDK_INCLUDE_DIR:PATH=${SPECIM_SDK_INCLUDE_DIR} + -DSPECIM_SDK_LIBRARY:PATH=${SPECIM_SDK_LIBRARY} + -DSPECIM_SDK_BINARY:PATH=${SPECIM_SDK_BINARY} + -DSPECIM_SDK_DIR:PATH=${SPECIM_SDK_DIR} + ) +ENDIF() + IF(PLUS_USE_INTELREALSENSE) LIST(APPEND PLUSBUILD_ADDITIONAL_SDK_ARGS @@ -571,6 +593,9 @@ ExternalProject_Add(PlusLib -DPLUS_USE_INFRARED_TEEV2_CAM:BOOL=${PLUS_USE_INFRARED_TEEV2_CAM} -DPLUS_USE_ULTRAVIOLET_PCOUV_CAM:BOOL=${PLUS_USE_ULTRAVIOLET_PCOUV_CAM} -DPLUS_USE_DAQVIDEOSOURCE:BOOL=${PLUS_USE_DAQVIDEOSOURCE} + -DPLUS_USE_DAQMMFCOMBINED_VIDEO:BOOL=${PLUS_USE_DAQMMFCOMBINED_VIDEO} + -DPLUS_USE_FLIRSPINNAKER_CAM:BOOL=${PLUS_USE_FLIRSPINNAKER_CAM} + -DPLUS_USE_SPECIM_CAM:BOOL=${PLUS_USE_SPECIM_CAM} -DPLUS_USE_ATRACSYS:BOOL=${PLUS_USE_ATRACSYS} -DPLUS_USE_PICOSCOPE:BOOL=${PLUS_USE_PICOSCOPE} -DPLUS_USE_WITMOTIONTRACKER:BOOL=${PLUS_USE_WITMOTIONTRACKER}