|
| 1 | +cmake_minimum_required(VERSION 3.16) |
| 2 | +project(cvcomposer VERSION 1.0 LANGUAGES CXX) |
| 3 | + |
| 4 | +set(CMAKE_INCLUDE_CURRENT_DIR ON) |
| 5 | +set(CMAKE_AUTOUIC ON) |
| 6 | + |
| 7 | +find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core) |
| 8 | +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Gui Widgets Xml) |
| 9 | + |
| 10 | +if(DEFINED ENV{GITHUB_ACTIONS} AND DEFINED ENV{GITHUB_WORKSPACE}) |
| 11 | + set(ARTIFACTS_DIR "$ENV{GITHUB_WORKSPACE}/artifacts") |
| 12 | + if(CMAKE_SYSTEM_NAME MATCHES "Windows") |
| 13 | + set(OpenCV_DIR "${ARTIFACTS_DIR}/opencv/$ENV{opencv_tag}/windows-x64/x64/vc17/lib/") |
| 14 | + elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") |
| 15 | + set(OpenCV_DIR "${ARTIFACTS_DIR}/opencv/$ENV{opencv_tag}/linux-x64/lib/cmake/opencv4") |
| 16 | + elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") |
| 17 | + set(OpenCV_DIR "${ARTIFACTS_DIR}/opencv/$ENV{opencv_tag}/mac-x64/lib/cmake/opencv4") |
| 18 | + endif() |
| 19 | + find_package(OpenCV REQUIRED) |
| 20 | +endif() |
| 21 | +find_package(OpenCV REQUIRED) |
| 22 | + |
| 23 | +qt_standard_project_setup() |
| 24 | + |
| 25 | +qt_add_executable(cvcomposer WIN32 |
| 26 | + execution/composerexecutor.cpp execution/composerexecutor.h |
| 27 | + execution/composerscheduler.cpp execution/composerscheduler.h |
| 28 | + execution/executorsettings.h |
| 29 | + global/cvconstants.h |
| 30 | + global/cvutils.cpp global/cvutils.h |
| 31 | + global/parser.cpp global/parser.h |
| 32 | + global/properties.cpp global/properties.h |
| 33 | + global/threestatebool.h |
| 34 | + global/utils.h |
| 35 | + gui/advancedimageviewer.cpp gui/advancedimageviewer.h |
| 36 | + gui/command/commandid.h |
| 37 | + gui/command/createnodecommand.cpp gui/command/createnodecommand.h |
| 38 | + gui/command/editconnectioncommand.cpp gui/command/editconnectioncommand.h |
| 39 | + gui/command/editvaluecommand.cpp gui/command/editvaluecommand.h |
| 40 | + gui/command/movenodecommand.cpp gui/command/movenodecommand.h |
| 41 | + gui/command/removenodecommand.cpp gui/command/removenodecommand.h |
| 42 | + gui/composerscene.cpp gui/composerscene.h |
| 43 | + gui/composerwidget.cpp gui/composerwidget.h |
| 44 | + gui/connectionitem.cpp gui/connectionitem.h |
| 45 | + gui/customitems.h |
| 46 | + gui/editsettingsdialog.cpp gui/editsettingsdialog.h gui/editsettingsdialog.ui |
| 47 | + gui/errordisplaydialog.cpp gui/errordisplaydialog.h gui/errordisplaydialog.ui |
| 48 | + gui/genericnodeitem.cpp gui/genericnodeitem.h |
| 49 | + gui/genericnodewidget.cpp gui/genericnodewidget.h |
| 50 | + gui/interactivegraphicsview.cpp gui/interactivegraphicsview.h |
| 51 | + gui/mainwidget.cpp gui/mainwidget.h gui/mainwidget.ui |
| 52 | + gui/plugitem.cpp gui/plugitem.h |
| 53 | + gui/plugtypeshelpdialog.cpp gui/plugtypeshelpdialog.h gui/plugtypeshelpdialog.ui |
| 54 | + gui/processorsitemmodel.cpp gui/processorsitemmodel.h |
| 55 | + gui/processorsmodelfilter.cpp gui/processorsmodelfilter.h |
| 56 | + main.cpp |
| 57 | + model/circle.h |
| 58 | + model/composermodel.cpp model/composermodel.h |
| 59 | + model/connection.cpp model/connection.h |
| 60 | + model/contour.h |
| 61 | + model/ellipse.h |
| 62 | + model/line.h |
| 63 | + model/node.cpp model/node.h |
| 64 | + model/plug.cpp model/plug.h |
| 65 | + model/plugdefinition.h |
| 66 | + model/plugtype.cpp model/plugtype.h |
| 67 | + model/segment.h |
| 68 | + model/triangle.h |
| 69 | + plugwidget/abstractplugwidget.cpp plugwidget/abstractplugwidget.h |
| 70 | + plugwidget/booleanwidget.cpp plugwidget/booleanwidget.h |
| 71 | + plugwidget/colorwidget.cpp plugwidget/colorwidget.h |
| 72 | + plugwidget/dataviewerwidget.cpp plugwidget/dataviewerwidget.h |
| 73 | + plugwidget/doubleitemdelegate.cpp plugwidget/doubleitemdelegate.h |
| 74 | + plugwidget/doublewidget.cpp plugwidget/doublewidget.h |
| 75 | + plugwidget/enumerationwidget.cpp plugwidget/enumerationwidget.h |
| 76 | + plugwidget/imageviewerdockwidget.cpp plugwidget/imageviewerdockwidget.h plugwidget/imageviewerdockwidget.ui |
| 77 | + plugwidget/imageviewerwidget.cpp plugwidget/imageviewerwidget.h |
| 78 | + plugwidget/kerneldefinitionwidget.cpp plugwidget/kerneldefinitionwidget.h |
| 79 | + plugwidget/pathwidget.cpp plugwidget/pathwidget.h |
| 80 | + plugwidget/pointwidget.cpp plugwidget/pointwidget.h |
| 81 | + plugwidget/sizewidget.cpp plugwidget/sizewidget.h |
| 82 | + plugwidget/stringwidget.cpp plugwidget/stringwidget.h |
| 83 | + processor/abstractprocessor.cpp processor/abstractprocessor.h |
| 84 | + processor/analyzer/discretefouriertransformprocessor.cpp processor/analyzer/discretefouriertransformprocessor.h |
| 85 | + processor/analyzer/findcontoursprocessor.cpp processor/analyzer/findcontoursprocessor.h |
| 86 | + processor/analyzer/haarcascadeprocessor.cpp processor/analyzer/haarcascadeprocessor.h |
| 87 | + processor/analyzer/mixtureofgaussian2processor.cpp processor/analyzer/mixtureofgaussian2processor.h |
| 88 | + processor/data/applycolormapprocessor.cpp processor/data/applycolormapprocessor.h |
| 89 | + processor/data/countlistprocessor.cpp processor/data/countlistprocessor.h |
| 90 | + processor/data/kernelprocessor.cpp processor/data/kernelprocessor.h |
| 91 | + processor/data/splitchannelsprocessor.cpp processor/data/splitchannelsprocessor.h |
| 92 | + processor/data/sublistprocessor.cpp processor/data/sublistprocessor.h |
| 93 | + processor/filter/absolutedifferenceprocessor.cpp processor/filter/absolutedifferenceprocessor.h |
| 94 | + processor/filter/adaptativethresholdprocessor.cpp processor/filter/adaptativethresholdprocessor.h |
| 95 | + processor/filter/addweightedprocessor.cpp processor/filter/addweightedprocessor.h |
| 96 | + processor/filter/applyroiprocessor.cpp processor/filter/applyroiprocessor.h |
| 97 | + processor/filter/bilateralfilterprocessor.cpp processor/filter/bilateralfilterprocessor.h |
| 98 | + processor/filter/blurprocessor.cpp processor/filter/blurprocessor.h |
| 99 | + processor/filter/cannyprocessor.cpp processor/filter/cannyprocessor.h |
| 100 | + processor/filter/convertcolorprocessor.cpp processor/filter/convertcolorprocessor.h |
| 101 | + processor/filter/converttoprocessor.cpp processor/filter/converttoprocessor.h |
| 102 | + processor/filter/customfilterprocessor.cpp processor/filter/customfilterprocessor.h |
| 103 | + processor/filter/floodfillprocessor.cpp processor/filter/floodfillprocessor.h |
| 104 | + processor/filter/gaussianblurprocessor.cpp processor/filter/gaussianblurprocessor.h |
| 105 | + processor/filter/inrangeprocessor.cpp processor/filter/inrangeprocessor.h |
| 106 | + processor/filter/laplacianprocessor.cpp processor/filter/laplacianprocessor.h |
| 107 | + processor/filter/medianblurprocessor.cpp processor/filter/medianblurprocessor.h |
| 108 | + processor/filter/morphologytransformationprocessor.cpp processor/filter/morphologytransformationprocessor.h |
| 109 | + processor/filter/sobelprocessor.cpp processor/filter/sobelprocessor.h |
| 110 | + processor/filter/thresholdprocessor.cpp processor/filter/thresholdprocessor.h |
| 111 | + processor/geometry/makeborderprocessor.cpp processor/geometry/makeborderprocessor.h |
| 112 | + processor/geometry/pyramidprocessor.cpp processor/geometry/pyramidprocessor.h |
| 113 | + processor/geometry/subimageprocessor.cpp processor/geometry/subimageprocessor.h |
| 114 | + processor/helpmessage.h |
| 115 | + processor/helpmessagetype.h |
| 116 | + processor/input/cameraprocessor.cpp processor/input/cameraprocessor.h |
| 117 | + processor/input/imagefromfileprocessor.cpp processor/input/imagefromfileprocessor.h |
| 118 | + processor/input/imagesfromfolderprocessor.cpp processor/input/imagesfromfolderprocessor.h |
| 119 | + processor/math/averageprocessor.cpp processor/math/averageprocessor.h |
| 120 | + processor/math/countnonzeroprocessor.cpp processor/math/countnonzeroprocessor.h |
| 121 | + processor/math/meanprocessor.cpp processor/math/meanprocessor.h |
| 122 | + processor/math/operatorprocessor.cpp processor/math/operatorprocessor.h |
| 123 | + processor/processorlisttype.h |
| 124 | + processor/processorsfactory.cpp processor/processorsfactory.h |
| 125 | + processor/shape/boundingrectprocessor.cpp processor/shape/boundingrectprocessor.h |
| 126 | + processor/shape/circleprocessor.cpp processor/shape/circleprocessor.h |
| 127 | + processor/shape/convexhullprocessor.cpp processor/shape/convexhullprocessor.h |
| 128 | + processor/shape/drawshapeprocessor.cpp processor/shape/drawshapeprocessor.h |
| 129 | + processor/shape/drawtextprocessor.cpp processor/shape/drawtextprocessor.h |
| 130 | + processor/shape/ellipseprocessor.cpp processor/shape/ellipseprocessor.h |
| 131 | + processor/shape/fitellipseprocessor.cpp processor/shape/fitellipseprocessor.h |
| 132 | + processor/shape/fitlineprocessor.cpp processor/shape/fitlineprocessor.h |
| 133 | + processor/shape/houghcircleprocessor.cpp processor/shape/houghcircleprocessor.h |
| 134 | + processor/shape/houghlineprobaprocessor.cpp processor/shape/houghlineprobaprocessor.h |
| 135 | + processor/shape/houghlineprocessor.cpp processor/shape/houghlineprocessor.h |
| 136 | + processor/shape/lineprocessor.cpp processor/shape/lineprocessor.h |
| 137 | + processor/shape/minenclosingtriangleprocessor.cpp processor/shape/minenclosingtriangleprocessor.h |
| 138 | + processor/shape/rectangleprocessor.cpp processor/shape/rectangleprocessor.h |
| 139 | + processor/viewer/dataviewerprocessor.cpp processor/viewer/dataviewerprocessor.h |
| 140 | + processor/viewer/imageviewerprocessor.cpp processor/viewer/imageviewerprocessor.h |
| 141 | +) |
| 142 | + |
| 143 | +include_directories(${OpenCV_INCLUDE_DIRS}) |
| 144 | + |
| 145 | +target_link_libraries(cvcomposer PRIVATE |
| 146 | + Qt::Core |
| 147 | + Qt::Gui |
| 148 | + Qt::Widgets |
| 149 | + Qt::Xml |
| 150 | + ${OpenCV_LIBS} |
| 151 | +) |
| 152 | + |
| 153 | +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
| 154 | + target_compile_options(cvcomposer PRIVATE |
| 155 | + -Werror=return-type |
| 156 | + -Werror=shadow |
| 157 | + -Wno-deprecated-enum-enum-conversion |
| 158 | + -Wsuggest-override |
| 159 | + -std=c++2a |
| 160 | + ) |
| 161 | +endif() |
| 162 | + |
| 163 | +# Resources: |
| 164 | +set(resources_resource_files |
| 165 | + "resources/Ubuntu-R.ttf" |
| 166 | + "resources/book.svg" |
| 167 | + "resources/brackets.svg" |
| 168 | + "resources/class.svg" |
| 169 | + "resources/credits.html" |
| 170 | + "resources/licence.html" |
| 171 | +) |
| 172 | + |
| 173 | +qt_add_resources(cvcomposer "resources" |
| 174 | + PREFIX |
| 175 | + "/" |
| 176 | + FILES |
| 177 | + ${resources_resource_files} |
| 178 | +) |
| 179 | + |
| 180 | +install(TARGETS cvcomposer |
| 181 | + BUNDLE DESTINATION . |
| 182 | + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| 183 | +) |
| 184 | + |
| 185 | +qt_generate_deploy_app_script( |
| 186 | + TARGET cvcomposer |
| 187 | + FILENAME_VARIABLE deploy_script |
| 188 | + NO_UNSUPPORTED_PLATFORM_ERROR |
| 189 | +) |
| 190 | +install(SCRIPT ${deploy_script}) |
0 commit comments