Merge with trunk r41625
[blender.git] / source / blender / makesrna / intern / CMakeLists.txt
1 # -*- mode: cmake; indent-tabs-mode: t; -*-
2 # ***** BEGIN GPL LICENSE BLOCK *****
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software Foundation,
16 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 #
18 # The Original Code is Copyright (C) 2006, Blender Foundation
19 # All rights reserved.
20 #
21 # The Original Code is: all of this file.
22 #
23 # Contributor(s): Jacques Beaurain.
24 #
25 # ***** END GPL LICENSE BLOCK *****
26
27 # Generated code has some unused vars we can ignore.
28 remove_strict_flags()
29
30 # message(STATUS "Configuring makesrna")
31
32 # files rna_access.c rna_define.c makesrna.c intentionally excluded.
33 set(DEFSRC
34         rna_ID.c
35         rna_action.c
36         rna_actuator.c
37         rna_animation.c
38         rna_animviz.c
39         rna_armature.c
40         rna_boid.c
41         rna_brush.c
42         rna_camera.c
43         rna_cloth.c
44         rna_color.c
45         rna_constraint.c
46         rna_context.c
47         rna_controller.c
48         rna_curve.c
49         rna_dynamicpaint.c
50         rna_fcurve.c
51         rna_fluidsim.c
52         rna_gpencil.c
53         rna_group.c
54         rna_image.c
55         rna_key.c
56         rna_lamp.c
57         rna_lattice.c
58         rna_main.c
59         rna_material.c
60         rna_mesh.c
61         rna_meta.c
62         rna_modifier.c
63         rna_movieclip.c
64         rna_nla.c
65         rna_nodetree.c
66         rna_object.c
67         rna_object_force.c
68         rna_packedfile.c
69         rna_particle.c
70         rna_pose.c
71         rna_property.c
72         rna_render.c
73         rna_rna.c
74         rna_scene.c
75         rna_screen.c
76         rna_sculpt_paint.c
77         rna_sensor.c
78         rna_sequencer.c
79         rna_smoke.c
80         rna_sound.c
81         rna_space.c
82         rna_speaker.c
83         rna_test.c
84         rna_text.c
85         rna_texture.c
86         rna_timeline.c
87         rna_tracking.c
88         rna_ui.c
89         rna_userdef.c
90         rna_vfont.c
91         rna_wm.c
92         rna_world.c
93 )
94
95 set(APISRC
96         rna_action_api.c
97         rna_actuator_api.c
98         rna_animation_api.c
99         rna_armature_api.c
100         rna_camera_api.c
101         rna_controller_api.c
102         rna_fcurve_api.c
103         rna_image_api.c
104         rna_main_api.c
105         rna_material_api.c
106         rna_mesh_api.c
107         rna_texture_api.c
108         rna_object_api.c
109         rna_pose_api.c
110         rna_scene_api.c
111         rna_sensor_api.c
112         rna_sequencer_api.c
113         rna_text_api.c
114         rna_ui_api.c
115         rna_wm_api.c
116 )
117
118 string(REGEX REPLACE "rna_([a-zA-Z0-9_-]*).c" "${CMAKE_CURRENT_BINARY_DIR}/rna_\\1_gen.c" GENSRC "${DEFSRC}")
119 set_source_files_properties(GENSRC PROPERTIES GENERATED true)
120
121 set(SRC_RNA_INC
122         ../RNA_access.h
123         ../RNA_define.h
124         ../RNA_documentation.h
125         ../RNA_enum_types.h
126         ../RNA_types.h
127 )
128
129 set(SRC
130         makesrna.c
131         rna_define.c
132         ${DEFSRC}
133         ${APISRC}
134         ../../../../intern/guardedalloc/intern/mallocn.c
135         ../../../../intern/guardedalloc/intern/mmap_win.c
136 )
137
138 set(INC
139
140 )
141
142 set(INC_SYS
143
144 )
145
146
147 if(WITH_PYTHON)
148         add_definitions(-DWITH_PYTHON)
149 endif()
150
151 if(WITH_GAMEENGINE)
152         add_definitions(-DWITH_GAMEENGINE)
153 endif()
154
155 if(WITH_IMAGE_OPENEXR)
156         add_definitions(-DWITH_OPENEXR)
157 endif()
158
159 if(WITH_IMAGE_TIFF)
160         add_definitions(-DWITH_TIFF)
161 endif()
162
163 if(WITH_IMAGE_OPENJPEG)
164         add_definitions(-DWITH_OPENJPEG)
165 endif()
166
167 if(WITH_IMAGE_DDS)
168         add_definitions(-DWITH_DDS)
169 endif()
170
171 if(WITH_IMAGE_CINEON)
172         add_definitions(-DWITH_CINEON)
173 endif()
174
175 if(WITH_IMAGE_HDR)
176         add_definitions(-DWITH_HDR)
177 endif()
178
179 if(WITH_IMAGE_FRAMESERVER)
180         add_definitions(-DWITH_FRAMESERVER)
181 endif()
182
183 if(WITH_AUDASPACE)
184         add_definitions(-DWITH_AUDASPACE)
185 endif()
186
187 if(WITH_CODEC_QUICKTIME)
188         list(APPEND INC
189                 ../../quicktime
190         )
191         add_definitions(-DWITH_QUICKTIME)
192 endif()
193
194 if(WITH_CODEC_FFMPEG)
195         list(APPEND INC_SYS
196                 ${FFMPEG_INCLUDE_DIRS}
197         )
198         add_definitions(-DWITH_FFMPEG)
199 endif()
200
201 if(WITH_MOD_FLUID)
202         add_definitions(-DWITH_MOD_FLUID)
203 endif()
204
205 if(WITH_FFTW3)
206         add_definitions(-DWITH_FFTW3)
207 endif()
208
209 if(WITH_SDL)
210         add_definitions(-DWITH_SDL)
211 endif()
212
213 if(WITH_OPENAL)
214         add_definitions(-DWITH_OPENAL)
215 endif()
216
217 if(WITH_JACK)
218         add_definitions(-DWITH_JACK)
219 endif()
220
221 if(WITH_OPENCOLLADA)
222         add_definitions(-DWITH_COLLADA)
223 endif()
224
225 if(WITH_INTERNATIONAL)
226         add_definitions(-DWITH_INTERNATIONAL)
227 endif()
228
229 # Build makesrna executable
230 blender_include_dirs(
231         .
232         ..
233         ../../blenkernel
234         ../../blenloader
235         ../../blenlib
236         ../../blenfont
237         ../../gpu
238         ../../imbuf
239         ../../ikplugin
240         ../../makesdna
241         ../../windowmanager
242         ../../editors/include
243         ../../render/extern/include
244         ../../../../intern/audaspace/intern
245         ../../../../intern/guardedalloc
246         ../../../../intern/memutil
247 )
248
249 blender_include_dirs_sys(
250         ${GLEW_INCLUDE_PATH}
251 )
252
253 add_executable(makesrna ${SRC} ${SRC_RNA_INC} ${SRC_DNA_INC})
254 target_link_libraries(makesrna bf_dna)
255 target_link_libraries(makesrna bf_dna_blenlib)
256
257 # Output rna_*_gen.c
258 # note (linux only): with crashes try add this after COMMAND: valgrind --leak-check=full --track-origins=yes
259 add_custom_command(
260         OUTPUT ${GENSRC}
261         COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesrna ${CMAKE_CURRENT_BINARY_DIR}/
262         DEPENDS makesrna
263 )
264
265 # Build bf_rna
266 set(SRC
267         rna_access.c
268         ${GENSRC}
269
270         ${SRC_RNA_INC}
271         rna_internal.h
272         rna_internal_types.h
273         rna_nodetree_types.h
274 )
275
276 blender_add_lib(bf_rna "${SRC}" "${INC}" "${INC_SYS}")