Files
test/source/blender/makesrna/intern/SConscript
Sergey Sharybin 36f20f162c Fix #28154: linux3-config.py doesn't exist
Change OURPLATFORM from "linux<major_version>" to simple "linux".
Since new policy for linux kernel versions that major version in
platform doesn't make much sense for building rules so the same
rules could be used for both of linux2 and linux3 now/

Tested on both of linux2 and linux3 systems.
2011-08-21 13:31:46 +00:00

174 lines
4.9 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 '
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('FFTW3=1')
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['OURPLATFORM'] == 'linux':
cflags='-pthread'
incs += ' ../../../extern/binreloc/include'
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
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')