The rendering device is now set in User Preferences > System, where you can choose between OpenCL/CUDA and devices. Per scene you can then still choose to use CPU or GPU rendering. Load balancing still needs to be improved, now it just splits the entire render in two, that will be done in a separate commit.
180 lines
5.1 KiB
Python
180 lines
5.1 KiB
Python
#!/usr/bin/python
|
|
import sys
|
|
import os
|
|
|
|
def normpath(path):
|
|
return os.path.abspath(os.path.normpath(path))
|
|
|
|
Import ('env')
|
|
cflags = [] #['-Wall']
|
|
defines = []
|
|
root_build_dir=normpath(env['BF_BUILDDIR'])
|
|
|
|
source_files = env.Glob('*.c')
|
|
source_files.remove('rna_access.c')
|
|
|
|
generated_files = source_files[:]
|
|
generated_files.remove('rna_define.c')
|
|
generated_files.remove('makesrna.c')
|
|
|
|
api_files = env.Glob('*_api.c')
|
|
for api_file in api_files:
|
|
generated_files.remove(api_file)
|
|
|
|
generated_files = [filename[:-2] + '_gen.c' for filename in generated_files]
|
|
|
|
makesrna_tool = env.Clone()
|
|
rna = env.Clone()
|
|
makesrna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesrna/\\"" ')
|
|
|
|
defs = []
|
|
|
|
incs = '#/intern/guardedalloc ../../blenlib ../../blenkernel ../../blenloader'
|
|
incs += ' ../../imbuf ../../makesdna ../../makesrna ../../ikplugin'
|
|
incs += ' ../../windowmanager ../../editors/include ../../blenfont'
|
|
incs += ' ../../render/extern/include'
|
|
incs += ' #/intern/audaspace/intern #/intern/cycles/blender'
|
|
incs += ' #/extern/glew/include '
|
|
|
|
if env['WITH_BF_OPENEXR']:
|
|
defs.append('WITH_OPENEXR')
|
|
|
|
if env['WITH_BF_TIFF']:
|
|
defs.append('WITH_TIFF')
|
|
|
|
if env['WITH_BF_OPENJPEG']:
|
|
defs.append('WITH_OPENJPEG')
|
|
|
|
if env['WITH_BF_DDS']:
|
|
defs.append('WITH_DDS')
|
|
|
|
if env['WITH_BF_CINEON']:
|
|
defs.append('WITH_CINEON')
|
|
|
|
if env['WITH_BF_HDR']:
|
|
defs.append('WITH_HDR')
|
|
|
|
defs.append('WITH_FRAMESERVER') # TODO, make optional
|
|
|
|
if env['WITH_BF_FFMPEG']:
|
|
defs.append('WITH_FFMPEG')
|
|
incs += ' ' + env['BF_FFMPEG_INC']
|
|
|
|
if env['WITH_BF_OGG']:
|
|
defs.append('WITH_OGG')
|
|
|
|
if env['WITH_BF_QUICKTIME']:
|
|
defs.append('WITH_QUICKTIME')
|
|
incs += ' ../../quicktime'
|
|
|
|
if env['WITH_BF_GAMEENGINE']:
|
|
defs.append('WITH_GAMEENGINE')
|
|
|
|
if env['WITH_BF_FFTW3']:
|
|
defs.append('WITH_FFTW3')
|
|
|
|
if env['WITH_BF_SDL']:
|
|
defs.append('WITH_SDL')
|
|
|
|
if env['WITH_BF_OPENAL']:
|
|
defs.append('WITH_OPENAL')
|
|
|
|
if env['WITH_BF_JACK']:
|
|
defs.append('WITH_JACK')
|
|
|
|
if env['BF_UNIT_TEST']:
|
|
defs.append('UNIT_TEST')
|
|
|
|
if env['WITH_BF_PYTHON']:
|
|
defs.append('WITH_PYTHON')
|
|
|
|
if env['WITH_BF_COLLADA']:
|
|
defs.append('WITH_COLLADA')
|
|
|
|
if env['WITH_BF_CYCLES']:
|
|
defs.append('WITH_CYCLES')
|
|
|
|
if env['OURPLATFORM'] == 'linux':
|
|
cflags='-pthread'
|
|
incs += ' ../../../extern/binreloc/include'
|
|
|
|
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
|
|
incs += ' ' + env['BF_PTHREADS_INC']
|
|
|
|
if env['WITH_BF_INTERNATIONAL']:
|
|
defs.append('WITH_INTERNATIONAL')
|
|
|
|
makesrna_tool.Append(CPPDEFINES=defs)
|
|
|
|
makesrna_tool.Append (CPPPATH = Split(incs))
|
|
|
|
if env['OURPLATFORM'] == 'linuxcross':
|
|
USE_WINE = True # when cross compiling on linux 64bit this is useful
|
|
else:
|
|
USE_WINE = False
|
|
|
|
if not USE_WINE:
|
|
if env['OURPLATFORM'] == 'linuxcross':
|
|
makesdna_tool.Replace(CC='gcc')
|
|
makesdna_tool.Replace(AR='ar')
|
|
makesdna_tool.Replace(LINK='gcc')
|
|
|
|
if sys.platform != 'cygwin':
|
|
makesrna_tool.Append (CCFLAGS = cflags)
|
|
makesrna_tool.Append (CPPDEFINES = defines)
|
|
|
|
libdir = root_build_dir+'/lib'
|
|
if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'):
|
|
libdir = '#' + libdir
|
|
|
|
makesrna_tool.Append (LIBPATH = libdir)
|
|
|
|
makesrna_tool.Append( CFLAGS = env['CFLAGS'])
|
|
makesrna_tool.Append( CCFLAGS = env['CCFLAGS'])
|
|
makesrna_tool.Append( LINKFLAGS = env['PLATFORM_LINKFLAGS'])
|
|
|
|
if env['BF_PROFILE']:
|
|
makesrna_tool.Append (LINKFLAGS = env['BF_PROFILE_FLAGS'])
|
|
|
|
if env['BF_DEBUG']:
|
|
makesrna_tool.Append(CFLAGS = env['BF_DEBUG_CFLAGS'])
|
|
makesrna_tool.Append(CCFLAGS = env['BF_DEBUG_CCFLAGS'])
|
|
if env['OURPLATFORM'] in ('win32-vc','win64-vc'):
|
|
makesrna_tool.Append(LINKFLAGS = ['/DEBUG','/PDB:makesrna.pdb'])
|
|
|
|
targetpath = root_build_dir+'/makesrna'
|
|
if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'):
|
|
targetpath = '#' + targetpath
|
|
|
|
if env['OURPLATFORM'] == 'linux' and root_build_dir[0]==os.sep:
|
|
makesrna = makesrna_tool.Program (target = targetpath, source = source_files, LIBS=['bf_intern_guardedalloc', 'bf_dna', 'bf_blenlib'])
|
|
else:
|
|
makesrna = makesrna_tool.Program (target = targetpath, source = source_files, LIBS=['bf_intern_guardedalloc', 'bf_dna', 'bf_blenlib'])
|
|
|
|
rna_dict = rna.Dictionary()
|
|
rna.Depends (generated_files, makesrna)
|
|
|
|
# this seems bad, how to retrieve it from scons?
|
|
build_dir = root_build_dir + os.sep +'source' + os.sep + 'blender' + os.sep + 'makesrna' + os.sep + 'intern' + os.sep
|
|
|
|
if env['OURPLATFORM'] != 'linuxcross':
|
|
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw'):
|
|
rna.Command (generated_files, '', "\"" + root_build_dir+os.sep+"makesrna.exe\" \"" + build_dir )
|
|
else:
|
|
rna.Command (generated_files, '', "\"" + root_build_dir+os.sep+"makesrna\" \"" + build_dir + '"' )
|
|
else:
|
|
rna.Command (generated_files, '', root_build_dir+os.sep+"makesrna.exe " + build_dir)
|
|
|
|
if USE_WINE:
|
|
rna.Command (generated_files, '', 'wine ' + root_build_dir+os.sep+"makesrna.exe " + build_dir)
|
|
else:
|
|
rna.Command (generated_files, '', root_build_dir+os.sep+"makesrna.exe " + build_dir)
|
|
|
|
|
|
obj = ['intern/rna_access.c']
|
|
for generated_file in generated_files:
|
|
obj += ['intern/' + generated_file]
|
|
|
|
Return ('obj')
|
|
|