Skip to content

Commit d84e290

Browse files
authored
Merge pull request #11 from wawanbreton/ci
Ci
2 parents dbb5c54 + 1304de4 commit d84e290

File tree

5 files changed

+238
-274
lines changed

5 files changed

+238
-274
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: build-win64-setup
2+
3+
on:
4+
[push, pull_request]
5+
6+
env:
7+
BUILD_TYPE: Release
8+
9+
jobs:
10+
build:
11+
runs-on: windows-2022
12+
13+
steps:
14+
- uses: actions/checkout@v3
15+
16+
- name: Install Qt
17+
uses: jurplel/install-qt-action@v3
18+
with:
19+
version: '6.3.1'
20+
21+
- name: Install opencv
22+
uses: wawanbreton/opencv-action@main
23+
with:
24+
opencv_tag: '4.6.0'
25+
BUILD_LIST: 'core,highgui,imgcodecs,imgproc,objdetect,video,videoio'
26+
BUILD_SHARED_LIBS: 'ON'
27+
28+
- name: Configure CMake
29+
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
30+
31+
- name: Build
32+
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
33+
34+
- name: Gather libraries
35+
run: windeployqt --no-translations ${{github.workspace}}/build/Release/cvcomposer.exe
36+
37+
- name: Build setup
38+
run: iscc.exe setup/cvcomposer.iss
39+
40+
- name: Archive setup
41+
uses: actions/upload-artifact@v3
42+
with:
43+
name: setup
44+
path: setup/Output/CvComposer-setup.exe

CMakeLists.txt

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
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

Comments
 (0)