diff --git a/.cmake-format.py b/.cmake-format.py index 72b6ba7..dd77a57 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -27,13 +27,15 @@ with section("format"): # How many spaces to tab for indent tab_size = 2 - max_pargs_hwrap = 8 + # If an argument group contains more than this many sub-groups (parg or kwarg + # groups) then force it to a vertical layout. + max_subgroups_hwrap = 2 - ## If true, lines are indented using tab characters (utf-8 0x09) instead of - ## space characters (utf-8 0x20). In cases where the layout would - ## require a fractional tab character, the behavior of the fractional - ## indentation is governed by - #use_tabchars = False + # If a positional argument group contains more than this many arguments, then + # force it to a vertical layout. + max_pargs_hwrap = 6 + + dangle_parens = True # Format command names consistently as 'lower' or 'upper' case command_case = 'upper' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a8ab09a..c120258 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,7 +21,7 @@ repos: - id: cmake-lint - repo: https://github.com/pocc/pre-commit-hooks - rev: python + rev: v1.1.1 hooks: - id: clang-format args: [--style=file, -i] diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ec21f9..f7b9a9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,10 +18,12 @@ INCLUDE(GNUInstallDirs) SET(PROJECT_NAME "calyp" - CACHE INTERNAL "" FORCE) + CACHE INTERNAL "" FORCE +) SET(PROJECT_LIBRARY "Calyp" - CACHE INTERNAL "" FORCE) + CACHE INTERNAL "" FORCE +) PROJECT(${PROJECT_NAME}) SET(CALYP_VERSION_MAJOR "1") @@ -29,7 +31,8 @@ SET(CALYP_VERSION_MINOR "1") SET(CALYP_VERSION_PATCH "0") SET(CALYP_VERSION "${CALYP_VERSION_MAJOR}.${CALYP_VERSION_MINOR}.${CALYP_VERSION_PATCH}" - CACHE INTERNAL "" FORCE) + CACHE INTERNAL "" FORCE +) # #################################################################################################################################################### # Variables @@ -65,13 +68,15 @@ IF(NOT RELEASE_BUILD AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) ${GIT_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --tags" OUTPUT_VARIABLE CALYP_GIT_REVISION - RETURN_VALUE TAG_RESULT) + RETURN_VALUE TAG_RESULT + ) # git describe --tags failed; maybe the repository was checked with depth=1. IF(NOT ${TAG_RESULT} EQUAL 0) EXEC_PROGRAM( ${GIT_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --always" - OUTPUT_VARIABLE CALYP_GIT_REVISION) + OUTPUT_VARIABLE CALYP_GIT_REVISION + ) ENDIF() MESSAGE(STATUS "Calyp Git revision: ${CALYP_GIT_REVISION}") SET(CALYP_VERSION_STRING "${CALYP_VERSION} (rev. ${CALYP_GIT_REVISION})") @@ -82,7 +87,8 @@ ENDIF() SET(UPDATE_CHANNEL "stable" - CACHE STRING "Update channel") + CACHE STRING "Update channel" +) # CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/CalypUpdate.xml.in ${CMAKE_CURRENT_BINARY_DIR}/CalypUpdate-${UPDATE_CHANNEL}.xml ) # #################################################################################################################################################### @@ -97,7 +103,8 @@ SET_PACKAGE_PROPERTIES( Doxygen PROPERTIES URL "http://www.doxygen.org/" DESCRIPTION "Doxygen" - TYPE OPTIONAL) + TYPE OPTIONAL +) IF(BUILD_TESTS) FIND_PACKAGE(GTest) @@ -108,7 +115,8 @@ IF(BUILD_TESTS) ENDIF() SET(CALYP_TEST_DATA_DIR "CALYP_TEST_DATA_DIR" - CACHE PATH "Location of video information for testing") + CACHE PATH "Location of video information for testing" + ) ENDIF() OPTION(USE_OPENCV "Add OpenCV support" ON) @@ -133,7 +141,8 @@ SET_PACKAGE_PROPERTIES( OpenCV PROPERTIES URL "http://opencv.willowgarage.com" DESCRIPTION "OpenCV library support in CalypFrame" - TYPE OPTIONAL) + TYPE OPTIONAL +) OPTION(USE_FFMPEG "Add FFMPEG support" ON) IF(USE_FFMPEG) @@ -148,7 +157,8 @@ SET_PACKAGE_PROPERTIES( FFmpeg PROPERTIES URL "http://ffmpeg.org/" DESCRIPTION "Libav library support in CalypStream" - TYPE OPTIONAL) + TYPE OPTIONAL +) IF(WIN32) SET(USE_STATIC ON) @@ -165,7 +175,8 @@ INCLUDE(FeatureSummary) # must go before the project command SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" - CACHE STRING "Configs" FORCE) + CACHE STRING "Configs" FORCE +) IF(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8") SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES}) ENDIF() diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index fcaa70a..48ac782 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -2,8 +2,10 @@ # CMakeLists for calyp app component # -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/external ${CMAKE_CURRENT_SOURCE_DIR}/dialog - ${CMAKE_CURRENT_SOURCE_DIR}/docks ${CMAKE_CURRENT_SOURCE_DIR}/widgets) +INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/external ${CMAKE_CURRENT_SOURCE_DIR}/dialog ${CMAKE_CURRENT_SOURCE_DIR}/docks + ${CMAKE_CURRENT_SOURCE_DIR}/widgets +) OPTION(USE_QTDBUS "Build with QtDBus" ON) OPTION(USE_FERVOR "Add Fervor support" OFF) @@ -19,12 +21,14 @@ IF(USE_QTDBUS) SET_PACKAGE_PROPERTIES( Qt5DBus PROPERTIES DESCRIPTION "Support for Qt5 DBus messages between instances" - TYPE OPTIONAL) + TYPE OPTIONAL + ) IF(${Qt5DBus_FOUND}) SET(USE_QTDBUS ${Qt5DBus_FOUND}) # TODO: fix this stupid variable SET(USE_QTDBUS ${Qt5DBus_FOUND} - PARENT_SCOPE) + PARENT_SCOPE + ) LIST(APPEND QT_LINKER_LIBS Qt5::DBus) LIST(APPEND QT_MODULES DBus) ENDIF() @@ -63,7 +67,8 @@ SET(Calyp_App_SRCS # Docks docks/FramePropertiesDock.cpp docks/ModuleHandleDock.cpp - docks/QualityMeasurementSidebar.cpp) + docks/QualityMeasurementSidebar.cpp +) IF(USE_QTDBUS) LIST(APPEND Calyp_App_SRCS DBusAppAdaptor.cpp) @@ -109,7 +114,8 @@ SET_PACKAGE_PROPERTIES( Fervor PROPERTIES URL "https://github.com/pypt/fervor" DESCRIPTION "Fervor lib includes check for updates feature" - TYPE OPTIONAL) + TYPE OPTIONAL +) ADD_FEATURE_INFO(Fervor USE_FERVOR "Fervor lib includes check for updates feature.") QT5_WRAP_UI(Calyp_App_UI_Wrap ${Calyp_App_UI}) @@ -126,13 +132,15 @@ IF(WIN32) OUTPUT ${WINDOWS_RES_FILE} COMMAND rc.exe /fo ${WINDOWS_RES_FILE} ${PROJECT_NAME}.rc WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources - COMMENT "Add icon on windows platform") + COMMENT "Add icon on windows platform" + ) ELSE() ADD_CUSTOM_COMMAND( OUTPUT ${WINDOWS_RES_FILE} COMMAND windres.exe ${PROJECT_NAME}.rc ${WINDOWS_RES_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources - COMMENT "Add icon on windows platform") + COMMENT "Add icon on windows platform" + ) ENDIF() ENDIF() diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake index 30a0de0..c9846b4 100644 --- a/cmake/FindFFmpeg.cmake +++ b/cmake/FindFFmpeg.cmake @@ -53,19 +53,23 @@ MACRO(find_component _component _pkgconfig _library _header) FIND_PATH( ${_component}_INCLUDE_DIRS ${_header} HINTS ${PC_LIB${_component}_INCLUDEDIR} ${PC_LIB${_component}_INCLUDE_DIRS} - PATH_SUFFIXES ffmpeg) + PATH_SUFFIXES ffmpeg + ) FIND_LIBRARY( ${_component}_LIBRARIES NAMES ${_library} - HINTS ${PC_LIB${_component}_LIBDIR} ${PC_LIB${_component}_LIBRARY_DIRS}) + HINTS ${PC_LIB${_component}_LIBDIR} ${PC_LIB${_component}_LIBRARY_DIRS} + ) SET(${_component}_DEFINITIONS ${PC_${_component}_CFLAGS_OTHER} - CACHE STRING "The ${_component} CFLAGS.") + CACHE STRING "The ${_component} CFLAGS." + ) SET(${_component}_VERSION ${PC_${_component}_VERSION} - CACHE STRING "The ${_component} version number.") + CACHE STRING "The ${_component} version number." + ) SET_COMPONENT_FOUND(${_component}) @@ -104,13 +108,16 @@ IF(NOT FFMPEG_LIBRARIES) # cache the vars. SET(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} - CACHE STRING "The FFmpeg include directories." FORCE) + CACHE STRING "The FFmpeg include directories." FORCE + ) SET(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} - CACHE STRING "The FFmpeg libraries." FORCE) + CACHE STRING "The FFmpeg libraries." FORCE + ) SET(FFMPEG_DEFINITIONS ${FFMPEG_DEFINITIONS} - CACHE STRING "The FFmpeg cflags." FORCE) + CACHE STRING "The FFmpeg cflags." FORCE + ) MARK_AS_ADVANCED(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_DEFINITIONS) diff --git a/cmake/ModulesFct.cmake b/cmake/ModulesFct.cmake index 3d0c928..958b1ac 100644 --- a/cmake/ModulesFct.cmake +++ b/cmake/ModulesFct.cmake @@ -9,13 +9,16 @@ MACRO(ADD_MODULE name file) LIST(APPEND MODULES_LIST_FILES ${file}) SET(Calyp_Mod_SRCS "${Calyp_Mod_SRCS}" - PARENT_SCOPE) + PARENT_SCOPE + ) SET(MODULES_LIST_NAME "${MODULES_LIST_NAME}" - PARENT_SCOPE) + PARENT_SCOPE + ) SET(MODULES_LIST_FILES "${MODULES_LIST_FILES}" - PARENT_SCOPE) + PARENT_SCOPE + ) ENDIF() UNSET(__modulename) ENDMACRO() @@ -50,7 +53,8 @@ ENDMACRO() # Create header MACRO(CREATE_MODULE_MACROS) FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "// This files add the header files of each module\n" - "#ifndef __MODULESLISTHEADER_H__\n#define __MODULESLISTHEADER_H__\n") + "#ifndef __MODULESLISTHEADER_H__\n#define __MODULESLISTHEADER_H__\n" + ) FOREACH(module ${MODULES_LIST_FILES}) FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#include \"${module}.h\"\n") ENDFOREACH(module ${MODULES_LIST_FILES}) diff --git a/cmake/Win32.cmake b/cmake/Win32.cmake index 877c788..11e43e9 100644 --- a/cmake/Win32.cmake +++ b/cmake/Win32.cmake @@ -11,23 +11,28 @@ ENDFOREACH(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) SET(MSVC_DLL_DIR "MSVC_DLL_DIR" - CACHE PATH "Where to find MSVC dlls") + CACHE PATH "Where to find MSVC dlls" +) # INSTALL(FILES ${MSVC_DLL_DIR}/msvcr120.dll DESTINATION bin ) INSTALL(FILES ${MSVC_DLL_DIR}/msvcp120.dll DESTINATION bin ) SET(QT_DIR "QT-Dir" - CACHE PATH "Where to find QT Lib on Windows") + CACHE PATH "Where to find QT Lib on Windows" +) SET(QT_ICU_VERSION "" - CACHE STRING "Qt ICU version of dll's") + CACHE STRING "Qt ICU version of dll's" +) SET(QT_DLL_POSTFIX "" - CACHE STRING "Postfix to dll's name for debug") + CACHE STRING "Postfix to dll's name for debug" +) SET(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} ${QT_DIR}") SET(WINDLLIB "Dl-location" - CACHE PATH "Where to find DL Lib on Windows") + CACHE PATH "Where to find DL Lib on Windows" +) IF(NOT USE_QT4) INSTALL(FILES ${QT_DIR}/bin/Qt5Core${QT_DLL_POSTFIX}.dll DESTINATION bin) @@ -56,10 +61,12 @@ ENDIF() IF(USE_OPENCV) SET(OpenCV_DLL_DIR "${OpenCV_DIR}/bin" - CACHE PATH "Where to find OpenCV dlls") + CACHE PATH "Where to find OpenCV dlls" + ) SET(OpenCV_INSTALL_MODULES ${OPENCV_MODULES} - CACHE STRING "List of OpenCV modules") + CACHE STRING "List of OpenCV modules" + ) FOREACH(opencv_module IN LISTS OpenCV_INSTALL_MODULES) INSTALL(FILES ${OpenCV_DLL_DIR}/opencv_${opencv_module}${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.dll DESTINATION bin) ENDFOREACH() @@ -68,7 +75,8 @@ ENDIF() IF(USE_FFMPEG) SET(FFMPEG_DIR "FFmpeg-Dir" - CACHE PATH "Where to find FFmpeg Lib on Windows") + CACHE PATH "Where to find FFmpeg Lib on Windows" + ) INSTALL(FILES ${FFMPEG_DIR}/bin/avcodec-${AVCODEC_VERSION}.dll DESTINATION bin) INSTALL(FILES ${FFMPEG_DIR}/bin/avformat-${AVFORMAT_VERSION}.dll DESTINATION bin) INSTALL(FILES ${FFMPEG_DIR}/bin/avutil-${AVUTIL_VERSION}.dll DESTINATION bin) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 7572f35..9dec7f3 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -6,15 +6,9 @@ INCLUDE(GNUInstallDirs) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -set(Calyp_Lib_Frame_SRCS - CalypPixel.cpp - PixelFormats.h - PixelFormats.cpp - CalypFrame.h - CalypFrame.cpp -) +SET(Calyp_Lib_Frame_SRCS CalypPixel.cpp PixelFormats.h PixelFormats.cpp CalypFrame.h CalypFrame.cpp) -set(Calyp_Lib_Stream_SRCS +SET(Calyp_Lib_Stream_SRCS CalypStream.h CalypStream.cpp CalypStreamHandlerIf.h @@ -24,17 +18,11 @@ set(Calyp_Lib_Stream_SRCS StreamHandlerPortableMap.cpp ) -set(Calyp_Lib_OptionParser_SRCS - CalypOptions.h - CalypOptions.cpp -) +SET(Calyp_Lib_OptionParser_SRCS CalypOptions.h CalypOptions.cpp) -set(Calyp_Lib_Modules_SRCS - CalypOptions.h - CalypOptions.cpp -) +SET(Calyp_Lib_Modules_SRCS CalypOptions.h CalypOptions.cpp) -set(Calyp_Lib_SRCS +SET(Calyp_Lib_SRCS LibMemory.h CalypLib.h CalypDefs.h @@ -88,7 +76,8 @@ IF(NOT USE_STATIC) TARGETS ${PROJECT_LIBRARY} RUNTIME DESTINATION bin LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ) INSTALL(FILES ${Calyp_Lib_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/CalypConfig.cmake DESTINATION share/calyp) ENDIF() diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 08ae337..c8b112a 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -5,7 +5,8 @@ OPTION(CALYP_THREADED_MODULES "Use threads for modules" OFF) SET(CALYP_EXTRA_MODULES_DIR "CALYP_EXTRA_MODULES_DIR" - CACHE PATH "Location of extra Calyp modules") + CACHE PATH "Location of extra Calyp modules" +) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) @@ -35,13 +36,37 @@ ADD_MODULE(WeightedPSNR "WeightedPSNR") ADD_MODULE(HEVCIntraPrediction "HEVCIntraPrediction") ADD_MODULE(OptimiseDisplay "OptimiseDisplay") -ADD_MODULE_USE_OPENCV(MeasureOpticalFlowDualTVL1 "MeasureOpticalFlowDualTVL1" VERSION 2.4.13.0 MODULES video optflow) +ADD_MODULE_USE_OPENCV( + MeasureOpticalFlowDualTVL1 + "MeasureOpticalFlowDualTVL1" + VERSION + 2.4.13.0 + MODULES + video + optflow +) ADD_MODULE_USE_OPENCV(DisparityStereoBM "DisparityStereoBM" VERSION 2.4.13.0 MODULES calib3d) ADD_MODULE_USE_OPENCV(DisparityStereoSGBM "DisparityStereoSGBM" VERSION 2.4.13.0 MODULES calib3d) ADD_MODULE_USE_OPENCV(OpticalFlowDualTVL1 "OpticalFlow" VERSION 3.1.0 MODULES optflow) ADD_MODULE_USE_OPENCV(OpticalFlowSparseToDense "OpticalFlow" VERSION 3.1.0 MODULES optflow) -ADD_MODULE_USE_OPENCV(OpticalFlowFarneback "OpticalFlow" VERSION 3.1.0 MODULES video optflow) -ADD_MODULE_USE_OPENCV(OpticalDeepFlow "OpticalFlow" VERSION 3.1.0 MODULES video optflow) +ADD_MODULE_USE_OPENCV( + OpticalFlowFarneback + "OpticalFlow" + VERSION + 3.1.0 + MODULES + video + optflow +) +ADD_MODULE_USE_OPENCV( + OpticalDeepFlow + "OpticalFlow" + VERSION + 3.1.0 + MODULES + video + optflow +) ADD_MODULE_USE_OPENCV(SaliencyDetectionSpectral "SaliencyDetection" VERSION 3.3.0 MODULES saliency) ADD_MODULE_USE_OPENCV(SaliencyDetectionFineGrained "SaliencyDetection" VERSION 3.3.0 MODULES saliency) ADD_MODULE_USE_OPENCV(SaliencyDetectionBinWangApr2014 "SaliencyDetection" VERSION 3.3.0 MODULES saliency)