CMakeLists.txt 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  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. #
  20. # The Original Code is: all of this file.
  21. #
  22. # Contributor(s): Jacques Beaurain.
  23. #
  24. # ***** END GPL LICENSE BLOCK *****
  25. set(INC
  26. .
  27. ../blenfont
  28. ../blenlib
  29. ../blenloader
  30. ../blentranslation
  31. ../depsgraph
  32. ../gpu
  33. ../ikplugin
  34. ../imbuf
  35. ../makesdna
  36. ../makesrna
  37. ../bmesh
  38. ../modifiers
  39. ../nodes
  40. ../physics
  41. ../render/extern/include
  42. ../../../intern/ghost
  43. ../../../intern/guardedalloc
  44. ../../../intern/glew-mx
  45. ../../../intern/iksolver/extern
  46. ../../../intern/memutil
  47. ../../../intern/mikktspace
  48. ../../../intern/smoke/extern
  49. ../../../intern/atomic
  50. ../../../intern/libmv
  51. )
  52. set(INC_SYS
  53. ${GLEW_INCLUDE_PATH}
  54. ${ZLIB_INCLUDE_DIRS}
  55. )
  56. set(SRC
  57. intern/CCGSubSurf.c
  58. intern/CCGSubSurf_legacy.c
  59. intern/CCGSubSurf_opensubdiv.c
  60. intern/CCGSubSurf_opensubdiv_converter.c
  61. intern/CCGSubSurf_util.c
  62. intern/DerivedMesh.c
  63. intern/action.c
  64. intern/addon.c
  65. intern/anim.c
  66. intern/anim_sys.c
  67. intern/appdir.c
  68. intern/armature.c
  69. intern/armature_update.c
  70. intern/autoexec.c
  71. intern/blender.c
  72. intern/blender_copybuffer.c
  73. intern/blender_undo.c
  74. intern/blendfile.c
  75. intern/bmfont.c
  76. intern/boids.c
  77. intern/bpath.c
  78. intern/brush.c
  79. intern/bullet.c
  80. intern/bvhutils.c
  81. intern/cachefile.c
  82. intern/camera.c
  83. intern/cdderivedmesh.c
  84. intern/cloth.c
  85. intern/collision.c
  86. intern/colortools.c
  87. intern/constraint.c
  88. intern/context.c
  89. intern/crazyspace.c
  90. intern/curve.c
  91. intern/customdata.c
  92. intern/customdata_file.c
  93. intern/data_transfer.c
  94. intern/deform.c
  95. intern/depsgraph.c
  96. intern/displist.c
  97. intern/dynamicpaint.c
  98. intern/editderivedmesh.c
  99. intern/editmesh.c
  100. intern/editmesh_bvh.c
  101. intern/effect.c
  102. intern/fcurve.c
  103. intern/fluidsim.c
  104. intern/fmodifier.c
  105. intern/font.c
  106. intern/freestyle.c
  107. intern/gpencil.c
  108. intern/group.c
  109. intern/icons.c
  110. intern/idcode.c
  111. intern/idprop.c
  112. intern/image.c
  113. intern/image_gen.c
  114. intern/ipo.c
  115. intern/key.c
  116. intern/lamp.c
  117. intern/lattice.c
  118. intern/library.c
  119. intern/library_idmap.c
  120. intern/library_query.c
  121. intern/library_remap.c
  122. intern/linestyle.c
  123. intern/mask.c
  124. intern/mask_evaluate.c
  125. intern/mask_rasterize.c
  126. intern/material.c
  127. intern/mball.c
  128. intern/mball_tessellate.c
  129. intern/mesh.c
  130. intern/mesh_evaluate.c
  131. intern/mesh_mapping.c
  132. intern/mesh_remap.c
  133. intern/mesh_validate.c
  134. intern/modifier.c
  135. intern/modifiers_bmesh.c
  136. intern/movieclip.c
  137. intern/multires.c
  138. intern/nla.c
  139. intern/node.c
  140. intern/object.c
  141. intern/object_deform.c
  142. intern/object_dupli.c
  143. intern/object_update.c
  144. intern/ocean.c
  145. intern/outliner_treehash.c
  146. intern/packedFile.c
  147. intern/paint.c
  148. intern/particle.c
  149. intern/particle_child.c
  150. intern/particle_distribute.c
  151. intern/particle_system.c
  152. intern/pbvh.c
  153. intern/pbvh_bmesh.c
  154. intern/pointcache.c
  155. intern/property.c
  156. intern/report.c
  157. intern/rigidbody.c
  158. intern/sca.c
  159. intern/scene.c
  160. intern/screen.c
  161. intern/seqcache.c
  162. intern/seqeffects.c
  163. intern/seqmodifier.c
  164. intern/sequencer.c
  165. intern/shrinkwrap.c
  166. intern/sketch.c
  167. intern/smoke.c
  168. intern/softbody.c
  169. intern/sound.c
  170. intern/speaker.c
  171. intern/subsurf_ccg.c
  172. intern/suggestions.c
  173. intern/text.c
  174. intern/texture.c
  175. intern/tracking.c
  176. intern/tracking_auto.c
  177. intern/tracking_detect.c
  178. intern/tracking_plane_tracker.c
  179. intern/tracking_region_tracker.c
  180. intern/tracking_solver.c
  181. intern/tracking_stabilize.c
  182. intern/tracking_util.c
  183. intern/unit.c
  184. intern/world.c
  185. intern/writeavi.c
  186. intern/writeframeserver.c
  187. BKE_DerivedMesh.h
  188. BKE_action.h
  189. BKE_addon.h
  190. BKE_anim.h
  191. BKE_animsys.h
  192. BKE_appdir.h
  193. BKE_armature.h
  194. BKE_autoexec.h
  195. BKE_blender.h
  196. BKE_blender_copybuffer.h
  197. BKE_blender_undo.h
  198. BKE_blender_version.h
  199. BKE_blendfile.h
  200. BKE_bmfont.h
  201. BKE_bmfont_types.h
  202. BKE_boids.h
  203. BKE_bpath.h
  204. BKE_brush.h
  205. BKE_bullet.h
  206. BKE_bvhutils.h
  207. BKE_cachefile.h
  208. BKE_camera.h
  209. BKE_ccg.h
  210. BKE_cdderivedmesh.h
  211. BKE_cloth.h
  212. BKE_collision.h
  213. BKE_colortools.h
  214. BKE_constraint.h
  215. BKE_context.h
  216. BKE_crazyspace.h
  217. BKE_curve.h
  218. BKE_customdata.h
  219. BKE_customdata_file.h
  220. BKE_data_transfer.h
  221. BKE_deform.h
  222. BKE_depsgraph.h
  223. BKE_displist.h
  224. BKE_dynamicpaint.h
  225. BKE_editmesh.h
  226. BKE_editmesh_bvh.h
  227. BKE_effect.h
  228. BKE_fcurve.h
  229. BKE_fluidsim.h
  230. BKE_font.h
  231. BKE_freestyle.h
  232. BKE_global.h
  233. BKE_gpencil.h
  234. BKE_group.h
  235. BKE_icons.h
  236. BKE_idcode.h
  237. BKE_idprop.h
  238. BKE_image.h
  239. BKE_ipo.h
  240. BKE_key.h
  241. BKE_lamp.h
  242. BKE_lattice.h
  243. BKE_library.h
  244. BKE_library_idmap.h
  245. BKE_library_query.h
  246. BKE_library_remap.h
  247. BKE_linestyle.h
  248. BKE_main.h
  249. BKE_mask.h
  250. BKE_material.h
  251. BKE_mball.h
  252. BKE_mball_tessellate.h
  253. BKE_mesh.h
  254. BKE_mesh_mapping.h
  255. BKE_mesh_remap.h
  256. BKE_modifier.h
  257. BKE_movieclip.h
  258. BKE_multires.h
  259. BKE_nla.h
  260. BKE_node.h
  261. BKE_object.h
  262. BKE_object_deform.h
  263. BKE_ocean.h
  264. BKE_outliner_treehash.h
  265. BKE_packedFile.h
  266. BKE_paint.h
  267. BKE_particle.h
  268. BKE_pbvh.h
  269. BKE_pointcache.h
  270. BKE_property.h
  271. BKE_report.h
  272. BKE_rigidbody.h
  273. BKE_sca.h
  274. BKE_scene.h
  275. BKE_screen.h
  276. BKE_sequencer.h
  277. BKE_shrinkwrap.h
  278. BKE_sketch.h
  279. BKE_smoke.h
  280. BKE_softbody.h
  281. BKE_sound.h
  282. BKE_speaker.h
  283. BKE_subsurf.h
  284. BKE_suggestions.h
  285. BKE_text.h
  286. BKE_texture.h
  287. BKE_tracking.h
  288. BKE_unit.h
  289. BKE_utildefines.h
  290. BKE_world.h
  291. BKE_writeavi.h
  292. BKE_writeframeserver.h
  293. depsgraph_private.h
  294. nla_private.h
  295. tracking_private.h
  296. intern/CCGSubSurf.h
  297. intern/CCGSubSurf_inline.h
  298. intern/CCGSubSurf_intern.h
  299. intern/pbvh_intern.h
  300. intern/data_transfer_intern.h
  301. )
  302. if(WITH_BINRELOC)
  303. list(APPEND INC_SYS
  304. ${BINRELOC_INCLUDE_DIRS}
  305. )
  306. add_definitions(-DWITH_BINRELOC)
  307. endif()
  308. add_definitions(${GL_DEFINITIONS})
  309. if(WIN32)
  310. list(APPEND INC
  311. ../../../intern/utfconv
  312. )
  313. endif()
  314. if(WITH_AUDASPACE)
  315. add_definitions(${AUDASPACE_DEFINITIONS})
  316. list(APPEND INC_SYS
  317. ${AUDASPACE_C_INCLUDE_DIRS}
  318. )
  319. endif()
  320. if(WITH_BULLET)
  321. list(APPEND INC_SYS
  322. ${BULLET_INCLUDE_DIRS}
  323. )
  324. list(APPEND INC
  325. ../../../intern/rigidbody
  326. )
  327. add_definitions(-DWITH_BULLET)
  328. endif()
  329. #if(WITH_MOD_CLOTH_ELTOPO)
  330. # list(APPEND INC
  331. # ../../../extern/eltopo
  332. # ../../../extern/eltopo/eltopo3d
  333. # )
  334. # add_definitions(-DWITH_ELTOPO)
  335. #endif()
  336. if(WITH_IMAGE_OPENEXR)
  337. add_definitions(-DWITH_OPENEXR)
  338. endif()
  339. if(WITH_IMAGE_TIFF)
  340. add_definitions(-DWITH_TIFF)
  341. endif()
  342. if(WITH_OPENIMAGEIO)
  343. add_definitions(-DWITH_OPENIMAGEIO)
  344. endif()
  345. if(WITH_IMAGE_OPENJPEG)
  346. add_definitions(-DWITH_OPENJPEG)
  347. endif()
  348. if(WITH_IMAGE_DDS)
  349. add_definitions(-DWITH_DDS)
  350. endif()
  351. if(WITH_IMAGE_CINEON)
  352. add_definitions(-DWITH_CINEON)
  353. endif()
  354. if(WITH_IMAGE_FRAMESERVER)
  355. add_definitions(-DWITH_FRAMESERVER)
  356. endif()
  357. if(WITH_IMAGE_HDR)
  358. add_definitions(-DWITH_HDR)
  359. endif()
  360. if(WITH_CODEC_AVI)
  361. list(APPEND INC
  362. ../avi
  363. )
  364. add_definitions(-DWITH_AVI)
  365. endif()
  366. if(WITH_CODEC_QUICKTIME)
  367. list(APPEND INC
  368. ../quicktime
  369. )
  370. list(APPEND INC_SYS
  371. ${QUICKTIME_INCLUDE_DIRS}
  372. )
  373. add_definitions(-DWITH_QUICKTIME)
  374. endif()
  375. if(WITH_CODEC_FFMPEG)
  376. list(APPEND SRC
  377. intern/writeffmpeg.c
  378. BKE_writeffmpeg.h
  379. )
  380. list(APPEND INC
  381. ../../../intern/ffmpeg
  382. )
  383. list(APPEND INC_SYS
  384. ${FFMPEG_INCLUDE_DIRS}
  385. )
  386. add_definitions(-DWITH_FFMPEG)
  387. remove_strict_flags_file(
  388. intern/writeffmpeg.c
  389. )
  390. endif()
  391. if(WITH_PYTHON)
  392. list(APPEND INC
  393. ../python
  394. )
  395. add_definitions(-DWITH_PYTHON)
  396. if(WITH_PYTHON_SECURITY)
  397. add_definitions(-DWITH_PYTHON_SECURITY)
  398. endif()
  399. if(PYTHON_EXECUTABLE)
  400. get_filename_component(_python_exe_name ${PYTHON_EXECUTABLE} NAME)
  401. add_definitions(-DPYTHON_EXECUTABLE_NAME=${_python_exe_name})
  402. unset(_python_exe_name)
  403. endif()
  404. endif()
  405. if(WITH_MOD_FLUID)
  406. list(APPEND INC
  407. ../../../intern/elbeem/extern
  408. )
  409. add_definitions(-DWITH_MOD_FLUID)
  410. endif()
  411. if(WITH_MOD_SMOKE)
  412. add_definitions(-DWITH_SMOKE)
  413. endif()
  414. if(WITH_MOD_OCEANSIM)
  415. add_definitions(-DWITH_OCEANSIM)
  416. endif()
  417. if(WITH_JACK)
  418. add_definitions(-DWITH_JACK)
  419. endif()
  420. if(WITH_LZO)
  421. if(WITH_SYSTEM_LZO)
  422. list(APPEND INC_SYS
  423. ${LZO_INCLUDE_DIR}
  424. )
  425. add_definitions(-DWITH_SYSTEM_LZO)
  426. else()
  427. list(APPEND INC_SYS
  428. ../../../extern/lzo/minilzo
  429. )
  430. endif()
  431. add_definitions(-DWITH_LZO)
  432. endif()
  433. if(WITH_LZMA)
  434. list(APPEND INC_SYS
  435. ../../../extern/lzma
  436. )
  437. add_definitions(-DWITH_LZMA)
  438. endif()
  439. if(WITH_GAMEENGINE)
  440. list(APPEND INC_SYS
  441. ../../../extern/recastnavigation
  442. )
  443. list(APPEND SRC
  444. intern/navmesh_conversion.c
  445. BKE_navmesh_conversion.h
  446. )
  447. add_definitions(-DWITH_GAMEENGINE)
  448. endif()
  449. if(WITH_LIBMV)
  450. add_definitions(-DWITH_LIBMV)
  451. endif()
  452. if(WITH_FFTW3)
  453. list(APPEND INC_SYS
  454. ${FFTW3_INCLUDE_DIRS}
  455. )
  456. add_definitions(-DFFTW3=1)
  457. endif()
  458. if(WITH_INTERNATIONAL)
  459. add_definitions(-DWITH_INTERNATIONAL)
  460. endif()
  461. if(WITH_FREESTYLE)
  462. add_definitions(-DWITH_FREESTYLE)
  463. endif()
  464. if(WITH_ALEMBIC)
  465. list(APPEND INC
  466. ../alembic
  467. )
  468. add_definitions(-DWITH_ALEMBIC)
  469. endif()
  470. if(WITH_OPENSUBDIV)
  471. add_definitions(-DWITH_OPENSUBDIV)
  472. list(APPEND INC_SYS
  473. ../../../intern/opensubdiv
  474. ${OPENSUBDIV_INCLUDE_DIRS}
  475. )
  476. endif()
  477. if(WITH_OPENVDB)
  478. add_definitions(-DWITH_OPENVDB)
  479. list(APPEND INC
  480. ../../../intern/openvdb
  481. )
  482. if(WITH_OPENVDB_BLOSC)
  483. add_definitions(
  484. -DWITH_OPENVDB_BLOSC
  485. )
  486. endif()
  487. endif()
  488. ## Warnings as errors, this is too strict!
  489. #if(MSVC)
  490. # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
  491. #endif()
  492. if(WITH_LEGACY_DEPSGRAPH)
  493. add_definitions(-DWITH_LEGACY_DEPSGRAPH)
  494. endif()
  495. blender_add_lib(bf_blenkernel "${SRC}" "${INC}" "${INC_SYS}")