CMake: add WITH_LINKER_LLD option for unix platforms
[blender-staging.git] / source / blender / 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(SRC_DNA_INC
22   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_ID.h
23   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_action_types.h
24   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_anim_types.h
25   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_armature_types.h
26   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_boid_types.h
27   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_brush_types.h
28   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_cachefile_types.h
29   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_camera_types.h
30   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_cloth_types.h
31   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_collection_types.h
32   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_color_types.h
33   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_constraint_types.h
34   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_curve_types.h
35   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_curveprofile_types.h
36   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_customdata_types.h
37   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_defs.h
38   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_documentation.h
39   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_dynamicpaint_types.h
40   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_effect_types.h
41   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_fileglobal_types.h
42   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_fluid_types.h
43   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_freestyle_types.h
44   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_genfile.h
45   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_gpencil_modifier_types.h
46   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_gpencil_types.h
47   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_gpu_types.h
48   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_image_types.h
49   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_ipo_types.h
50   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_key_types.h
51   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lattice_types.h
52   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_layer_types.h
53   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_light_types.h
54   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lightprobe_types.h
55   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_linestyle_types.h
56   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_listBase.h
57   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mask_types.h
58   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_material_types.h
59   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mesh_types.h
60   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_meshdata_types.h
61   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_meta_types.h
62   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_modifier_types.h
63   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_movieclip_types.h
64   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_nla_types.h
65   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_node_types.h
66   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_enums.h
67   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_fluidsim_types.h
68   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_force_types.h
69   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_types.h
70   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_outliner_types.h
71   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_packedFile_types.h
72   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_particle_types.h
73   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_rigidbody_types.h
74   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_scene_types.h
75   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_screen_types.h
76   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sdna_types.h
77   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sequence_types.h
78   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_shader_fx_types.h
79   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sound_types.h
80   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_space_types.h
81   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_speaker_types.h
82   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_text_types.h
83   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_texture_types.h
84   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_tracking_types.h
85   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_userdef_types.h
86   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_vec_types.h
87   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_vfont_types.h
88   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_view2d_types.h
89   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_view3d_types.h
90   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_windowmanager_types.h
91   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_workspace_types.h
92   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_world_types.h
93   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_xr_types.h
94 )
95
96 add_subdirectory(datatoc)
97 add_subdirectory(editors)
98 add_subdirectory(windowmanager)
99 add_subdirectory(blenkernel)
100 add_subdirectory(blenlib)
101 add_subdirectory(bmesh)
102 add_subdirectory(draw)
103 add_subdirectory(render)
104 add_subdirectory(blenfont)
105 add_subdirectory(blentranslation)
106 add_subdirectory(blenloader)
107 add_subdirectory(depsgraph)
108 add_subdirectory(ikplugin)
109 add_subdirectory(physics)
110 add_subdirectory(gpu)
111 add_subdirectory(imbuf)
112 add_subdirectory(nodes)
113 add_subdirectory(modifiers)
114 add_subdirectory(gpencil_modifiers)
115 add_subdirectory(shader_fx)
116 add_subdirectory(io)
117 add_subdirectory(makesdna)
118 add_subdirectory(makesrna)
119
120 if(WITH_COMPOSITOR)
121   add_subdirectory(compositor)
122 endif()
123
124 if(WITH_IMAGE_OPENEXR)
125   add_subdirectory(imbuf/intern/openexr)
126 endif()
127
128 if(WITH_OPENIMAGEIO)
129   add_subdirectory(imbuf/intern/oiio)
130 endif()
131
132 if(WITH_IMAGE_DDS)
133   add_subdirectory(imbuf/intern/dds)
134 endif()
135
136 if(WITH_IMAGE_CINEON)
137   add_subdirectory(imbuf/intern/cineon)
138 endif()
139
140 if(WITH_PYTHON)
141   add_subdirectory(python)
142 endif()
143
144 if(WITH_FREESTYLE)
145   add_subdirectory(freestyle)
146 endif()
147
148 if(WIN32)
149   add_subdirectory(blendthumb)
150 endif()