1# Copyright (C) 2012-2019 The VPaint Developers.
2# See the COPYRIGHT file at the top-level directory of this distribution
3# and at https:#github.com/dalboris/vpaint/blob/master/COPYRIGHT
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http:#www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# Qt configuration
18TEMPLATE = app
19TARGET = VPaint
20CONFIG += qt c++11
21QT += opengl openglextensions network
22
23# App version
24VERSION = 1.7
25DEFINES += APP_VERSION=\\\"$$VERSION\\\"
26
27# App resources
28RESOURCES += resources.qrc
29
30# App icon
31win32 {
32    # Set icon
33    RC_ICONS += images/VPaint.ico
34}
35else:macx {
36    # Set icon
37    ICON = images/vpaint.icns
38
39    # Use a custom Info.plist
40    QMAKE_INFO_PLIST = Info.plist
41
42    # Add file icons into the application bundle resources
43    FILE_ICONS.files = images/vec.icns
44    FILE_ICONS.path = Contents/Resources
45    QMAKE_BUNDLE_DATA += FILE_ICONS
46}
47
48# Names for control/command modifier key
49macx: DEFINES += ACTION_MODIFIER_NAME_SHORT=\\\"Cmd\\\" ACTION_MODIFIER_NAME=\\\"Command\\\"
50else: DEFINES += ACTION_MODIFIER_NAME_SHORT=\\\"Ctrl\\\" ACTION_MODIFIER_NAME=\\\"Control\\\"
51
52# Debug symbols
53unix:!macx:CONFIG(debug, debug|release): QMAKE_CXXFLAGS += -gdwarf-2
54
55# Windows only: embed manifest file
56win32: CONFIG += embed_manifest_exe
57
58
59###############################################################################
60#                     UNSHIPPED EXTERNAL LIBRARIES
61
62# OpenGL
63win32 {
64    LIBS += opengl32.lib
65}
66
67# GLU
68unix:!macx: LIBS += -lGLU -lGLEW
69win32 {
70    LIBS += glu32.lib
71}
72
73###############################################################################
74#                      SHIPPED EXTERNAL LIBRARIES
75
76
77
78###############################################################################
79#                            APP SOURCE FILES
80
81HEADERS += MainWindow.h \
82    SaveAndLoad.h \
83    Picking.h \
84    Random.h \
85    GLUtils.h \
86    GLWidget.h \
87    GLWidget_Camera.h \
88    GLWidget_Camera2D.h \
89    GLWidget_Material.h \
90    GLWidget_Light.h \
91    GeometryUtils.h \
92    SceneObject.h \
93    SceneObject_Example.h \
94    SceneObjectVisitor.h \
95    KeyFrame.h \
96    Scene.h \
97    MultiView.h \
98    View.h \
99    View3D.h \
100    Timeline.h \
101    Global.h \
102    ColorSelector.h \
103    SpinBox.h \
104    VectorAnimationComplex/Cell.h \
105    VectorAnimationComplex/SplitMap.h \
106    VectorAnimationComplex/Eigen.h \
107    VectorAnimationComplex/Intersection.h \
108    VectorAnimationComplex/KeyFace.h \
109    VectorAnimationComplex/KeyEdge.h \
110    VectorAnimationComplex/Halfedge.h \
111    VectorAnimationComplex/ForwardDeclaration.h \
112    VectorAnimationComplex/KeyCell.h \
113    VectorAnimationComplex/FaceCell.h \
114    VectorAnimationComplex/EdgeCell.h \
115    VectorAnimationComplex/VertexCell.h \
116    VectorAnimationComplex/KeyVertex.h \
117    VectorAnimationComplex/EdgeGeometry.h \
118    VectorAnimationComplex/CellList.h \
119    VectorAnimationComplex/CellVisitor.h \
120    VectorAnimationComplex/Operators.h \
121    VectorAnimationComplex/Operator.h \
122    VectorAnimationComplex/SculptCurve.h \
123    VectorAnimationComplex/ProperCycle.h \
124    VectorAnimationComplex/ProperPath.h \
125    VectorAnimationComplex/CycleHelper.h \
126    VectorAnimationComplex/ZOrderedCells.h \
127    VectorAnimationComplex/EdgeSample.h \
128    VectorAnimationComplex/Algorithms.h \
129    VectorAnimationComplex/SmartKeyEdgeSet.h \
130    OpenGL.h \
131    VectorAnimationComplex/Triangles.h \
132    SelectionInfoWidget.h \
133    VectorAnimationComplex/Cycle.h \
134    VectorAnimationComplex/Path.h \
135    VectorAnimationComplex/AnimatedVertex.h \
136    VectorAnimationComplex/AnimatedCycle.h \
137    VectorAnimationComplex/CellLinkedList.h \
138    VectorAnimationComplex/HalfedgeBase.h \
139    VectorAnimationComplex/KeyHalfedge.h \
140    ViewSettings.h \
141    View3DSettings.h \
142    ObjectPropertiesWidget.h \
143    AnimatedCycleWidget.h \
144    VectorAnimationComplex/CellObserver.h \
145    Color.h \
146    DevSettings.h \
147    Settings.h \
148    SettingsDialog.h \
149    VectorAnimationComplex/InbetweenCell.h \
150    VectorAnimationComplex/InbetweenEdge.h \
151    VectorAnimationComplex/InbetweenFace.h \
152    VectorAnimationComplex/InbetweenHalfedge.h \
153    VectorAnimationComplex/InbetweenVertex.h \
154    VectorAnimationComplex/VAC.h \
155    XmlStreamWriter.h \
156    XmlStreamReader.h \
157    CssColor.h \
158    TimeDef.h \
159    EditCanvasSizeDialog.h \
160    ExportPngDialog.h \
161    AboutDialog.h \
162    ViewWidget.h \
163    Application.h \
164    Background/Background.h \
165    Background/BackgroundData.h \
166    Background/BackgroundRenderer.h \
167    Background/BackgroundWidget.h \
168    Background/BackgroundUrlValidator.h \
169    IO/FileVersionConverter.h \
170    IO/XmlStreamTraverser.h \
171    IO/XmlStreamConverter.h \
172    IO/XmlStreamConverters/XmlStreamConverter_1_0_to_1_6.h \
173    IO/FileVersionConverterDialog.h \
174    UpdateCheckDialog.h \
175    Version.h \
176    UpdateCheck.h \
177    VectorAnimationComplex/BoundingBox.h \
178    VectorAnimationComplex/TransformTool.h \
179    LayersWidget.h \
180    Layer.h \
181    SvgParser.h \
182    SvgImportDialog.h \
183    SvgImportParams.h
184
185SOURCES += main.cpp \
186    SaveAndLoad.cpp \
187    Picking.cpp \
188    Random.cpp \
189    GLUtils.cpp  \
190    GLWidget.cpp  \
191    MainWindow.cpp \
192    GeometryUtils.cpp \
193    SceneObject.cpp \
194    SceneObjectVisitor.cpp \
195    KeyFrame.cpp \
196    Scene.cpp \
197    MultiView.cpp \
198    View.cpp \
199    View3D.cpp \
200    Timeline.cpp \
201    Global.cpp \
202    ColorSelector.cpp \
203    SpinBox.cpp \
204    VectorAnimationComplex/Intersection.cpp \
205    VectorAnimationComplex/Cell.cpp \
206    VectorAnimationComplex/KeyCell.cpp \
207    VectorAnimationComplex/KeyFace.cpp \
208    VectorAnimationComplex/KeyEdge.cpp \
209    VectorAnimationComplex/Halfedge.cpp \
210    VectorAnimationComplex/FaceCell.cpp \
211    VectorAnimationComplex/EdgeCell.cpp \
212    VectorAnimationComplex/VertexCell.cpp \
213    VectorAnimationComplex/KeyVertex.cpp \
214    VectorAnimationComplex/EdgeGeometry.cpp \
215    VectorAnimationComplex/CellVisitor.cpp \
216    VectorAnimationComplex/Operators.cpp \
217    VectorAnimationComplex/Operator.cpp \
218    VectorAnimationComplex/ProperCycle.cpp \
219    VectorAnimationComplex/ProperPath.cpp \
220    VectorAnimationComplex/CycleHelper.cpp \
221    VectorAnimationComplex/ZOrderedCells.cpp \
222    VectorAnimationComplex/EdgeSample.cpp \
223    VectorAnimationComplex/Cycle.cpp \
224    VectorAnimationComplex/Algorithms.cpp \
225    VectorAnimationComplex/SmartKeyEdgeSet.cpp \
226    VectorAnimationComplex/Triangles.cpp \
227    SelectionInfoWidget.cpp \
228    VectorAnimationComplex/Path.cpp \
229    VectorAnimationComplex/AnimatedVertex.cpp \
230    VectorAnimationComplex/AnimatedCycle.cpp \
231    VectorAnimationComplex/CellLinkedList.cpp \
232    VectorAnimationComplex/HalfedgeBase.cpp \
233    VectorAnimationComplex/KeyHalfedge.cpp \
234    ViewSettings.cpp \
235    View3DSettings.cpp \
236    ObjectPropertiesWidget.cpp \
237    AnimatedCycleWidget.cpp \
238    VectorAnimationComplex/CellObserver.cpp \
239    Color.cpp \
240    DevSettings.cpp \
241    Settings.cpp \
242    SettingsDialog.cpp \
243    VectorAnimationComplex/InbetweenCell.cpp \
244    VectorAnimationComplex/InbetweenEdge.cpp \
245    VectorAnimationComplex/InbetweenFace.cpp \
246    VectorAnimationComplex/InbetweenHalfedge.cpp \
247    VectorAnimationComplex/InbetweenVertex.cpp \
248    VectorAnimationComplex/VAC.cpp \
249    XmlStreamWriter.cpp \
250    XmlStreamReader.cpp \
251    CssColor.cpp \
252    TimeDef.cpp \
253    EditCanvasSizeDialog.cpp \
254    ExportPngDialog.cpp \
255    AboutDialog.cpp \
256    ViewWidget.cpp \
257    Application.cpp \
258    Background/Background.cpp \
259    Background/BackgroundData.cpp \
260    Background/BackgroundRenderer.cpp \
261    Background/BackgroundWidget.cpp \
262    Background/BackgroundUrlValidator.cpp \
263    IO/FileVersionConverter.cpp \
264    IO/XmlStreamTraverser.cpp \
265    IO/XmlStreamConverter.cpp \
266    IO/XmlStreamConverters/XmlStreamConverter_1_0_to_1_6.cpp \
267    IO/FileVersionConverterDialog.cpp \
268    UpdateCheckDialog.cpp \
269    Version.cpp \
270    UpdateCheck.cpp \
271    VectorAnimationComplex/BoundingBox.cpp \
272    VectorAnimationComplex/TransformTool.cpp \
273    LayersWidget.cpp \
274    Layer.cpp \
275    SvgParser.cpp \
276    SvgImportDialog.cpp \
277    SvgImportParams.cpp
278