1# MeshLab main configuration file for qmake
2# To compile meshlab:
3# - qmake
4# - make
5#
6# If you want to compile meshlab_mini (just a minimal subset of plugins):
7# - qmake "CONFIG += meshlab_mini"
8#
9# MeshLab qmake config uses the following variables:
10#
11# MESHLAB_SOURCE_DIRECTORY: the directory where is placed the main meshlab.pro
12# MESHLAB_BUILD_DIRECTORY: the directory where the meshlab build files are placed
13# MESHLAB_DISTRIB_DIRECTORY: the directory that will contain all the files necessary
14#                            for a portable version (after build and deploy)
15#                            (if shadow build, will be MESHLAB_BUILD_DIRECTORY/distrib)
16# MESHLAB_EXTERNAL_DIRECTORY: the directory where external libraries are placed
17#
18
19TEMPLATE = subdirs
20
21message("DISTRIB_DIRECTORY: "$$MESHLAB_DISTRIB_DIRECTORY)
22
23#the following sub projects are compiled ALSO with MeshLab Mini
24SUBDIRS = \ #sub projects names
25    external \
26    common \
27    meshlab \
28    meshlabserver \
29    io_base \        # a few basic file formats (ply, obj, off), without this you cannot open anything
30    decorate_base \
31    filter_measure \
32    filter_meshing
33
34!meshlab_mini {
35# Other sub project, compiled only when config is not MeshLab Mini
36# If you want to compile someone of these sub project with the meshlab_mini
37# configuration, just copy-paste the name of the filter in the
38# meshlab_mini SUBDIRS
39SUBDIRS += \ #sub projects names
40# IO plugins
41    io_3ds \
42    io_bre \
43    io_collada \
44    io_ctm \
45    io_expe \
46    io_json \
47    io_tri \
48    io_x3d \
49    io_pdb \
50    io_txt \
51    io_u3d \
52# Filter samples
53    edit_sample \
54    filter_sample \
55    filter_sample_dyn \
56    filter_createiso \
57    filter_geodesic \
58    filter_sample_gpu \
59# Filter plugins
60    filter_ao \
61    filter_camera \
62    filter_clean \
63    filter_color_projection \
64    filter_colorproc \
65    filter_create \
66    filter_csg \
67    filter_dirt \
68    filter_fractal \
69    filter_func \
70    filter_img_patch_param \
71    filter_isoparametrization \
72    filter_layer \
73    filter_mls \
74    filter_mutualglobal \
75    filter_mutualinfoxml \
76    filter_plymc \
77    filter_qhull \
78    filter_quality \
79    filter_sampling \
80    filter_screened_poisson \
81    filter_sdfgpu \
82    filter_select \
83    filter_sketchfab \
84    filter_ssynth \
85    filter_texture \
86    filter_trioptimize \
87    filter_unsharp \
88    filter_voronoi \
89# Rendering and Decoration Plugins
90    decorate_background \
91    decorate_raster_proj \
92    decorate_shadow \
93    render_gdp \
94    render_radiance_scaling \
95# Edit Plugins
96    edit_align \
97    edit_manipulators \
98    edit_measure \
99    edit_mutualcorrs \
100    edit_paint \
101    edit_point \
102    edit_referencing \
103    edit_quality \
104    edit_select
105
106}
107meshlab_mini {
108    message(Compiling only MeshLab Mini!)
109}
110
111win32 {
112    SUBDIRS+= \
113        use_cpu_opengl
114}
115
116## where to find the sub projects - give the folders ##
117# meshlab_mini subdirs:
118external.subdir = external
119common.subdir = common
120meshlab.subdir = meshlab
121meshlabserver.subdir = meshlabserver
122io_base.subdir = meshlabplugins/io_base
123decorate_base.subdir = meshlabplugins/decorate_base
124filter_measure.subdir = meshlabplugins/filter_measure
125filter_meshing.subdir = meshlabplugins/filter_meshing
126use_cpu_opengl.subdir = use_cpu_opengl
127# IO plugins
128io_3ds.subdir = meshlabplugins/io_3ds
129io_bre.subdir = meshlabplugins/io_bre
130io_collada.subdir = meshlabplugins/io_collada
131io_ctm.subdir = meshlabplugins/io_ctm
132io_expe.subdir = meshlabplugins/io_expe
133io_json.subdir = meshlabplugins/io_json
134io_tri.subdir = meshlabplugins/io_tri
135io_x3d.subdir = meshlabplugins/io_x3d
136io_pdb.subdir = meshlabplugins/io_pdb
137io_txt.subdir = meshlabplugins/io_txt
138io_u3d.subdir = meshlabplugins/io_u3d
139# Filter samples
140edit_sample.subdir = meshlabplugins/edit_sample
141filter_sample.subdir = meshlabplugins/filter_sample
142filter_sample_dyn.subdir = meshlabplugins/filter_sample_dyn
143filter_createiso.subdir = meshlabplugins/filter_createiso
144filter_geodesic.subdir = meshlabplugins/filter_geodesic
145filter_sample_gpu.subdir = meshlabplugins/filter_sample_gpu
146# Filter plugins
147filter_ao.subdir = meshlabplugins/filter_ao
148filter_camera.subdir = meshlabplugins/filter_camera
149filter_clean.subdir = meshlabplugins/filter_clean
150filter_color_projection.subdir = meshlabplugins/filter_color_projection
151filter_colorproc.subdir = meshlabplugins/filter_colorproc
152filter_create.subdir = meshlabplugins/filter_create
153filter_csg.subdir = meshlabplugins/filter_csg
154filter_dirt.subdir = meshlabplugins/filter_dirt
155filter_fractal.subdir = meshlabplugins/filter_fractal
156filter_func.subdir = meshlabplugins/filter_func
157filter_img_patch_param.subdir = meshlabplugins/filter_img_patch_param
158filter_isoparametrization.subdir = meshlabplugins/filter_isoparametrization
159filter_layer.subdir = meshlabplugins/filter_layer
160filter_mls.subdir = meshlabplugins/filter_mls
161filter_mutualglobal.subdir = meshlabplugins/filter_mutualglobal
162filter_mutualinfoxml.subdir = meshlabplugins/filter_mutualinfoxml
163filter_plymc.subdir = meshlabplugins/filter_plymc
164filter_qhull.subdir = meshlabplugins/filter_qhull
165filter_quality.subdir = meshlabplugins/filter_quality
166filter_sampling.subdir = meshlabplugins/filter_sampling
167filter_screened_poisson.subdir = meshlabplugins/filter_screened_poisson
168filter_sdfgpu.subdir = meshlabplugins/filter_sdfgpu
169filter_select.subdir = meshlabplugins/filter_select
170filter_sketchfab.subdir = meshlabplugins/filter_sketchfab
171filter_ssynth.subdir = meshlabplugins/filter_ssynth
172filter_texture.subdir = meshlabplugins/filter_texture
173filter_trioptimize.subdir = meshlabplugins/filter_trioptimize
174filter_unsharp.subdir = meshlabplugins/filter_unsharp
175filter_voronoi.subdir = meshlabplugins/filter_voronoi
176# Rendering and Decoration Plugins
177decorate_background.subdir = meshlabplugins/decorate_background
178decorate_raster_proj.subdir = meshlabplugins/decorate_raster_proj
179decorate_shadow.subdir = meshlabplugins/decorate_shadow
180render_gdp.subdir = meshlabplugins/render_gdp
181render_radiance_scaling.subdir = meshlabplugins/render_radiance_scaling
182# Edit Plugins
183edit_align.subdir = meshlabplugins/edit_align
184edit_manipulators.subdir = meshlabplugins/edit_manipulators
185edit_measure.subdir = meshlabplugins/edit_measure
186edit_mutualcorrs.subdir = meshlabplugins/edit_mutualcorrs
187edit_paint.subdir = meshlabplugins/edit_paint
188edit_point.subdir = meshlabplugins/edit_point
189edit_referencing.subdir = meshlabplugins/edit_referencing
190edit_quality.subdir = meshlabplugins/edit_quality
191edit_select.subdir = meshlabplugins/edit_select
192
193## what subproject depends on others ##
194# meshlab_mini subdirs
195common.depends = external
196meshlab.depends = common
197meshlabserver.depends = common
198io_base.depends = common
199decorate_base.depends = common
200filter_measure.depends = common
201filter_meshing.depends = common
202# IO plugins
203io_3ds.depends = common
204io_bre.depends = common
205io_collada.depends = common
206io_ctm.depends = common
207io_expe.depends = common
208io_json.depends = common
209io_tri.depends = common
210io_x3d.depends = common
211io_pdb.depends = common
212io_txt.depends = common
213io_u3d.depends = common
214# Filter samples
215edit_sample.depends = common
216filter_sample.depends = common
217filter_sample_dyn.depends = common
218filter_createiso.depends = common
219filter_geodesic.depends = common
220filter_sample_gpu.depends = common
221# Filter plugins
222filter_ao.depends = common
223filter_camera.depends = common
224filter_clean.depends = common
225filter_color_projection.depends = common
226filter_colorproc.depends = common
227filter_create.depends = common
228filter_csg.depends = common
229filter_dirt.depends = common
230filter_fractal.depends = common
231filter_func.depends = common
232filter_img_patch_param.depends = common
233filter_isoparametrization.depends = common
234filter_layer.depends = common
235filter_mls.depends = common
236filter_mutualglobal.depends = common
237filter_mutualinfoxml.depends = common
238filter_plymc.depends = common
239filter_qhull.depends = common
240filter_quality.depends = common
241filter_sampling.depends = common
242filter_screened_poisson.depends = common
243filter_sdfgpu.depends = common
244filter_select.depends = common
245filter_sketchfab.depends = common
246filter_ssynth.depends = common
247filter_texture.depends = common
248filter_trioptimize.depends = common
249filter_unsharp.depends = common
250filter_voronoi.depends = common
251# Rendering and Decoration Plugins
252decorate_background.depends = common
253decorate_raster_proj.depends = common
254decorate_shadow.depends = common
255render_gdp.depends = common
256render_radiance_scaling.depends = common
257# Edit Plugins
258edit_align.depends = common
259edit_manipulators.depends = common
260edit_measure.depends = common
261edit_mutualcorrs.depends = common
262edit_paint.depends = common
263edit_point.depends = common
264edit_referencing.depends = common
265edit_quality.depends = common
266edit_select.depends = common
267
268#no longer needed# meshlabplugins/filter_aging \
269#no longer needed# meshlabplugins/filter_bnpts \
270#no longer needed# meshlabplugins/filter_colorize \
271#no longer supported#   meshlabplugins/edit_pickpoints \
272
273
274# if distrib folder is not in $$PWD/../distrib (shadow build case),
275# we need to copy all the files inside $$PWD/../distrib in the actual
276# distrib folder ($$OUT_PWD/distrib or $$MESHLAB_DISTRIB_DIRECTORY)
277!equals(PWD, $$OUT_PWD) {
278
279    #copying the "lib" folder inside the $$OUT_PWD/distrib
280    win32:copydir.commands = $(COPY_DIR) \"$$shell_path($$PWD/../distrib)\" \"$$shell_path($$OUT_PWD/distrib)\"
281    !win32:copydir.commands = $(COPY_DIR) \"$$shell_path($$PWD/../distrib)\" \"$$shell_path($$OUT_PWD)\"
282    first.depends += $(first) copydir
283    export(first.depends)
284    export(copydir.commands)
285
286    QMAKE_EXTRA_TARGETS += first copydir
287}
288
289#
290# this is just for project info
291# prints all the system libraries that meshlab is using instead of
292# the ones placed in the external folder.
293# The libraris are included effectively in general.pri and
294# in external.pro
295#
296include(find_system_libs.pri)
297system_eigen3 {
298    message("Using system eigen3")
299}
300system_glew {
301    message("Using system glew")
302}
303system_openctm {
304    message("Using system openctm")
305}
306system_lib3ds {
307    message("Using system lib3ds")
308}
309system_muparser {
310    message("Using system muparser")
311}
312system_qhull {
313    message("Using system qhull")
314}
315