@@ -40,6 +40,7 @@ SET ( DEFAULT_BONJOUR ON )
4040SET ( DEFAULT_MQTT ON )
4141SET ( DEFAULT_STATIC_QT_PLUGINS OFF )
4242SET ( DEFAULT_PRECOMPILED_HEADERS ON )
43+ SET ( DEFAULT_FTDIDEV ON )
4344SET ( DEFAULT_XZ ON )
4445SET ( DEFAULT_POWER_MANAGEMENT ON )
4546
@@ -340,6 +341,9 @@ colorMe("ENABLE_SPIDEV = " ${ENABLE_SPIDEV})
340341option (ENABLE_WS281XPWM "Enable the WS281x-PWM device" ${DEFAULT_WS281XPWM} )
341342colorMe ("ENABLE_WS281XPWM = " ${ENABLE_WS281XPWM} )
342343
344+ option (ENABLE_FTDIDEV "Enable the FTDI device" ${DEFAULT_FTDIDEV} )
345+ colorMe ("ENABLE_FTDIDEV = " ${ENABLE_FTDIDEV} )
346+
343347message ( STATUS "\n ${CyanColor} SOFTWARE GRABBERS${ColorReset} " )
344348
345349option (ENABLE_DX "Enable Windows DirectX 11 system grabber" ${DEFAULT_DX} )
@@ -546,50 +550,88 @@ endif()
546550
547551add_definitions (${QT_DEFINITIONS} )
548552
549- # libjpegturbo
550- if (WIN32 )
551- if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /external/windows)
552- file (MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /external/windows )
553+ # libjpegturbo and ftdi libraries
554+
555+ if ( WIN32 AND (ENABLE_MF OR ENABLE_FTDIDEV))
556+ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows)
557+ file (MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows )
553558 endif ()
554559
555- if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /external/windows/libs4windows.zip OR
556- NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /external/windows/libjpeg-turbo_x64-windows)
557- message ( STATUS "Downloading libraries for HyperHDR (Windows)" )
558- file (DOWNLOAD https://github.com/awawa-dev/HyperHDR.libs.provider/releases/download/2023.08.07/libs4windows.zip
559- ${CMAKE_CURRENT_SOURCE_DIR} /external/windows/libs4windows.zip
560- STATUS WIN_LIBS_DOWNLOAD_STATUS
561- EXPECTED_HASH SHA256=2a0fc14eaad35d8cc36b262c8dcb501d1fac3a72d7bedcca51b71b60395c6c3f )
560+ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libs4windows.zip OR
561+ NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libjpeg-turbo_x64-windows OR
562+ NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libftdi1_x64-windows)
563+ message ( STATUS "Downloading libjpegturbo and ftdi libraries" )
564+ file (DOWNLOAD https://github.com/awawa-dev/HyperHDR.libs.provider/releases/download/2023.04.10/libs4windows.zip
565+ ${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libs4windows.zip
566+ STATUS WIN_LIBS_DOWNLOAD_STATUS
567+ EXPECTED_HASH MD5=46d91068c9a97d79f74e899dbbeb027b )
562568 list (GET WIN_LIBS_DOWNLOAD_STATUS 0 WIN_LIBS_DOWNLOAD_STATUS_CODE)
563569 if (WIN_LIBS_DOWNLOAD_STATUS_CODE AND NOT WIN_LIBS_DOWNLOAD_STATUS_CODE EQUAL 0)
564- file ( REMOVE ${CMAKE_CURRENT_SOURCE_DIR} /external /windows/libs4windows.zip )
565- message ( FATAL_ERROR "Could not download libraries needed by HyperHDR (Windows) " )
570+ file ( REMOVE ${CMAKE_CURRENT_SOURCE_DIR} /dependencies /windows/libs4windows.zip )
571+ message ( FATAL_ERROR "Could not download libjpegturbo and ftdi libraries " )
566572 endif ()
567573 endif ()
568574
569575 execute_process (
570- COMMAND ${SEVENZIP_BIN} x ${CMAKE_CURRENT_SOURCE_DIR} /external /windows/libs4windows.zip -o${CMAKE_CURRENT_SOURCE_DIR}/external /windows/ -aoa -y
576+ COMMAND ${SEVENZIP_BIN} x ${CMAKE_CURRENT_SOURCE_DIR} /dependencies /windows/libs4windows.zip -o${CMAKE_CURRENT_SOURCE_DIR}/dependencies /windows/ -aoa -y
571577 RESULT_VARIABLE STATUS_EXTRACT
572578 OUTPUT_VARIABLE OUTPUT1
573579 )
574580
575581 if (STATUS_EXTRACT AND NOT STATUS_EXTRACT EQUAL 0)
576- message ( FATAL_ERROR "Could not extract libraries for HyperHDR ( Windows) " )
582+ message ( FATAL_ERROR "Could not extract libjpegturbo and ftdi Windows libraries " )
577583 else ()
578- message ( STATUS "Package of libraries for HyperHDR extracted (Windows) " )
584+ message ( STATUS "Package of libjpegturbo and ftdi libraries extracted " )
579585 endif ()
580586
581587 set (TURBOJPEG_FOUND 1)
582- set (TURBOJPEG_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /external/windows/libjpeg-turbo_x64-windows/bin" )
583- set (TURBOJPEG_LINK_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR} /external/windows/libjpeg-turbo_x64-windows/lib/turbojpeg.lib" )
584- set (TURBOJPEG_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /external/windows/libjpeg-turbo_x64-windows/include" )
585- else ()
588+ set (TURBOJPEG_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libjpeg-turbo_x64-windows/bin" )
589+ set (TURBOJPEG_LINK_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libjpeg-turbo_x64-windows/lib/turbojpeg.lib" )
590+ set (TURBOJPEG_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libjpeg-turbo_x64-windows/include" )
591+
592+ set (LIB_FTDI_FOUND 1)
593+ set (LIB_FTDI_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libftdi1_x64-windows/bin" )
594+ set (LIB_FTDI_LINK_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libftdi1_x64-windows/lib/ftdi1.lib" )
595+ set (LIB_FTDI_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libftdi1_x64-windows/include/libftdi1" )
596+
597+ set (LIB_USB_FOUND 1)
598+ set (LIB_USB_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libusb_x64-windows/bin" )
599+ set (LIB_USB_LINK_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libusb_x64-windows/lib/libusb-1.0.lib" )
600+ set (LIB_USB_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libusb_x64-windows/include/libusb-1.0" )
601+
602+ set (LIB_CONFUSE_LIBRARY_FOUND 1)
603+ set (LIB_CONFUSE_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR} /dependencies/windows/libconfuse_x64-windows/bin" )
604+ endif ()
605+
606+ if ( NOT WIN32 AND ENABLE_FTDIDEV )
607+ FIND_PACKAGE (PkgConfig REQUIRED )
608+ pkg_check_modules (LIB_FTDI REQUIRED libftdi1 )
609+ pkg_check_modules (LIB_USB REQUIRED libusb-1.0 )
610+ endif ()
611+
612+ if ( ENABLE_V4L2 )
586613 FIND_PACKAGE (PkgConfig REQUIRED )
587614 pkg_check_modules (TURBOJPEG REQUIRED libturbojpeg>=2.0 )
588- endif ()
615+ endif ()
616+
617+ if ( ENABLE_FTDIDEV )
618+ if ( LIB_CONFUSE_LIBRARY_FOUND )
619+ message ( STATUS "LIB_CONFUSE_LIBRARY_DIRS=${LIB_CONFUSE_LIBRARY_DIRS} " )
620+ endif ()
589621
590- message ( STATUS "TURBOJPEG_LIBRARY_DIRS=${TURBOJPEG_LIBRARY_DIRS} " )
591- message ( STATUS "TURBOJPEG_LINK_LIBRARIES=${TURBOJPEG_LINK_LIBRARIES} " )
592- message ( STATUS "TURBOJPEG_INCLUDE_DIRS=${TURBOJPEG_INCLUDE_DIRS} " )
622+ message ( STATUS "LIB_USB_LIBRARY_DIRS=${LIB_USB_LIBRARY_DIRS} " )
623+ message ( STATUS "LIB_USB_LINK_LIBRARIES=${LIB_USB_LINK_LIBRARIES} " )
624+ message ( STATUS "LIB_USB_INCLUDE_DIRS=${LIB_USB_INCLUDE_DIRS} " )
625+
626+ message ( STATUS "LIB_FTDI_LIBRARY_DIRS=${LIB_FTDI_LIBRARY_DIRS} " )
627+ message ( STATUS "LIB_FTDI_LINK_LIBRARIES=${LIB_FTDI_LINK_LIBRARIES} " )
628+ message ( STATUS "LIB_FTDI_INCLUDE_DIRS=${LIB_FTDI_INCLUDE_DIRS} " )
629+ endif ()
630+
631+ if ( ENABLE_MF OR ENABLE_V4L2 )
632+ message ( STATUS "TURBOJPEG_LIBRARY_DIRS=${TURBOJPEG_LIBRARY_DIRS} " )
633+ message ( STATUS "TURBOJPEG_LINK_LIBRARIES=${TURBOJPEG_LINK_LIBRARIES} " )
634+ message ( STATUS "TURBOJPEG_INCLUDE_DIRS=${TURBOJPEG_INCLUDE_DIRS} " )
593635
594636# Embedded QT plugins
595637if (USE_STATIC_QT_PLUGINS)
@@ -633,7 +675,7 @@ include (${CMAKE_CURRENT_SOURCE_DIR}/cmake/packages.cmake)
633675
634676# external targets
635677if (WIN32 AND TARGET apidoc AND TARGET flatbuffers AND TARGET flatc AND TARGET mbedcrypto AND TARGET qmqtt AND TARGET liblzma)
636- set_target_properties (qmqtt apidoc flatbuffers flatc lib mbedcrypto mbedtls mbedx509 resources uninstall liblzma PROPERTIES FOLDER ExternalLibsTargets )
678+ set_target_properties (qmqtt apidoc flatbuffers flatc lib mbedcrypto mbedtls mbedx509 resources uninstall liblzma PROPERTIES FOLDER ExternalLibsTargets )
637679else ()
638680 set_target_properties (resources uninstall PROPERTIES FOLDER ExternalLibsTargets )
639681endif ()
0 commit comments