Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(225)

Delta Between Two Patch Sets: source/creator/CMakeLists.txt

Issue 5285047: Camera tracking integration Base URL: https://svn.blender.org/svnroot/bf-blender/trunk/blender/
Left Patch Set: Corrected patch set Created 12 years, 5 months ago
Right Patch Set: Updated to tomato rev41255 Created 12 years, 5 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
LEFTRIGHT
1 # -*- mode: cmake; indent-tabs-mode: t; -*-
2 # $Id$
3 # ***** BEGIN GPL LICENSE BLOCK ***** 1 # ***** BEGIN GPL LICENSE BLOCK *****
4 # 2 #
5 # This program is free software; you can redistribute it and/or 3 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License 4 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2 5 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version. 6 # of the License, or (at your option) any later version.
9 # 7 #
10 # This program is distributed in the hope that it will be useful, 8 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
(...skipping 21 matching lines...) Expand all
34 ../blender/blenloader 32 ../blender/blenloader
35 ../blender/editors/include 33 ../blender/editors/include
36 ../blender/makesrna 34 ../blender/makesrna
37 ../blender/imbuf 35 ../blender/imbuf
38 ../blender/render/extern/include 36 ../blender/render/extern/include
39 ../blender/makesdna 37 ../blender/makesdna
40 ../blender/gpu 38 ../blender/gpu
41 ../blender/windowmanager 39 ../blender/windowmanager
42 ) 40 )
43 41
44 if(WITH_CODEC_QUICKTIME) 42 if(WIN32)
45 » add_definitions(-DWITH_QUICKTIME) 43 » blender_include_dirs(../../intern/utfconv)
46 endif()
47
48 if(WITH_IMAGE_OPENEXR)
49 » add_definitions(-DWITH_OPENEXR)
50 endif()
51
52 if(WITH_IMAGE_OPENJPEG)
53 » add_definitions(-DWITH_OPENJPEG)
54 endif()
55
56 if(WITH_IMAGE_TIFF)
57 » add_definitions(-DWITH_TIFF)
58 endif()
59
60 if(WITH_IMAGE_DDS)
61 » add_definitions(-DWITH_DDS)
62 endif()
63
64 if(WITH_IMAGE_CINEON)
65 » add_definitions(-DWITH_CINEON)
66 endif()
67
68 if(WITH_IMAGE_HDR)
69 » add_definitions(-DWITH_HDR)
70 endif() 44 endif()
71 45
72 if(WITH_LIBMV) 46 if(WITH_LIBMV)
73 blender_include_dirs(../../extern/libmv) 47 blender_include_dirs(../../extern/libmv)
74 add_definitions(-DWITH_LIBMV) 48 add_definitions(-DWITH_LIBMV)
49 endif()
50
51 if(WITH_CODEC_FFMPEG)
52 add_definitions(-DWITH_FFMPEG)
75 endif() 53 endif()
76 54
77 if(WITH_PYTHON) 55 if(WITH_PYTHON)
78 blender_include_dirs(../blender/python) 56 blender_include_dirs(../blender/python)
79 add_definitions(-DWITH_PYTHON) 57 add_definitions(-DWITH_PYTHON)
80 58
81 if(WITH_PYTHON_SECURITY) 59 if(WITH_PYTHON_SECURITY)
82 add_definitions(-DWITH_PYTHON_SECURITY) 60 add_definitions(-DWITH_PYTHON_SECURITY)
83 endif() 61 endif()
84 endif() 62 endif()
85 63
86 if(WITH_HEADLESS) 64 if(WITH_HEADLESS)
87 add_definitions(-DWITH_HEADLESS) 65 add_definitions(-DWITH_HEADLESS)
88 endif() 66 endif()
89 67
90 if(WITH_GAMEENGINE) 68 » add_definitions(-DWITH_HDR)
91 » blender_include_dirs(../gameengine/BlenderRoutines)
92
93 » add_definitions(-DWITH_GAMEENGINE)
94 endif() 69 endif()
95 70
96 if(NOT WITH_SDL) 71 if(WITH_PYTHON)
97 add_definitions(-DDISABLE_SDL) 72 blender_include_dirs(../blender/python)
98 endif() 73 add_definitions(-DWITH_PYTHON)
99
100 if(WITH_BINRELOC)
101 add_definitions(-DWITH_BINRELOC)
102 blender_include_dirs(${BINRELOC_INCLUDE_DIRS})
103 endif()
104
105 # Setup the exe sources and buildinfo
106 set(SRC
107 creator.c
108 )
109
110 # MSVC 2010 gives linking errors with the manifest
111 if(WIN32 AND NOT UNIX)
112 string(SUBSTRING ${BLENDER_VERSION} 0 1 bver1)
113 string(SUBSTRING ${BLENDER_VERSION} 2 1 bver2)
114 string(SUBSTRING ${BLENDER_VERSION} 3 1 bver3)
115 if(MINGW)
116 add_definitions(
117 -DWINDRES
118 -DBLEN_VER_RC_STR_M=${BLENDER_VERSION}
119 -DBLEN_VER_RC_1=${bver1}
120 -DBLEN_VER_RC_2=${bver2}
121 -DBLEN_VER_RC_3=${bver3}
122 -DBLEN_VER_RC_4=0
123 )
124 else()
125 add_definitions(
126 -DBLEN_VER_RC_STR=${BLENDER_VERSION}
127 -DBLEN_VER_RC_1=${bver1}
128 -DBLEN_VER_RC_2=${bver2}
129 -DBLEN_VER_RC_3=${bver3}
130 -DBLEN_VER_RC_4=0
131 )
132 endif()
133
134
135 list(APPEND SRC
136 ../icons/winblender.rc
137 )
138 endif()
139
140 if(WITH_BUILDINFO)
141 add_definitions(-DWITH_BUILDINFO)
142 # ---------------------------------------------------------------------- ----
143 # These defines could all be moved into the header below
144 string(REPLACE " " "\ " BUILDINFO_CFLAGS "${CMAKE_C_FLAGS}")
145 string(REPLACE " " "\ " BUILDINFO_CXXFLAGS "${CMAKE_CXX_FLAGS}")
146 string(REPLACE " " "\ " BUILDINFO_LINKFLAGS "${PLATFORM_LINKFLAGS}")
147 add_definitions(
148 # # define in header now, else these get out of date on rebuilds .
149 # -DBUILD_DATE="${BUILD_DATE}"
150 # -DBUILD_TIME="${BUILD_TIME}"
151 # -DBUILD_REV="${BUILD_REV}"
152 -DWITH_BUILDINFO_HEADER # alternative to lines above
153 -DBUILD_PLATFORM="${CMAKE_SYSTEM_NAME}"
154 -DBUILD_TYPE="${CMAKE_BUILD_TYPE}"
155 -DBUILD_CFLAGS="${BUILDINFO_CFLAGS}"
156 -DBUILD_CXXFLAGS="${BUILDINFO_CXXFLAGS}"
157 -DBUILD_LINKFLAGS="${BUILDINFO_LINKFLAGS}"
158 -DBUILD_SYSTEM="CMake"
159 )
160
161 # ---------------------------------------------------------------------- ----
162 # write header for values that change each build
163 # note, generaed file is in build dir's source/creator
164 # except when used as an include path.
165
166 # include the output directory, where the buildinfo.h file is generated
167 include_directories(${CMAKE_BINARY_DIR}/source/creator)
168
169 # a custom target that is always built
170 add_custom_target(buildinfo ALL
171 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h)
172
173 # creates svnheader.h using cmake script
174 add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
175 COMMAND ${CMAKE_COMMAND}
176 -DSOURCE_DIR=${CMAKE_SOURCE_DIR}
177 -P ${CMAKE_SOURCE_DIR}/build_files/cmake/buildinfo.cmake)
178
179 # buildinfo.h is a generated file
180 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
181 PROPERTIES GENERATED TRUE
182 HEADER_FILE_ONLY TRUE)
183
184 # add deps below, after adding blender
185 # -------------- done with header values.
186
187 list(APPEND SRC
188 buildinfo.c
189 )
190 endif()
191
192 # message(STATUS "Configuring blender")
193 if(WITH_PYTHON_MODULE)
194 add_definitions(-DWITH_PYTHON_MODULE)
195
196 # creates ./bin/bpy.so which can be imported as a python module.
197 add_library(blender SHARED ${SRC})
198 set_target_properties(
199 blender
200 PROPERTIES
201 PREFIX ""
202 OUTPUT_NAME bpy
203 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
204 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin # only needed on windows
205 )
206
207 if(WIN32)
208 # python modules use this
209 set_target_properties(
210 blender
211 PROPERTIES
212 SUFFIX ".pyd"
213 )
214 endif()
215
216 else()
217 add_executable(blender ${EXETYPE} ${SRC})
218 endif()
219
220 if(WITH_BUILDINFO)
221 # explicitly say that the executable depends on the buildinfo
222 add_dependencies(blender buildinfo)
223 endif()
224
225 # Post build steps for bundling/packaging.
226
227
228 if(MSVC_IDE)
229 # ${CMAKE_CFG_INTDIR} should replace \${BUILD_TYPE} when using add_comma nd
230 set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
231 elseif(APPLE)
232 set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
233 else()
234 set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH})
235 endif()
236
237
238 # -----------------------------------------------------------------------------
239 # Install Targets
240
241 set(BLENDER_TEXT_FILES
242 ${CMAKE_SOURCE_DIR}/release/text/GPL-license.txt
243 ${CMAKE_SOURCE_DIR}/release/text/Python-license.txt
244 ${CMAKE_SOURCE_DIR}/release/text/copyright.txt
245 ${CMAKE_SOURCE_DIR}/release/text/readme.html
246 )
247
248 if(UNIX AND NOT APPLE)
249
250 if(WITH_INSTALL_PORTABLE)
251 set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
252 else()
253 if(WITH_PYTHON_MODULE)
254 set(TARGETDIR_VER ${PYTHON_LIBPATH}/python${PYTHON_VERSI ON}/site-packages/${BLENDER_VERSION})
255 else()
256 set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/share/blender/ ${BLENDER_VERSION})
257 endif()
258 endif()
259
260 # important to make a clean install each time
261 # else old scripts get loaded.
262 install(
263 CODE
264 "file(REMOVE_RECURSE ${TARGETDIR_VER})"
265 )
266
267 # message after building.
268 add_custom_command(
269 TARGET blender POST_BUILD MAIN_DEPENDENCY blender
270 COMMAND ${CMAKE_COMMAND} -E echo 'now run: \"make install\" to c opy runtime files & scripts to ${TARGETDIR_VER}'
271 )
272
273 # there are a few differences between portable and system install
274 if(WITH_INSTALL_PORTABLE)
275 install(
276 FILES
277 ${CMAKE_SOURCE_DIR}/release/freedesktop/blender. desktop
278 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/sc alable/apps/blender.svg
279 ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1
280 DESTINATION ${TARGETDIR}
281 )
282
283 install(
284 PROGRAMS
285 ${CMAKE_SOURCE_DIR}/release/bin/blender-thumbnailer.py
286 DESTINATION ${TARGETDIR}
287 )
288
289 install(
290 FILES ${BLENDER_TEXT_FILES}
291 DESTINATION ${TARGETDIR}
292 )
293
294 else()
295 # main blender binary
296 if(WITH_PYTHON_MODULE)
297 install(
298 TARGETS blender
299 LIBRARY
300 DESTINATION ${PYTHON_LIBPATH}/python${PYTHON_VER SION}/site-packages
301 )
302 else()
303 install(
304 PROGRAMS ${TARGETDIR}/blender
305 DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
306 )
307 endif()
308
309
310 if(WITH_GAMEENGINE AND WITH_PLAYER)
311 install(
312 PROGRAMS ${TARGETDIR}/blenderplayer
313 DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
314 )
315 endif()
316
317 # misc files
318 install(
319 FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/blender.de sktop
320 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications
321 )
322 install(
323 DIRECTORY
324 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/16 x16
325 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/22 x22
326 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/24 x24
327 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/32 x32
328 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/48 x48
329 ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/25 6x256
330 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor
331 PATTERN ".svn" EXCLUDE
332 PATTERN "*.svg" EXCLUDE
333 )
334 install(
335 FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scal able/apps/blender.svg
336 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/ scalable/apps
337 )
338 install(
339 PROGRAMS ${CMAKE_SOURCE_DIR}/release/bin/blender-thumbna iler.py
340 DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
341 )
342 install(
343 FILES ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1
344 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1
345 )
346 install(
347 FILES ${BLENDER_TEXT_FILES}
348 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/blender
349 )
350 endif()
351
352 install(
353 FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
354 DESTINATION ${TARGETDIR_VER}
355 )
356
357 if(WITH_INTERNATIONAL)
358 install(
359 DIRECTORY
360 ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
361 ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts
362 DESTINATION ${TARGETDIR_VER}/datafiles
363 PATTERN ".svn" EXCLUDE
364 )
365 endif()
366
367 # plugins in blender 2.5 don't work at the moment.
368 #
369 # install(
370 # DIRECTORY ${CMAKE_SOURCE_DIR}/release/plugins
371 # DESTINATION ${TARGETDIR_VER}
372 # PATTERN ".svn" EXCLUDE
373 # )
374
375 if(WITH_PYTHON)
376 # install(CODE "message(\"copying blender scripts...\")")
377 install(
378 DIRECTORY ${CMAKE_SOURCE_DIR}/release/scripts
379 DESTINATION ${TARGETDIR_VER}
380 PATTERN ".svn" EXCLUDE
381 PATTERN "__pycache__" EXCLUDE
382 )
383
384 if(WITH_PYTHON_INSTALL)
385 # Copy the systems python into the install directory
386 # Scons copy in tools/Blender.py
387 # install(CODE "message(\"copying a subset of the system s python...\")")
388 install(
389 DIRECTORY ${PYTHON_LIBPATH}/python${PYTHON_VERSI ON}
390 DESTINATION ${TARGETDIR_VER}/python/lib
391 PATTERN ".svn" EXCLUDE
392 PATTERN "__pycache__" EXCLUDE # * any cache *
393 PATTERN "distutils" EXCLUDE # ./ distutils
394 PATTERN "lib2to3" EXCLUDE # ./ lib2to3
395 PATTERN "config" EXCLUDE # ./ config
396 PATTERN "config-*" EXCLUDE # ./ config-*
397 PATTERN "site-packages/*" EXCLUDE # ./ site-packages/*
398 PATTERN "tkinter" EXCLUDE # ./ tkinter
399 PATTERN "lib-dynload/_tkinter.*" EXCLUDE # ./ lib-dynload/_tkinter.co
400 PATTERN "idlelib" EXCLUDE # ./ idlelib
401 PATTERN "test" EXCLUDE # ./ test
402 PATTERN "turtledemo" EXCLUDE # ./ turtledemo
403 PATTERN "turtle.py" EXCLUDE # ./turtle.py
404 )
405
406 # # doesnt work, todo
407 # install(CODE "execute_process(COMMAND find ${TARGETDIR }/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
408 endif()
409 endif()
410 elseif(WIN32)
411
412 set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
413
414 install( # same as linux!, deduplicate
415 CODE
416 "file(REMOVE_RECURSE ${TARGETDIR_VER})"
417 )
418
419 install( # same as linux!, deduplicate
420 FILES ${BLENDER_TEXT_FILES}
421 DESTINATION ${TARGETDIR}
422 )
423
424 install( # same as linux!, deduplicate
425 FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
426 DESTINATION ${TARGETDIR_VER}
427 )
428
429 if(WITH_INTERNATIONAL) # same as linux!, deduplicate
430 install(
431 DIRECTORY
432 ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
433 ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts
434 DESTINATION ${TARGETDIR_VER}/datafiles
435 PATTERN ".svn" EXCLUDE
436 )
437
438 install(
439 FILES ${LIBDIR}/gettext/lib/gnu_gettext.dll
440 DESTINATION ${TARGETDIR}
441 )
442
443 if(NOT CMAKE_CL_64)
444 install(
445 FILES ${LIBDIR}/iconv/lib/iconv.dll
446 DESTINATION ${TARGETDIR}
447 )
448 endif()
449 endif()
450
451 # plugins in blender 2.5 don't work at the moment.
452 #
453 # install(
454 # DIRECTORY ${CMAKE_SOURCE_DIR}/release/plugins
455 # DESTINATION ${TARGETDIR_VER}
456 # PATTERN ".svn" EXCLUDE
457 # )
458
459 if(WITH_PYTHON)
460 # install(CODE "message(\"copying blender scripts...\")")
461 install( # same as linux!, deduplicate
462 DIRECTORY ${CMAKE_SOURCE_DIR}/release/scripts
463 DESTINATION ${TARGETDIR_VER}
464 PATTERN ".svn" EXCLUDE
465 PATTERN "__pycache__" EXCLUDE
466 )
467
468 install(
469 FILES ${LIBDIR}/python/lib/python32.dll
470 DESTINATION ${TARGETDIR}
471 CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
472 )
473
474 install(
475 FILES ${LIBDIR}/python/lib/python32_d.dll
476 DESTINATION ${TARGETDIR}
477 CONFIGURATIONS Debug
478 )
479
480 if(WITH_PYTHON_INSTALL)
481 # note, as far as python is concerned 'RelWithDebInfo' i s not debug since its without debug flags.
482
483 # create the directory in multiple steps, so it actually gets created when it doesn't exist yet
484 install(
485 CODE
486 "
487 message(\"creating ${TARGETDIR_VER}/python/lib\" )
488 file(MAKE_DIRECTORY \"${TARGETDIR_VER}/python\")
489 file(MAKE_DIRECTORY \"${TARGETDIR_VER}/python/li b\")
490 message(\"done creating dir\")
491 "
492 )
493
494 install(
495 CODE
496 "
497 if(\"\${CMAKE_INSTALL_CONFIG_NAME}\" STREQUAL \" Debug\")
498 execute_process(COMMAND \"${CMAKE_COMMAN D}\" -E chdir \"${TARGETDIR_VER}/python/lib\"
499 \"${CMAKE_COMMAND}\" -E tar xzfv \"${LIBDIR}/release/python32_d.tar.gz\")
500 else()
501 execute_process(COMMAND \"${CMAKE_COMMAN D}\" -E chdir \"${TARGETDIR_VER}/python/lib\"
502 \"${CMAKE_COMMAND}\" -E tar xzfv \"${LIBDIR}/release/python32.tar.gz\")
503 endif()
504 "
505 )
506
507 # doesnt work, todo
508 # install(CODE "execute_process(COMMAND find ${TARGETDIR }/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
509 endif()
510 endif()
511
512 if(CMAKE_CL_64)
513 # gettext and png are statically linked on win64
514 install(
515 FILES ${LIBDIR}/zlib/lib/zlib.dll
516 DESTINATION ${TARGETDIR}
517 )
518 else()
519 install(
520 FILES
521 ${LIBDIR}/png/lib/libpng.dll
522 ${LIBDIR}/zlib/lib/zlib.dll
523 DESTINATION ${TARGETDIR}
524 )
525 endif()
526
527 if(MSVC)
528 install(
529 FILES ${LIBDIR}/pthreads/lib/pthreadVC2.dll
530 DESTINATION ${TARGETDIR}
531 )
532 else()
533 install(
534 FILES ${LIBDIR}/pthreads/lib/pthreadGC2.dll
535 DESTINATION ${TARGETDIR}
536 )
537 endif()
538
539 if(WITH_CODEC_FFMPEG)
540 install(
541 FILES
542 ${LIBDIR}/ffmpeg/lib/avcodec-53.dll
543 ${LIBDIR}/ffmpeg/lib/avformat-53.dll
544 ${LIBDIR}/ffmpeg/lib/avdevice-53.dll
545 ${LIBDIR}/ffmpeg/lib/avutil-51.dll
546 ${LIBDIR}/ffmpeg/lib/swscale-2.dll
547 DESTINATION ${TARGETDIR}
548 )
549
550 endif()
551
552 if(WITH_CODEC_SNDFILE)
553 install(
554 FILES ${LIBDIR}/sndfile/lib/libsndfile-1.dll
555 DESTINATION ${TARGETDIR}
556 )
557 endif()
558
559 if(WITH_OPENAL)
560 install(
561 FILES
562 ${LIBDIR}/openal/lib/OpenAL32.dll
563 ${LIBDIR}/openal/lib/wrap_oal.dll
564 DESTINATION ${TARGETDIR}
565 )
566 endif()
567
568 if(WITH_SDL)
569 if(NOT CMAKE_CL_64)
570 install(
571 FILES ${LIBDIR}/sdl/lib/SDL.dll
572 DESTINATION ${TARGETDIR}
573 )
574 endif()
575 endif()
576
577 if(NOT CMAKE_CL_64)
578 install(
579 FILES ${LIBDIR}/thumbhandler/lib/BlendThumb.dll
580 DESTINATION ${TARGETDIR}
581 )
582 endif()
583 ················
584 install( # x86 builds can run on x64 Windows, so this is required at all times
585 FILES ${LIBDIR}/thumbhandler/lib/BlendThumb64.dll
586 DESTINATION ${TARGETDIR}
587 )·······
588
589 elseif(APPLE)
590 set(SOURCEDIR ${CMAKE_SOURCE_DIR}/source/darwin/blender.app)
591 set(SOURCEINFO ${SOURCEDIR}/Contents/Info.plist)
592 set(TARGETDIR_VER ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERS ION})
593
594 # setup Info.plist
595 execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BLENDER_DATE OU TPUT_STRIP_TRAILING_WHITESPACE)
596
597 set_target_properties(blender PROPERTIES
598 MACOSX_BUNDLE_INFO_PLIST ${SOURCEINFO}
599 MACOSX_BUNDLE_SHORT_VERSION_STRING ${BLENDER_VERSION}
600 MACOSX_BUNDLE_LONG_VERSION_STRING "${BLENDER_VERSION} ${BLENDER_ DATE}")
601
602 # important to make a clean install each time else old scripts get load ed.
603 install(
604 CODE
605 "file(REMOVE_RECURSE ${TARGETDIR_VER})"
606 )
607
608 # message after building.
609 add_custom_command(
610 TARGET blender POST_BUILD MAIN_DEPENDENCY blender
611 COMMAND ${CMAKE_COMMAND} -E echo 'now run: \"make install\" to c opy runtime files & scripts to ${TARGETDIR_VER}'
612 )
613
614 # handy install macro to exclude files, we use \$ escape for the "to"
615 # argument when calling so ${BUILD_TYPE} does not get expanded
616 macro(install_dir from to)
617 install(
618 DIRECTORY ${from}
619 DESTINATION ${to}
620 PATTERN ".svn" EXCLUDE
621 PATTERN "*.pyc" EXCLUDE
622 PATTERN "*.pyo" EXCLUDE
623 PATTERN "*.orig" EXCLUDE
624 PATTERN "*.rej" EXCLUDE
625 PATTERN "__pycache__" EXCLUDE
626 PATTERN "__MACOSX" EXCLUDE
627 PATTERN ".DS_Store" EXCLUDE
628 )
629 endmacro()
630
631 # install release and app files
632 install(
633 FILES ${BLENDER_TEXT_FILES}
634 DESTINATION ${TARGETDIR}
635 )
636
637 install(
638 FILES ${SOURCEDIR}/Contents/PkgInfo
639 DESTINATION ${TARGETDIR}/blender.app/Contents
640 )
641
642 install_dir(
643 ${SOURCEDIR}/Contents/Resources
644 \${TARGETDIR}/blender.app/Contents/
645 )
646
647 install(
648 FILES ${CMAKE_SOURCE_DIR}/release/bin/.blender/.bfont.ttf
649 DESTINATION ${TARGETDIR_VER}
650 )
651
652 # localization
653 if(WITH_INTERNATIONAL)
654 install(
655 DIRECTORY
656 ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
657 ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts
658 DESTINATION ${TARGETDIR_VER}/datafiles
659 PATTERN ".svn" EXCLUDE
660 )
661 endif()
662
663 # python
664 if(WITH_PYTHON)
665 # the python zip is first extract as part of the build process,
666 # and then later installed as part of make install. this is much
667 # quicker, and means we can easily exclude files on copy
668 add_custom_target(
669 extractpyzip
670 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/python)
671
672 set(PYTHON_ZIP "python_${CMAKE_OSX_ARCHITECTURES}.zip")
673
674 add_custom_command(
675 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/python
676 COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/python/
677 COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/python/
678 COMMAND unzip -q ${LIBDIR}/release/${PYTHON_ZIP} -d ${CM AKE_CURRENT_BINARY_DIR}/python/
679 DEPENDS ${LIBDIR}/release/${PYTHON_ZIP})
680
681 add_dependencies(blender extractpyzip)
682
683 # copy extracted python files
684 install_dir(
685 ${CMAKE_CURRENT_BINARY_DIR}/python
686 \${TARGETDIR_VER}
687 )
688
689 # copy scripts
690 install_dir(
691 ${CMAKE_SOURCE_DIR}/release/scripts
692 \${TARGETDIR_VER}
693 )
694 endif()
695
696 # install blenderplayer bundle - copy of blender.app above. re-using mac ros et al
697 # note we are using OSX Bundle as base and copying Blender dummy bundle on top of it
698 if(WITH_GAMEENGINE AND WITH_PLAYER)
699 set(PLAYER_SOURCEDIR ${CMAKE_SOURCE_DIR}/source/darwin/blenderpl ayer.app)
700 set(PLAYER_SOURCEINFO ${PLAYER_SOURCEDIR}/Contents/Info.plist)
701 set(PLAYER_TARGETDIR_VER ${TARGETDIR}/blenderplayer.app/Contents /MacOS/${BLENDER_VERSION})
702
703
704 # important to make a clean install each time else old scripts get loaded.
705 install(
706 CODE
707 "file(REMOVE_RECURSE ${PLAYER_TARGETDIR_VER})"
708 )
709
710 install(
711 FILES ${PLAYER_SOURCEDIR}/Contents/PkgInfo
712 DESTINATION ${TARGETDIR}/blenderplayer.app/Contents
713 )
714
715 install_dir(
716 ${PLAYER_SOURCEDIR}/Contents/Resources
717 \${TARGETDIR}/blenderplayer.app/Contents/
718 )
719
720 # python
721 if(WITH_PYTHON)
722 add_custom_command(
723 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/python
724 COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/pytho n/
725 COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/python /
726 COMMAND unzip -q ${LIBDIR}/release/${PYTHON_ZIP} -d ${CMAKE_CURRENT_BINARY_DIR}/python/
727 DEPENDS ${LIBDIR}/release/${PYTHON_ZIP})
728
729 # copy extracted python files
730 install_dir(
731 ${CMAKE_CURRENT_BINARY_DIR}/python
732 \${PLAYER_TARGETDIR_VER}
733 )
734 endif()
735
736 endif()
737 endif()
738
739 unset(BLENDER_TEXT_FILES)
740
741
742 # -----------------------------------------------------------------------------
743 # Setup link libs
744
745 add_dependencies(blender makesdna)
746
747 get_property(BLENDER_LINK_LIBS GLOBAL PROPERTY BLENDER_LINK_LIBS)
748
749 set(BLENDER_LINK_LIBS
750 ${BLENDER_LINK_LIBS}
751 bf_windowmanager
752 bf_render
753 )
754
755 if(WITH_MOD_FLUID)
756 list(APPEND BLENDER_LINK_LIBS bf_intern_elbeem)
757 endif()
758
759 #if(UNIX)
760 # Sort libraries
761 set(BLENDER_SORTED_LIBS
762 bf_windowmanager
763
764 bf_editor_space_api
765 bf_editor_space_action
766 bf_editor_space_buttons
767 bf_editor_space_console
768 bf_editor_space_file
769 bf_editor_space_graph
770 bf_editor_space_image
771 bf_editor_space_info
772 bf_editor_space_logic
773 bf_editor_space_nla
774 bf_editor_space_node
775 bf_editor_space_outliner
776 bf_editor_space_script
777 bf_editor_space_sequencer
778 bf_editor_space_sound
779 bf_editor_space_time
780 bf_editor_space_userpref
781 bf_editor_space_view3d
782 bf_editor_space_clip
783
784 bf_editor_text
785 bf_editor_transform
786 bf_editor_util
787 bf_editor_uvedit
788 bf_editor_curve
789 bf_editor_armature
790 bf_editor_gpencil
791 bf_editor_interface
792 bf_editor_mesh
793 bf_editor_metaball
794 bf_editor_object
795 bf_editor_physics
796 bf_editor_render
797 bf_editor_screen
798 bf_editor_sculpt_paint
799 bf_editor_sound
800 bf_editor_animation
801 bf_editor_datafiles
802
803 bf_render
804 bf_intern_opennl
805 bf_python
806 bf_python_ext
807 bf_python_mathutils
808 bf_ikplugin
809 bf_modifiers
810 bf_blenkernel
811 bf_nodes
812 bf_gpu
813 bf_blenloader
814 bf_blenlib
815 bf_intern_ghost
816 bf_intern_string
817 bf_blenpluginapi
818 bf_imbuf
819 bf_avi
820 bf_imbuf_cineon
821 bf_imbuf_openexr
822 bf_imbuf_dds
823 bf_collada
824 bf_intern_bsp
825 bf_intern_bop
826 bf_intern_decimate
827 bf_intern_elbeem
828 bf_intern_ik
829 bf_intern_memutil
830 bf_intern_guardedalloc
831 bf_intern_ctr
832 ge_blen_routines
833 ge_converter
834 ge_phys_dummy
835 ge_phys_bullet
836 bf_intern_smoke
837 extern_minilzo
838 extern_lzma
839 ge_logic_ketsji
840 extern_recastnavigation
841 ge_phys_common
842 ge_logic
843 ge_rasterizer
844 ge_oglrasterizer
845 ge_logic_expressions
846 ge_scenegraph
847 ge_logic_network
848 ge_logic_ngnetwork
849 extern_bullet
850 ge_logic_loopbacknetwork
851 bf_intern_moto
852 extern_openjpeg
853 extern_redcode
854 ge_videotex
855 bf_rna
856 bf_dna
857 bf_blenfont
858 bf_intern_audaspace
859 bf_intern_mikktspace
860 )
861
862 if(WITH_LIBMV)
863 list(APPEND BLENDER_SORTED_LIBS extern_libmv)
864 endif()
865
866 if(WITH_MOD_CLOTH_ELTOPO)
867 list(APPEND BLENDER_SORTED_LIBS extern_eltopo)
868 endif()
869
870 if(WITH_BUILTIN_GLEW)
871 list(APPEND BLENDER_SORTED_LIBS extern_glew)
872 endif()
873
874 if(WITH_BINRELOC)
875 list(APPEND BLENDER_SORTED_LIBS extern_binreloc)
876 endif()
877
878 if(WITH_CXX_GUARDEDALLOC)
879 list(APPEND BLENDER_SORTED_LIBS bf_intern_guardedalloc_cpp)
880 endif()
881
882 if(WITH_IK_ITASC)
883 list(APPEND BLENDER_SORTED_LIBS bf_intern_itasc)
884 endif()
885
886 if(WITH_CODEC_QUICKTIME)
887 list(APPEND BLENDER_SORTED_LIBS bf_quicktime)
888 endif()
889
890 foreach(SORTLIB ${BLENDER_SORTED_LIBS})
891 set(REMLIB ${SORTLIB})
892 foreach(SEARCHLIB ${BLENDER_LINK_LIBS})
893 if(${SEARCHLIB} STREQUAL ${SORTLIB})
894 set(REMLIB "")
895 endif()
896 endforeach()
897 if(REMLIB)
898 # message(STATUS "Removing library ${REMLIB} from blende r linking because: not configured")
899 list(APPEND REM_MSG ${REMLIB})
900 list(REMOVE_ITEM BLENDER_SORTED_LIBS ${REMLIB})
901 endif()
902 endforeach()
903 if(REM_MSG)
904 list(SORT REM_MSG)
905 message(STATUS "Blender Skipping: (${REM_MSG})")
906 endif()
907 target_link_libraries(blender ${BLENDER_SORTED_LIBS})
908
909 unset(SEARCHLIB)
910 unset(SORTLIB)
911 unset(REMLIB)
912 unset(REM_MSG)
913
914 #else()
915 # target_link_libraries(blender ${BLENDER_LINK_LIBS})
916 #endif()
917
918 setup_liblinks(blender)
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b