ed2a6a24569d8c30a006a876d0c3face85642659
[blender.git] / source / blender / nodes / CMakeLists.txt
1 # ***** BEGIN GPL LICENSE BLOCK *****
2 #
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software Foundation,
15 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # The Original Code is Copyright (C) 2006, Blender Foundation
18 # All rights reserved.
19 # ***** END GPL LICENSE BLOCK *****
20
21 set(INC
22   .
23   composite
24   function
25   geometry
26   intern
27   shader
28   texture
29   ../editors/include
30   ../blenkernel
31   ../blenlib
32   ../blentranslation
33   ../bmesh
34   ../depsgraph
35   ../functions
36   ../gpu
37   ../imbuf
38   ../makesdna
39   ../makesrna
40   ../render
41   ../../../intern/glew-mx
42   ../../../intern/guardedalloc
43   ../../../intern/sky/include
44 )
45
46
47 set(SRC
48   composite/nodes/node_composite_alphaOver.c
49   composite/nodes/node_composite_antialiasing.c
50   composite/nodes/node_composite_bilateralblur.c
51   composite/nodes/node_composite_blur.c
52   composite/nodes/node_composite_bokehblur.c
53   composite/nodes/node_composite_bokehimage.c
54   composite/nodes/node_composite_boxmask.c
55   composite/nodes/node_composite_brightness.c
56   composite/nodes/node_composite_channelMatte.c
57   composite/nodes/node_composite_chromaMatte.c
58   composite/nodes/node_composite_colorMatte.c
59   composite/nodes/node_composite_colorSpill.c
60   composite/nodes/node_composite_colorbalance.c
61   composite/nodes/node_composite_colorcorrection.c
62   composite/nodes/node_composite_common.c
63   composite/nodes/node_composite_composite.c
64   composite/nodes/node_composite_cornerpin.c
65   composite/nodes/node_composite_crop.c
66   composite/nodes/node_composite_cryptomatte.cc
67   composite/nodes/node_composite_curves.c
68   composite/nodes/node_composite_defocus.c
69   composite/nodes/node_composite_denoise.c
70   composite/nodes/node_composite_despeckle.c
71   composite/nodes/node_composite_diffMatte.c
72   composite/nodes/node_composite_dilate.c
73   composite/nodes/node_composite_directionalblur.c
74   composite/nodes/node_composite_displace.c
75   composite/nodes/node_composite_distanceMatte.c
76   composite/nodes/node_composite_doubleEdgeMask.c
77   composite/nodes/node_composite_ellipsemask.c
78   composite/nodes/node_composite_exposure.c
79   composite/nodes/node_composite_filter.c
80   composite/nodes/node_composite_flip.c
81   composite/nodes/node_composite_gamma.c
82   composite/nodes/node_composite_glare.c
83   composite/nodes/node_composite_hueSatVal.c
84   composite/nodes/node_composite_huecorrect.c
85   composite/nodes/node_composite_idMask.c
86   composite/nodes/node_composite_image.c
87   composite/nodes/node_composite_inpaint.c
88   composite/nodes/node_composite_invert.c
89   composite/nodes/node_composite_keying.c
90   composite/nodes/node_composite_keyingscreen.c
91   composite/nodes/node_composite_lensdist.c
92   composite/nodes/node_composite_levels.c
93   composite/nodes/node_composite_lummaMatte.c
94   composite/nodes/node_composite_mapRange.c
95   composite/nodes/node_composite_mapUV.c
96   composite/nodes/node_composite_mapValue.c
97   composite/nodes/node_composite_mask.c
98   composite/nodes/node_composite_math.c
99   composite/nodes/node_composite_mixrgb.c
100   composite/nodes/node_composite_movieclip.c
101   composite/nodes/node_composite_moviedistortion.c
102   composite/nodes/node_composite_normal.c
103   composite/nodes/node_composite_normalize.c
104   composite/nodes/node_composite_outputFile.c
105   composite/nodes/node_composite_pixelate.c
106   composite/nodes/node_composite_planetrackdeform.c
107   composite/nodes/node_composite_premulkey.c
108   composite/nodes/node_composite_rgb.c
109   composite/nodes/node_composite_rotate.c
110   composite/nodes/node_composite_scale.c
111   composite/nodes/node_composite_sepcombHSVA.c
112   composite/nodes/node_composite_sepcombRGBA.c
113   composite/nodes/node_composite_sepcombYCCA.c
114   composite/nodes/node_composite_sepcombYUVA.c
115   composite/nodes/node_composite_setalpha.c
116   composite/nodes/node_composite_splitViewer.c
117   composite/nodes/node_composite_stabilize2d.c
118   composite/nodes/node_composite_sunbeams.c
119   composite/nodes/node_composite_switch.c
120   composite/nodes/node_composite_switchview.c
121   composite/nodes/node_composite_texture.c
122   composite/nodes/node_composite_tonemap.c
123   composite/nodes/node_composite_trackpos.c
124   composite/nodes/node_composite_transform.c
125   composite/nodes/node_composite_translate.c
126   composite/nodes/node_composite_valToRgb.c
127   composite/nodes/node_composite_value.c
128   composite/nodes/node_composite_vecBlur.c
129   composite/nodes/node_composite_viewer.c
130   composite/nodes/node_composite_zcombine.c
131
132   composite/node_composite_tree.c
133   composite/node_composite_util.c
134
135   function/nodes/node_fn_boolean_math.cc
136   function/nodes/node_fn_float_compare.cc
137   function/nodes/node_fn_input_string.cc
138   function/nodes/node_fn_input_vector.cc
139   function/nodes/node_fn_random_float.cc
140   function/node_function_util.cc
141
142   geometry/nodes/node_geo_align_rotation_to_vector.cc
143   geometry/nodes/node_geo_attribute_clamp.cc
144   geometry/nodes/node_geo_attribute_color_ramp.cc
145   geometry/nodes/node_geo_attribute_combine_xyz.cc
146   geometry/nodes/node_geo_attribute_compare.cc
147   geometry/nodes/node_geo_attribute_convert.cc
148   geometry/nodes/node_geo_attribute_curve_map.cc
149   geometry/nodes/node_geo_attribute_fill.cc
150   geometry/nodes/node_geo_attribute_map_range.cc
151   geometry/nodes/node_geo_attribute_math.cc
152   geometry/nodes/node_geo_attribute_mix.cc
153   geometry/nodes/node_geo_attribute_proximity.cc
154   geometry/nodes/node_geo_attribute_randomize.cc
155   geometry/nodes/node_geo_attribute_remove.cc
156   geometry/nodes/node_geo_attribute_sample_texture.cc
157   geometry/nodes/node_geo_attribute_separate_xyz.cc
158   geometry/nodes/node_geo_attribute_transfer.cc
159   geometry/nodes/node_geo_attribute_vector_math.cc
160   geometry/nodes/node_geo_attribute_vector_rotate.cc
161   geometry/nodes/node_geo_boolean.cc
162   geometry/nodes/node_geo_bounding_box.cc
163   geometry/nodes/node_geo_collection_info.cc
164   geometry/nodes/node_geo_common.cc
165   geometry/nodes/node_geo_curve_to_mesh.cc
166   geometry/nodes/node_geo_curve_resample.cc
167   geometry/nodes/node_geo_edge_split.cc
168   geometry/nodes/node_geo_is_viewport.cc
169   geometry/nodes/node_geo_join_geometry.cc
170   geometry/nodes/node_geo_material_assign.cc
171   geometry/nodes/node_geo_mesh_primitive_circle.cc
172   geometry/nodes/node_geo_mesh_primitive_cone.cc
173   geometry/nodes/node_geo_mesh_primitive_cube.cc
174   geometry/nodes/node_geo_mesh_primitive_cylinder.cc
175   geometry/nodes/node_geo_mesh_primitive_grid.cc
176   geometry/nodes/node_geo_mesh_primitive_ico_sphere.cc
177   geometry/nodes/node_geo_mesh_primitive_line.cc
178   geometry/nodes/node_geo_mesh_primitive_uv_sphere.cc
179   geometry/nodes/node_geo_object_info.cc
180   geometry/nodes/node_geo_point_distribute.cc
181   geometry/nodes/node_geo_point_instance.cc
182   geometry/nodes/node_geo_point_rotate.cc
183   geometry/nodes/node_geo_point_scale.cc
184   geometry/nodes/node_geo_point_separate.cc
185   geometry/nodes/node_geo_point_translate.cc
186   geometry/nodes/node_geo_points_to_volume.cc
187   geometry/nodes/node_geo_subdivide.cc
188   geometry/nodes/node_geo_subdivision_surface.cc
189   geometry/nodes/node_geo_switch.cc
190   geometry/nodes/node_geo_transform.cc
191   geometry/nodes/node_geo_triangulate.cc
192   geometry/nodes/node_geo_volume_to_mesh.cc
193   geometry/node_geometry_exec.cc
194   geometry/node_geometry_tree.cc
195   geometry/node_geometry_util.cc
196
197   shader/nodes/node_shader_add_shader.c
198   shader/nodes/node_shader_ambient_occlusion.c
199   shader/nodes/node_shader_attribute.c
200   shader/nodes/node_shader_background.c
201   shader/nodes/node_shader_bevel.c
202   shader/nodes/node_shader_blackbody.c
203   shader/nodes/node_shader_brightness.c
204   shader/nodes/node_shader_bsdf_anisotropic.c
205   shader/nodes/node_shader_bsdf_diffuse.c
206   shader/nodes/node_shader_bsdf_glass.c
207   shader/nodes/node_shader_bsdf_glossy.c
208   shader/nodes/node_shader_bsdf_hair.c
209   shader/nodes/node_shader_bsdf_hair_principled.c
210   shader/nodes/node_shader_bsdf_principled.c
211   shader/nodes/node_shader_bsdf_refraction.c
212   shader/nodes/node_shader_bsdf_toon.c
213   shader/nodes/node_shader_bsdf_translucent.c
214   shader/nodes/node_shader_bsdf_transparent.c
215   shader/nodes/node_shader_bsdf_velvet.c
216   shader/nodes/node_shader_bump.c
217   shader/nodes/node_shader_camera.c
218   shader/nodes/node_shader_clamp.cc
219   shader/nodes/node_shader_common.c
220   shader/nodes/node_shader_curves.c
221   shader/nodes/node_shader_displacement.c
222   shader/nodes/node_shader_eevee_specular.c
223   shader/nodes/node_shader_emission.c
224   shader/nodes/node_shader_fresnel.c
225   shader/nodes/node_shader_gamma.c
226   shader/nodes/node_shader_geometry.c
227   shader/nodes/node_shader_hair_info.c
228   shader/nodes/node_shader_holdout.c
229   shader/nodes/node_shader_hueSatVal.c
230   shader/nodes/node_shader_ies_light.c
231   shader/nodes/node_shader_invert.c
232   shader/nodes/node_shader_layer_weight.c
233   shader/nodes/node_shader_light_falloff.c
234   shader/nodes/node_shader_light_path.c
235   shader/nodes/node_shader_map_range.cc
236   shader/nodes/node_shader_mapping.c
237   shader/nodes/node_shader_math.cc
238   shader/nodes/node_shader_mixRgb.c
239   shader/nodes/node_shader_mix_shader.c
240   shader/nodes/node_shader_normal.c
241   shader/nodes/node_shader_normal_map.c
242   shader/nodes/node_shader_object_info.c
243   shader/nodes/node_shader_output_aov.c
244   shader/nodes/node_shader_output_light.c
245   shader/nodes/node_shader_output_linestyle.c
246   shader/nodes/node_shader_output_material.c
247   shader/nodes/node_shader_output_world.c
248   shader/nodes/node_shader_particle_info.c
249   shader/nodes/node_shader_rgb.c
250   shader/nodes/node_shader_script.c
251   shader/nodes/node_shader_sepcombHSV.c
252   shader/nodes/node_shader_sepcombRGB.cc
253   shader/nodes/node_shader_sepcombXYZ.cc
254   shader/nodes/node_shader_shaderToRgb.c
255   shader/nodes/node_shader_squeeze.c
256   shader/nodes/node_shader_subsurface_scattering.c
257   shader/nodes/node_shader_tangent.c
258   shader/nodes/node_shader_tex_brick.c
259   shader/nodes/node_shader_tex_checker.c
260   shader/nodes/node_shader_tex_coord.c
261   shader/nodes/node_shader_tex_environment.c
262   shader/nodes/node_shader_tex_gradient.c
263   shader/nodes/node_shader_tex_image.c
264   shader/nodes/node_shader_tex_magic.c
265   shader/nodes/node_shader_tex_musgrave.c
266   shader/nodes/node_shader_tex_noise.c
267   shader/nodes/node_shader_tex_pointdensity.c
268   shader/nodes/node_shader_tex_sky.c
269   shader/nodes/node_shader_tex_voronoi.c
270   shader/nodes/node_shader_tex_wave.c
271   shader/nodes/node_shader_tex_white_noise.c
272   shader/nodes/node_shader_uvAlongStroke.c
273   shader/nodes/node_shader_uvmap.c
274   shader/nodes/node_shader_valToRgb.cc
275   shader/nodes/node_shader_value.cc
276   shader/nodes/node_shader_vectTransform.c
277   shader/nodes/node_shader_vector_displacement.c
278   shader/nodes/node_shader_vector_math.cc
279   shader/nodes/node_shader_vector_rotate.cc
280   shader/nodes/node_shader_vertex_color.c
281   shader/nodes/node_shader_volume_absorption.c
282   shader/nodes/node_shader_volume_info.c
283   shader/nodes/node_shader_volume_principled.c
284   shader/nodes/node_shader_volume_scatter.c
285   shader/nodes/node_shader_wavelength.c
286   shader/nodes/node_shader_wireframe.c
287   shader/node_shader_tree.c
288   shader/node_shader_util.c
289
290   texture/nodes/node_texture_at.c
291   texture/nodes/node_texture_bricks.c
292   texture/nodes/node_texture_checker.c
293   texture/nodes/node_texture_common.c
294   texture/nodes/node_texture_compose.c
295   texture/nodes/node_texture_coord.c
296   texture/nodes/node_texture_curves.c
297   texture/nodes/node_texture_decompose.c
298   texture/nodes/node_texture_distance.c
299   texture/nodes/node_texture_hueSatVal.c
300   texture/nodes/node_texture_image.c
301   texture/nodes/node_texture_invert.c
302   texture/nodes/node_texture_math.c
303   texture/nodes/node_texture_mixRgb.c
304   texture/nodes/node_texture_output.c
305   texture/nodes/node_texture_proc.c
306   texture/nodes/node_texture_rotate.c
307   texture/nodes/node_texture_scale.c
308   texture/nodes/node_texture_texture.c
309   texture/nodes/node_texture_translate.c
310   texture/nodes/node_texture_valToNor.c
311   texture/nodes/node_texture_valToRgb.c
312   texture/nodes/node_texture_viewer.c
313   texture/node_texture_tree.c
314   texture/node_texture_util.c
315
316   intern/derived_node_tree.cc
317   intern/math_functions.cc
318   intern/node_common.c
319   intern/node_exec.cc
320   intern/node_geometry_exec.cc
321   intern/node_socket.cc
322   intern/node_tree_multi_function.cc
323   intern/node_tree_ref.cc
324   intern/node_util.c
325   intern/type_callbacks.cc
326   intern/type_conversions.cc
327
328   composite/node_composite_util.h
329   function/node_function_util.hh
330   shader/node_shader_util.h
331   geometry/node_geometry_util.hh
332   texture/node_texture_util.h
333
334   NOD_common.h
335   NOD_composite.h
336   NOD_derived_node_tree.hh
337   NOD_function.h
338   NOD_geometry.h
339   NOD_geometry_exec.hh
340   NOD_math_functions.hh
341   NOD_node_tree_multi_function.hh
342   NOD_node_tree_ref.hh
343   NOD_shader.h
344   NOD_socket.h
345   NOD_static_types.h
346   NOD_texture.h
347   NOD_type_callbacks.hh
348   NOD_type_conversions.hh
349   intern/node_common.h
350   intern/node_exec.h
351   intern/node_util.h
352 )
353
354 set(LIB
355   bf_bmesh
356   bf_functions
357   bf_intern_sky
358 )
359
360 if(WITH_PYTHON)
361   list(APPEND INC
362     ../python
363   )
364   list(APPEND INC_SYS
365     ${PYTHON_INCLUDE_DIRS}
366   )
367   list(APPEND LIB
368     ${PYTHON_LINKFLAGS}
369     ${PYTHON_LIBRARIES}
370   )
371   add_definitions(-DWITH_PYTHON)
372 endif()
373
374 if(WITH_INTERNATIONAL)
375   add_definitions(-DWITH_INTERNATIONAL)
376 endif()
377
378 if(WITH_TBB)
379   list(APPEND INC_SYS
380     ${TBB_INCLUDE_DIRS}
381   )
382   add_definitions(-DWITH_TBB)
383 endif()
384
385 if(WITH_IMAGE_OPENEXR)
386   add_definitions(-DWITH_OPENEXR)
387 endif()
388
389 if(WITH_COMPOSITOR)
390   list(APPEND INC
391     ../compositor
392   )
393   add_definitions(-DWITH_COMPOSITOR)
394 endif()
395
396 if(WITH_FREESTYLE)
397   add_definitions(-DWITH_FREESTYLE)
398 endif()
399
400 if(WITH_OPENSUBDIV)
401   add_definitions(-DWITH_OPENSUBDIV)
402 endif()
403
404 if(WITH_GMP)
405   add_definitions(-DWITH_GMP)
406
407   list(APPEND INC_SYS
408     ${GMP_INCLUDE_DIRS}
409   )
410
411   list(APPEND LIB
412     ${GMP_LIBRARIES}
413   )
414 endif()
415
416 if(WITH_OPENVDB)
417   list(APPEND INC_SYS
418     ${OPENVDB_INCLUDE_DIRS}
419   )
420   add_definitions(-DWITH_OPENVDB ${OPENVDB_DEFINITIONS})
421 endif()
422
423 blender_add_lib(bf_nodes "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")