1
# ***** BEGIN GPL LICENSE BLOCK *****
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.
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.
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.
17
# The Original Code is Copyright (C) 2006, Blender Foundation
18
# All rights reserved.
20
# The Original Code is: all of this file.
22
# Contributor(s): Jacques Beaurain.
24
# ***** END GPL LICENSE BLOCK *****
29
../../intern/guardedalloc
33
../blender/editors/include
36
../blender/render/extern/include
39
../blender/windowmanager
43
blender_include_dirs(../../intern/utfconv)
47
blender_include_dirs(../../extern/libmv)
48
add_definitions(-DWITH_LIBMV)
52
add_definitions(-DWITH_FFMPEG)
56
blender_include_dirs(../blender/python)
57
add_definitions(-DWITH_PYTHON)
59
if(WITH_PYTHON_SECURITY)
60
add_definitions(-DWITH_PYTHON_SECURITY)
65
add_definitions(-DWITH_HEADLESS)
69
blender_include_dirs(../gameengine/BlenderRoutines)
71
add_definitions(-DWITH_GAMEENGINE)
75
add_definitions(-DWITH_SDL)
79
add_definitions(-DWITH_BINRELOC)
80
blender_include_dirs(${BINRELOC_INCLUDE_DIRS})
83
# Setup the exe sources and buildinfo
88
# MSVC 2010 gives linking errors with the manifest
89
if(WIN32 AND NOT UNIX)
90
string(SUBSTRING ${BLENDER_VERSION} 0 1 bver1)
91
string(SUBSTRING ${BLENDER_VERSION} 2 1 bver2)
92
string(SUBSTRING ${BLENDER_VERSION} 3 1 bver3)
96
-DBLEN_VER_RC_STR_M=${BLENDER_VERSION}
97
-DBLEN_VER_RC_1=${bver1}
98
-DBLEN_VER_RC_2=${bver2}
99
-DBLEN_VER_RC_3=${bver3}
104
-DBLEN_VER_RC_STR=${BLENDER_VERSION}
105
-DBLEN_VER_RC_1=${bver1}
106
-DBLEN_VER_RC_2=${bver2}
107
-DBLEN_VER_RC_3=${bver3}
114
../icons/winblender.rc
119
add_definitions(-DWITH_BUILDINFO)
120
# --------------------------------------------------------------------------
121
# These defines could all be moved into the header below
122
string(REPLACE " " "\ " BUILDINFO_CFLAGS "${CMAKE_C_FLAGS}")
123
string(REPLACE " " "\ " BUILDINFO_CXXFLAGS "${CMAKE_CXX_FLAGS}")
124
string(REPLACE " " "\ " BUILDINFO_LINKFLAGS "${PLATFORM_LINKFLAGS}")
126
# # define in header now, else these get out of date on rebuilds.
127
# -DBUILD_DATE="${BUILD_DATE}"
128
# -DBUILD_TIME="${BUILD_TIME}"
129
# -DBUILD_REV="${BUILD_REV}"
130
-DWITH_BUILDINFO_HEADER # alternative to lines above
131
-DBUILD_PLATFORM="${CMAKE_SYSTEM_NAME}"
132
-DBUILD_TYPE="${CMAKE_BUILD_TYPE}"
133
-DBUILD_CFLAGS="${BUILDINFO_CFLAGS}"
134
-DBUILD_CXXFLAGS="${BUILDINFO_CXXFLAGS}"
135
-DBUILD_LINKFLAGS="${BUILDINFO_LINKFLAGS}"
136
-DBUILD_SYSTEM="CMake"
139
# --------------------------------------------------------------------------
140
# write header for values that change each build
141
# note, generaed file is in build dir's source/creator
142
# except when used as an include path.
144
# include the output directory, where the buildinfo.h file is generated
145
include_directories(${CMAKE_BINARY_DIR}/source/creator)
147
# a custom target that is always built
148
add_custom_target(buildinfo ALL
149
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h)
151
# creates svnheader.h using cmake script
152
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
153
COMMAND ${CMAKE_COMMAND}
154
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
155
-P ${CMAKE_SOURCE_DIR}/build_files/cmake/buildinfo.cmake)
157
# buildinfo.h is a generated file
158
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
159
PROPERTIES GENERATED TRUE
160
HEADER_FILE_ONLY TRUE)
162
# add deps below, after adding blender
163
# -------------- done with header values.
170
# message(STATUS "Configuring blender")
171
if(WITH_PYTHON_MODULE)
172
add_definitions(-DWITH_PYTHON_MODULE)
174
# creates ./bin/bpy.so which can be imported as a python module.
176
# note that 'SHARED' works on Linux and Windows,
177
# but not OSX which _must_ be 'MODULE'
178
add_library(blender MODULE ${SRC})
179
set_target_properties(
184
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
185
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin # only needed on windows
189
set_target_properties(
192
LINK_FLAGS_RELEASE "${PLATFORM_LINKFLAGS}"
193
LINK_FLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG}"
198
# python modules use this
199
set_target_properties(
207
add_executable(blender ${EXETYPE} ${SRC})
211
# explicitly say that the executable depends on the buildinfo
212
add_dependencies(blender buildinfo)
215
# Post build steps for bundling/packaging.
219
# ${CMAKE_CFG_INTDIR} should replace \${BUILD_TYPE} when using add_command
220
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
222
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE})
224
set(TARGETDIR ${EXECUTABLE_OUTPUT_PATH})
227
set(BLENDER_TEXT_FILES
228
${CMAKE_SOURCE_DIR}/release/text/copyright.txt
229
${CMAKE_SOURCE_DIR}/release/text/readme.html
233
# -----------------------------------------------------------------------------
234
# Platform Specific Var: TARGETDIR_VER
236
if(UNIX AND NOT APPLE)
237
if(WITH_INSTALL_PORTABLE)
238
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
240
if(WITH_PYTHON_MODULE)
241
set(TARGETDIR_VER ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${BLENDER_VERSION})
243
set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX}/share/blender/${BLENDER_VERSION})
248
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
251
if(WITH_PYTHON_MODULE)
252
set(TARGETDIR_VER ${TARGETDIR}/${BLENDER_VERSION})
254
set(TARGETDIR_VER ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION})
260
# -----------------------------------------------------------------------------
261
# Install Targets (Generic, All Platforms)
264
# important to make a clean install each time, else old scripts get loaded.
267
"file(REMOVE_RECURSE ${TARGETDIR_VER})"
271
# install(CODE "message(\"copying blender scripts...\")")
273
# exclude addons_contrib if release
274
if("${BLENDER_VERSION_CYCLE}" STREQUAL "release")
275
set(ADDON_EXCLUDE_CONDITIONAL "addons_contrib/*")
277
set(ADDON_EXCLUDE_CONDITIONAL "_addons_contrib/*") # dummy, wont do anything
281
DIRECTORY ${CMAKE_SOURCE_DIR}/release/scripts/
282
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/blender/scripts/
283
PATTERN ".svn" EXCLUDE
284
PATTERN "__pycache__" EXCLUDE
285
PATTERN "${ADDON_EXCLUDE_CONDITIONAL}" EXCLUDE
288
unset(ADDON_EXCLUDE_CONDITIONAL)
292
if(WITH_INTERNATIONAL)
295
${CMAKE_SOURCE_DIR}/release/datafiles/locale/
296
${CMAKE_SOURCE_DIR}/release/datafiles/fonts
297
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/locale
298
PATTERN ".svn" EXCLUDE
305
DIRECTORY ${CMAKE_SOURCE_DIR}/release/datafiles/colormanagement
306
DESTINATION ${TARGETDIR_VER}/datafiles
307
PATTERN ".svn" EXCLUDE
311
# helpful tip when using make
312
if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles.*")
313
# message after building.
315
TARGET blender POST_BUILD MAIN_DEPENDENCY blender
316
COMMAND ${CMAKE_COMMAND} -E echo 'now run: \"make install\" to copy runtime files and scripts to ${TARGETDIR_VER}'
321
# -----------------------------------------------------------------------------
322
# Install Targets (Platform Specific)
324
if(UNIX AND NOT APPLE)
326
# there are a few differences between portable and system install
327
if(WITH_INSTALL_PORTABLE)
330
${CMAKE_SOURCE_DIR}/release/freedesktop/blender.desktop
331
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scalable/apps/blender.svg
332
${CMAKE_SOURCE_DIR}/doc/manpage/blender.1
333
${CMAKE_SOURCE_DIR}/doc/manpage/blenderplayer.1
334
DESTINATION ${TARGETDIR}
339
${CMAKE_SOURCE_DIR}/release/bin/blender-thumbnailer.py
340
DESTINATION ${TARGETDIR}
344
FILES ${BLENDER_TEXT_FILES}
345
DESTINATION ${TARGETDIR}
349
# main blender binary
350
if(WITH_PYTHON_MODULE)
354
DESTINATION ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages
358
PROGRAMS ${TARGETDIR}/blender
359
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
364
if(WITH_GAMEENGINE AND WITH_PLAYER)
366
PROGRAMS ${TARGETDIR}/blenderplayer
367
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
373
FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/blender.desktop
374
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications
378
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/16x16
379
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/22x22
380
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/24x24
381
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/32x32
382
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/48x48
383
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/256x256
384
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor
385
PATTERN ".svn" EXCLUDE
386
PATTERN "*.svg" EXCLUDE
389
FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scalable/apps/blender.svg
390
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps
393
PROGRAMS ${CMAKE_SOURCE_DIR}/release/bin/blender-thumbnailer.py
394
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/blender/scripts
398
${CMAKE_SOURCE_DIR}/doc/manpage/blender.1
399
${CMAKE_SOURCE_DIR}/doc/manpage/blenderplayer.1
400
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1
403
FILES ${BLENDER_TEXT_FILES}
404
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/blender
409
if(WITH_PYTHON_INSTALL)
410
# on some platforms (like openSUSE) Python is linked
411
# to be used from lib64 folder.
412
# determine this from Python's libraries path
413
if(${PYTHON_LIBPATH} MATCHES "lib64$")
414
set(_target_LIB "lib64")
416
set(_target_LIB "lib")
419
# Copy the systems python into the install directory
420
# Scons copy in tools/Blender.py
421
# install(CODE "message(\"copying a subset of the systems python...\")")
423
DIRECTORY ${PYTHON_LIBPATH}/python${PYTHON_VERSION}
424
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}
425
PATTERN ".svn" EXCLUDE
426
PATTERN "__pycache__" EXCLUDE # * any cache *
427
PATTERN "distutils" EXCLUDE # ./distutils
428
PATTERN "lib2to3" EXCLUDE # ./lib2to3
429
PATTERN "config" EXCLUDE # ./config
430
PATTERN "config-*" EXCLUDE # ./config-*
431
PATTERN "site-packages/*" EXCLUDE # ./site-packages/*
432
PATTERN "tkinter" EXCLUDE # ./tkinter
433
PATTERN "lib-dynload/_tkinter.*" EXCLUDE # ./lib-dynload/_tkinter.co
434
PATTERN "idlelib" EXCLUDE # ./idlelib
435
PATTERN "test" EXCLUDE # ./test
436
PATTERN "turtledemo" EXCLUDE # ./turtledemo
437
PATTERN "turtle.py" EXCLUDE # ./turtle.py
440
# # doesnt work, todo
441
# install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
443
if(WITH_PYTHON_INSTALL_NUMPY)
445
DIRECTORY ${PYTHON_NUMPY_PATH}/numpy
446
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}/python${PYTHON_VERSION}/site-packages
447
PATTERN ".svn" EXCLUDE
448
PATTERN "__pycache__" EXCLUDE # * any cache *
449
PATTERN "*.pyc" EXCLUDE # * any cache *
450
PATTERN "*.pyo" EXCLUDE # * any cache *
451
PATTERN "distutils" EXCLUDE # ./distutils
452
PATTERN "oldnumeric" EXCLUDE # ./oldnumeric
453
PATTERN "doc" EXCLUDE # ./doc
454
PATTERN "tests" EXCLUDE # ./tests
455
PATTERN "f2py" EXCLUDE # ./f2py - fortran/python interface code, not fun for blender devs.
456
PATTERN "include" EXCLUDE # include dirs all over, we wont use NumPy/CAPI
457
PATTERN "*.h" EXCLUDE # some includes are not in include dirs
458
PATTERN "*.a" EXCLUDE # ./core/lib/libnpymath.a - for linking, we dont need.
469
FILES ${BLENDER_TEXT_FILES}
470
DESTINATION ${TARGETDIR}
474
set_lib_path(PYLIB "python")
476
STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
479
FILES ${PYLIB}/lib/python${_PYTHON_VERSION_NO_DOTS}.dll
480
DESTINATION ${TARGETDIR}
481
CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
485
FILES ${PYLIB}/lib/python${_PYTHON_VERSION_NO_DOTS}_d.dll
486
DESTINATION ${TARGETDIR}
490
if(WITH_PYTHON_INSTALL)
491
# note, as far as python is concerned 'RelWithDebInfo' is not debug since its without debug flags.
493
# create the directory in multiple steps, so it actually gets created when it doesn't exist yet
497
message(\"creating ${TARGETDIR_VER}/python/lib\")
498
file(MAKE_DIRECTORY \"${TARGETDIR_VER}/python\")
499
file(MAKE_DIRECTORY \"${TARGETDIR_VER}/python/lib\")
500
message(\"done creating dir\")
507
if(\"\${CMAKE_INSTALL_CONFIG_NAME}\" STREQUAL \"Debug\")
508
execute_process(COMMAND \"${CMAKE_COMMAND}\" -E chdir \"${TARGETDIR_VER}/python/lib\"
509
\"${CMAKE_COMMAND}\" -E tar xzfv \"${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}_d.tar.gz\")
511
execute_process(COMMAND \"${CMAKE_COMMAND}\" -E chdir \"${TARGETDIR_VER}/python/lib\"
512
\"${CMAKE_COMMAND}\" -E tar xzfv \"${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}.tar.gz\")
518
# install(CODE "execute_process(COMMAND find ${TARGETDIR}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
521
unset(_PYTHON_VERSION_NO_DOTS)
525
# png is statically linked on win64
527
FILES ${LIBDIR}/zlib/lib/zlib.dll
528
DESTINATION ${TARGETDIR}
531
#not needed since we link statically, maybe also unneeded for MinGW?
535
${LIBDIR}/zlib/lib/zlib.dll
536
DESTINATION ${TARGETDIR}
543
FILES ${LIBDIR}/pthreads/lib/pthreadVC2.dll
544
DESTINATION ${TARGETDIR}
547
#MinGW64 comes with own version. For portable builds it will probaly have to be copied to work
550
FILES ${LIBDIR}/pthreads/lib/pthreadGC2.dll
551
DESTINATION ${TARGETDIR}
556
${LIBDIR}/binaries/libgcc_s_sjlj-1.dll
557
${LIBDIR}/binaries/libwinpthread-1.dll
558
${LIBDIR}/binaries/libstdc++-6.dll
559
DESTINATION ${TARGETDIR}
565
${LIBDIR}/binaries/libgomp-1.dll
566
DESTINATION ${TARGETDIR}
572
if(WITH_CODEC_FFMPEG)
575
${LIBDIR}/ffmpeg/lib/avcodec-53.dll
576
${LIBDIR}/ffmpeg/lib/avformat-53.dll
577
${LIBDIR}/ffmpeg/lib/avdevice-53.dll
578
${LIBDIR}/ffmpeg/lib/avutil-51.dll
579
${LIBDIR}/ffmpeg/lib/swscale-2.dll
580
DESTINATION ${TARGETDIR}
585
${LIBDIR}/ffmpeg/lib/swresample-0.dll
586
${LIBDIR}/ffmpeg/lib/xvidcore.dll
587
DESTINATION ${TARGETDIR}
592
if(WITH_CODEC_SNDFILE)
594
FILES ${LIBDIR}/sndfile/lib/libsndfile-1.dll
595
DESTINATION ${TARGETDIR}
602
${LIBDIR}/openal/lib/OpenAL32.dll
603
${LIBDIR}/openal/lib/wrap_oal.dll
604
DESTINATION ${TARGETDIR}
611
FILES ${LIBDIR}/sdl/lib/SDL.dll
612
DESTINATION ${TARGETDIR}
619
FILES ${LIBDIR}/thumbhandler/lib/BlendThumb.dll
620
DESTINATION ${TARGETDIR}
624
install( # x86 builds can run on x64 Windows, so this is required at all times
625
FILES ${LIBDIR}/thumbhandler/lib/BlendThumb64.dll
626
DESTINATION ${TARGETDIR}
630
set(OCIOBIN ${LIBDIR}/opencolorio/bin)
634
${OCIOBIN}/OpenColorIO.dll
635
DESTINATION ${TARGETDIR}
640
${OCIOBIN}/libOpenColorIO.dll
641
DESTINATION ${TARGETDIR}
648
# handy install macro to exclude files, we use \$ escape for the "to"
649
# argument when calling so ${BUILD_TYPE} does not get expanded
650
macro(install_dir from to)
654
PATTERN ".svn" EXCLUDE
655
PATTERN "*.pyc" EXCLUDE
656
PATTERN "*.pyo" EXCLUDE
657
PATTERN "*.orig" EXCLUDE
658
PATTERN "*.rej" EXCLUDE
659
PATTERN "__pycache__" EXCLUDE
660
PATTERN "__MACOSX" EXCLUDE
661
PATTERN ".DS_Store" EXCLUDE
665
set(OSX_APP_SOURCEDIR ${CMAKE_SOURCE_DIR}/release/darwin/blender.app)
668
execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BLENDER_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
670
set_target_properties(blender PROPERTIES
671
MACOSX_BUNDLE_INFO_PLIST ${OSX_APP_SOURCEDIR}/Contents/Info.plist
672
MACOSX_BUNDLE_SHORT_VERSION_STRING ${BLENDER_VERSION}
673
MACOSX_BUNDLE_LONG_VERSION_STRING "${BLENDER_VERSION} ${BLENDER_DATE}")
676
# install release and app files
678
FILES ${BLENDER_TEXT_FILES}
679
DESTINATION ${TARGETDIR}
683
FILES ${OSX_APP_SOURCEDIR}/Contents/PkgInfo
684
DESTINATION ${TARGETDIR}/blender.app/Contents
688
${OSX_APP_SOURCEDIR}/Contents/Resources
689
\${TARGETDIR}/blender.app/Contents/
693
if(WITH_PYTHON AND NOT WITH_PYTHON_MODULE)
694
# the python zip is first extract as part of the build process,
695
# and then later installed as part of make install. this is much
696
# quicker, and means we can easily exclude files on copy
697
# Not needed for PYTHON_MODULE or WEB_PLUGIN due uses Pyhon framework
700
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/python)
702
set(PYTHON_ZIP "python_${CMAKE_OSX_ARCHITECTURES}.zip")
705
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/python
706
COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/python/
707
COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/python/
708
COMMAND unzip -q ${LIBDIR}/release/${PYTHON_ZIP} -d ${CMAKE_CURRENT_BINARY_DIR}/python/
709
DEPENDS ${LIBDIR}/release/${PYTHON_ZIP})
711
add_dependencies(blender extractpyzip)
713
# copy extracted python files
715
${CMAKE_CURRENT_BINARY_DIR}/python
721
# install blenderplayer bundle - copy of blender.app above. re-using macros et al
722
# note we are using OSX Bundle as base and copying Blender dummy bundle on top of it
723
if(WITH_GAMEENGINE AND WITH_PLAYER)
724
set(OSX_APP_PLAYER_SOURCEDIR ${CMAKE_SOURCE_DIR}/release/darwin/blenderplayer.app)
725
set(PLAYER_SOURCEINFO ${OSX_APP_PLAYER_SOURCEDIR}/Contents/Info.plist)
726
set(PLAYER_TARGETDIR_VER ${TARGETDIR}/blenderplayer.app/Contents/MacOS/${BLENDER_VERSION})
729
# important to make a clean install each time else old scripts get loaded.
732
"file(REMOVE_RECURSE ${PLAYER_TARGETDIR_VER})"
736
FILES ${OSX_APP_PLAYER_SOURCEDIR}/Contents/PkgInfo
737
DESTINATION ${TARGETDIR}/blenderplayer.app/Contents
741
${OSX_APP_PLAYER_SOURCEDIR}/Contents/Resources
742
\${TARGETDIR}/blenderplayer.app/Contents/
748
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/python
749
COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/python/
750
COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/python/
751
COMMAND unzip -q ${LIBDIR}/release/${PYTHON_ZIP} -d ${CMAKE_CURRENT_BINARY_DIR}/python/
752
DEPENDS ${LIBDIR}/release/${PYTHON_ZIP})
754
# copy extracted python files
756
${CMAKE_CURRENT_BINARY_DIR}/python
757
\${PLAYER_TARGETDIR_VER}
765
# -----------------------------------------------------------------------------
766
# Generic Install, for all targets
770
# install more files specified elsewhere
771
delayed_do_install(${TARGETDIR_VER})
773
unset(BLENDER_TEXT_FILES)
776
# -----------------------------------------------------------------------------
779
add_dependencies(blender makesdna)
781
get_property(BLENDER_LINK_LIBS GLOBAL PROPERTY BLENDER_LINK_LIBS)
783
list(APPEND BLENDER_LINK_LIBS
789
list(APPEND BLENDER_LINK_LIBS bf_intern_elbeem)
793
list(APPEND BLENDER_LINK_LIBS
801
list(APPEND BLENDER_LINK_LIBS cycles_kernel_osl)
807
set(BLENDER_SORTED_LIBS
811
bf_editor_space_action
812
bf_editor_space_buttons
813
bf_editor_space_console
815
bf_editor_space_graph
816
bf_editor_space_image
818
bf_editor_space_logic
821
bf_editor_space_outliner
822
bf_editor_space_script
823
bf_editor_space_sequencer
825
bf_editor_space_userpref
826
bf_editor_space_view3d
843
bf_editor_sculpt_paint
875
bf_intern_guardedalloc
887
extern_recastnavigation
896
ge_logic_loopbacknetwork
915
bf_intern_opencolorio
920
# added for opencl compositor
921
list_insert_before(BLENDER_SORTED_LIBS "bf_blenkernel" "bf_compositor")
922
list_insert_after(BLENDER_SORTED_LIBS "bf_compositor" "bf_intern_opencl")
926
list(APPEND BLENDER_SORTED_LIBS extern_libmv)
927
list(APPEND BLENDER_SORTED_LIBS extern_ssba)
928
list(APPEND BLENDER_SORTED_LIBS extern_ceres)
931
if(WITH_MOD_CLOTH_ELTOPO)
932
list(APPEND BLENDER_SORTED_LIBS extern_eltopo)
935
if(NOT WITH_SYSTEM_GLEW)
936
list(APPEND BLENDER_SORTED_LIBS extern_glew)
940
list(APPEND BLENDER_SORTED_LIBS extern_binreloc)
943
if(WITH_CXX_GUARDEDALLOC)
944
list(APPEND BLENDER_SORTED_LIBS bf_intern_guardedalloc_cpp)
948
list_insert_after(BLENDER_SORTED_LIBS "bf_intern_elbeem" "bf_intern_iksolver")
952
list(APPEND BLENDER_SORTED_LIBS bf_intern_itasc)
955
if(WITH_CODEC_QUICKTIME)
956
list(APPEND BLENDER_SORTED_LIBS bf_quicktime)
960
list(APPEND BLENDER_SORTED_LIBS extern_carve)
964
list(APPEND BLENDER_SORTED_LIBS extern_xdnd)
968
list_insert_after(BLENDER_SORTED_LIBS "cycles_kernel" "cycles_kernel_osl")
971
if(WITH_INTERNATIONAL)
972
list(APPEND BLENDER_SORTED_LIBS bf_intern_locale)
976
list_insert_after(BLENDER_SORTED_LIBS "bf_blenkernel" "bf_intern_rigidbody")
979
if(WITH_BULLET AND NOT WITH_BULLET_SYSTEM)
980
list_insert_after(BLENDER_SORTED_LIBS "ge_logic_ngnetwork" "extern_bullet")
983
foreach(SORTLIB ${BLENDER_SORTED_LIBS})
984
set(REMLIB ${SORTLIB})
985
foreach(SEARCHLIB ${BLENDER_LINK_LIBS})
986
if(${SEARCHLIB} STREQUAL ${SORTLIB})
991
# message(STATUS "Removing library ${REMLIB} from blender linking because: not configured")
992
list(APPEND REM_MSG ${REMLIB})
993
list(REMOVE_ITEM BLENDER_SORTED_LIBS ${REMLIB})
998
message(STATUS "Blender Skipping: (${REM_MSG})")
1000
target_link_libraries(blender ${BLENDER_SORTED_LIBS})
1008
# target_link_libraries(blender ${BLENDER_LINK_LIBS})
1011
setup_liblinks(blender)