== SCons ==

* This commit is all of the rewrite work done on the SCons system. For
  documentation see doc/blender-scons.txt and doc/blender-scons-dev.txt.
  Also http://mediawiki.blender.org/index.php/BlenderDev/SconsRefactoring
  contains valuable information, along with what still needs to be done.

    - linux, os x and windows compile now.
    - files are compiled to BF_INSTALLDIR (see config/(platform)-config.py)
        - NOTE: Jean-Luc P will commit sometime during the weekend proper
          appit() for OS X. For now, copy the resulting binary to an
          existing .app bundle.
    - features:
        - cleaner structure for better maintenance
        - cleaner output during compile
        - better handling of build options
        - general overall speed increase
        - see the wiki for more info

  Cygwin, FreeBSD and Solaris systems still need work. For these systems:
    1) copy a config/(platform)-config.py to ie. config/cygwin-config.py
    2) set the proper defaults for your platform
    3) mail me at jesterking at letwory dot net with you configuration. if
       you need any modifications to the system, do send a patch, too.

  I'll be giving first-aid today and tomorrow, after that it'll be all
  regular development work :)

  /Nathan
This commit is contained in:
Nathan Letwory 2006-02-04 14:15:10 +00:00
parent 1db5c23716
commit 3bb82a27fc
74 changed files with 2916 additions and 3143 deletions

1569
SConstruct

File diff suppressed because it is too large Load Diff

149
config/darwin-config.py Normal file
View File

@ -0,0 +1,149 @@
LCGDIR = '#../lib/darwin-6.1-powerpc'
BF_PYTHON = '/Library/Frameworks/Python.framework/Versions/'
BF_PYTHON_VERSION = '2.4'
BF_PYTHON_INC = BF_PYTHON + BF_PYTHON_VERSION + '/include/python' + BF_PYTHON_VERSION
BF_PYTHON_BINARY = BF_PYTHON + BF_PYTHON_VERSION +'/bin/python'+BF_PYTHON_VERSION
BF_PYTHON_LIB = ''
BF_PYTHON_LIBPATH = '/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/config'
BF_PYTHON_LINKFLAGS = '-u __dummy -u _PyMac_Error -framework System -framework Python'
WITH_BF_OPENAL = 'true'
BF_OPENAL = LCGDIR + '/openal'
BF_OPENAL_INC = BF_OPENAL + '/include'
BF_OPENAL_LIB = 'openal'
BF_OPENAL_LIBPATH = BF_OPENAL + '/lib'
WITH_BF_SDL = 'true'
BF_SDL = LCGDIR + '/sdl' #$(shell sdl-config --prefix)
BF_SDL_INC = BF_SDL + '/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
BF_SDL_LIBPATH = BF_SDL + '/lib'
WITH_BF_FMOD = 'false'
BF_FMOD = LCGDIR + '/fmod'
WITH_BF_OPENEXR = 'true'
BF_OPENEXR = '/usr/local'
BF_OPENEXR_INC = BF_OPENEXR + '/include/OpenEXR'
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath '
WITH_BF_JPEG = 'true'
BF_JPEG = LCGDIR + '/jpeg'
BF_JPEG_INC = BF_JPEG + '/include'
BF_JPEG_LIB = 'jpeg'
BF_JPEG_LIBPATH = BF_JPEG + '/lib'
WITH_BF_PNG = 'true'
BF_PNG = LCGDIR + '/png'
BF_PNG_INC = BF_PNG + '/include'
BF_PNG_LIB = 'png'
BF_PNG_LIBPATH = BF_PNG + '/lib'
WITH_BF_TIFF = 'true'
BF_TIFF = LCGDIR + '/tiff'
BF_TIFF_INC = BF_TIFF + '/include'
BF_TIFF_LIB = 'tiff'
BF_TIFF_LIBPATH = BF_TIFF + '/lib'
WITH_BF_ZLIB = 'true'
BF_ZLIB = '/usr'
BF_ZLIB_INC = BF_ZLIB + '/include'
BF_ZLIB_LIB = 'z'
WITH_BF_GETTEXT = 'true'
BF_GETTEXT = LCGDIR + '/gettext'
BF_GETTEXT_INC = BF_GETTEXT + '/include'
BF_GETTEXT_LIB = 'intl'
BF_GETTEXT_LIBPATH = BF_GETTEXT + '/lib'
WITH_BF_FTGL = 'true'
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = BF_FTGL + '/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE='true'
WITH_BF_ODE = 'false'
BF_ODE = LCGDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
WITH_BF_BULLET = 'true'
BF_BULLET = '#extern/bullet'
BF_BULLET_INC = BF_BULLET + '/LinearMath ' + BF_BULLET + '/BulletDynamics ' + BF_BULLET + '/Bullet'
BF_BULLET_LIB = 'extern_bullet'
BF_SOLID = '#extern/solid'
BF_SOLID_INC = BF_SOLID
BF_SOLID_LIB = 'extern_solid'
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LCGDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
# Uncomment the following line to use Mozilla inplace of netscape
#CPPFLAGS += -DMOZ_NOT_NET
# Location of MOZILLA/Netscape header files...
#BF_MOZILLA = $(LCGDIR)/mozilla
#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
#BF_MOZILLA_LIB =
# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
#BF_PARANOID = 'true'
# enable freetype2 support for text objects
WITH_BF_FREETYPE = 'true'
BF_FREETYPE = LCGDIR + '/freetype'
BF_FREETYPE_INC = BF_FREETYPE + '/include ' + BF_FREETYPE + '/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
BF_FREETYPE_LIBPATH = BF_FREETYPE + '/lib'
WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
# Mesa Libs should go here if your using them as well....
WITH_BF_OPENGL = 'true'
BF_OPENGL_LIB = 'GL GLU'
BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
BF_OPENGL_LINKFLAGS = '-framework OpenGL'
##
##CC = gcc
##CCC = g++
##ifeq ($CPU),alpha)
## CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
CFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
CPPFLAGS = ['-DXP_UNIX']
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
PLATFORM_LINKFLAGS = '-framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime'
REL_CFLAGS = ' -O2 '
REL_CCFLAGS = ' -O2 '
##BF_DEPEND = 'true'
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
C_WARN = ' -Wall -W -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wredundant-decls -Wno-long-double'
CC_WARN = ' -Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wredundant-decls -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wsign-promo -Wsynth -Wno-long-double'
##FIX_STUBS_WARNINGS = -Wno-unused
LLIBS = 'stdc++'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
BF_PROFILE_FLAGS = ' -pg -g '
BF_PROFILE = 'false'
BF_DEBUG = 'false'
BF_DEBUG_FLAGS = ''
BF_BUILDDIR='../build/darwin'
BF_INSTALLDIR='../install/darwin'

142
config/linux2-config.py Normal file
View File

@ -0,0 +1,142 @@
LCGDIR = '../lib/linux2'
BF_PYTHON = '/usr'
BF_PYTHON_VERSION = '2.4'
BF_PYTHON_INC = BF_PYTHON + '/include/python' + BF_PYTHON_VERSION
BF_PYTHON_BINARY = BF_PYTHON+'/bin/python'+BF_PYTHON_VERSION
BF_PYTHON_LIB = 'python' + BF_PYTHON_VERSION #BF_PYTHON+'/lib/python'+BF_PYTHON_VERSION+'/config/libpython'+BF_PYTHON_VERSION+'.a'
WITH_BF_OPENAL = 'true'
BF_OPENAL = '/usr'
BF_OPENAL_INC = BF_OPENAL+'/include'
BF_OPENAL_LIB = 'openal'
WITH_BF_SDL = 'true'
BF_SDL = '/usr' #$(shell sdl-config --prefix)
BF_SDL_INC = BF_SDL + '/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
WITH_BF_FMOD = 'false'
BF_FMOD = LCGDIR + '/fmod'
WITH_BF_OPENEXR = 'true'
BF_OPENEXR = '/usr'
BF_OPENEXR_INC = BF_OPENEXR + '/include/OpenEXR'
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath '
WITH_BF_JPEG = 'true'
BF_JPEG = '/usr'
BF_JPEG_INC = BF_JPEG + '/include'
BF_JPEG_LIB = 'jpeg'
WITH_BF_PNG = 'true'
BF_PNG = '/usr'
BF_PNG_INC = BF_PNG + '/include'
BF_PNG_LIB = 'png'
WITH_BF_TIFF = 'true'
BF_TIFF = '/usr'
BF_TIFF_INC = BF_TIFF + '/include'
BF_TIFF_LIB = 'tiff'
WITH_BF_ZLIB = 'true'
BF_ZLIB = '/usr'
BF_ZLIB_INC = BF_ZLIB + '/include'
BF_ZLIB_LIB = 'z'
WITH_BF_GETTEXT = 'true'
BF_GETTEXT = '/usr'
BF_GETTEXT_INC = BF_GETTEXT + '/include'
BF_GETTEXT_LIB = 'gettextlib'
BF_GETTEXT_LIBPATH = BF_GETTEXT + '/lib'
WITH_BF_FTGL = 'true'
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = BF_FTGL + '/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE='true'
WITH_BF_ODE = 'false'
BF_ODE = LCGDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
WITH_BF_BULLET = 'true'
BF_BULLET = '#extern/bullet'
BF_BULLET_INC = BF_BULLET + '/LinearMath ' + BF_BULLET + '/BulletDynamics ' + BF_BULLET + '/Bullet'
BF_BULLET_LIB = 'extern_bullet'
BF_SOLID = '#extern/solid'
BF_SOLID_INC = BF_SOLID
BF_SOLID_LIB = 'extern_solid'
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LCGDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
# Uncomment the following line to use Mozilla inplace of netscape
#CPPFLAGS += -DMOZ_NOT_NET
# Location of MOZILLA/Netscape header files...
#BF_MOZILLA = $(LCGDIR)/mozilla
#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
#BF_MOZILLA_LIB =
# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
#BF_PARANOID = 'true'
# enable freetype2 support for text objects
WITH_BF_FREETYPE = 'true'
BF_FREETYPE = '/usr'
BF_FREETYPE_INC = BF_FREETYPE + '/include ' + BF_FREETYPE + '/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = BF_QUICKTIME + '/include'
# Mesa Libs should go here if your using them as well....
WITH_BF_OPENGL = 'true'
BF_OPENGL = '/usr/X11R6'
BF_OPENGL_INC = BF_OPENGL + '/include'
BF_OPENGL_LIB = 'GL GLU Xmu Xext X11 Xi'
BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
BF_OPENGL_LIB_STATIC = BF_OPENGL + '/lib/libGL.a ' + BF_OPENGL + '/lib/libGLU.a ' + BF_OPENGL + '/lib/libXmu.a ' + BF_OPENGL + '/lib/libXext.a ' + BF_OPENGL + '/lib/libX11.a ' + BF_OPENGL + '/lib/libXi.a'
##
##CC = gcc
##CCC = g++
##ifeq ($CPU),alpha)
## CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
CFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
CPPFLAGS = ['-DXP_UNIX']
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
REL_CFLAGS = ' -O2 '
REL_CCFLAGS = ' -O2 '
##BF_DEPEND = 'true'
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
C_WARN = ' -Wall -W -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wredundant-decls '
CC_WARN = ' -Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wredundant-decls -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wsign-promo -Wsynth '
##FIX_STUBS_WARNINGS = -Wno-unused
LLIBS = 'util c m dl pthread stdc++'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
BF_PROFILE_FLAGS = ' -pg -g '
BF_PROFILE = 'false'
BF_DEBUG = 'false'
BF_DEBUG_FLAGS = ''
BF_BUILDDIR = '../build/linux2'
BF_INSTALLDIR='../install/linux2'

133
config/linuxcross-config.py Normal file
View File

@ -0,0 +1,133 @@
LCGDIR = '../lib/linux2'
BF_PYTHON = '/usr'
BF_PYTHON_VERSION = '2.4'
BF_PYTHON_INC = BF_PYTHON + '/include/python' + BF_PYTHON_VERSION
BF_PYTHON_BINARY = BF_PYTHON+'/bin/python'+BF_PYTHON_VERSION
BF_PYTHON_LIB = 'python' + BF_PYTHON_VERSION #BF_PYTHON+'/lib/python'+BF_PYTHON_VERSION+'/config/libpython'+BF_PYTHON_VERSION+'.a'
WITH_BF_OPENAL = 'true'
BF_OPENAL = '/usr'
BF_OPENAL_INC = BF_OPENAL+'/include'
BF_OPENAL_LIB = 'openal'
WITH_BF_SDL = 'true'
BF_SDL = '/usr' #$(shell sdl-config --prefix)
BF_SDL_INC = BF_SDL + '/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
WITH_BF_FMOD = 'false'
BF_FMOD = LCGDIR + '/fmod'
WITH_BF_JPEG = 'true'
BF_JPEG = '/usr'
BF_JPEG_INC = BF_JPEG + '/include'
BF_JPEG_LIB = 'jpeg'
WITH_BF_OPENEXR = 'true'
BF_OPENEXR = '/usr'
BF_OPENEXR_INC = BF_OPENEXR + '/include/OpenEXR'
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath '
WITH_BF_PNG = 'true'
BF_PNG = '/usr'
BF_PNG_INC = BF_PNG + '/include'
BF_PNG_LIB = 'png'
WITH_BF_TIFF = 'true'
BF_TIFF = '/usr'
BF_TIFF_INC = BF_TIFF + '/include'
BF_TIFF_LIB = 'tiff'
WITH_BF_ZLIB = 'true'
BF_ZLIB = '/usr'
BF_ZLIB_INC = BF_ZLIB + '/include'
BF_ZLIB_LIB = 'z'
WITH_BF_GETTEXT = 'true'
BF_GETTEXT = '/usr'
BF_GETTEXT_INC = BF_GETTEXT + '/include'
BF_GETTEXT_LIB = BF_GETTEXT + '/lib/libintl.a'
WITH_BF_FTGL = 'true'
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = BF_FTGL + '/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_ODE = 'false'
BF_ODE = LCGDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
WITH_BF_BULLET = 'true'
BF_BULLET = '#extern/bullet'
BF_BULLET_INC = BF_BULLET + '/LinearMath ' + BF_BULLET + '/BulletDynamics ' + BF_BULLET + '/Bullet'
BF_BULLET_LIB = 'extern_bullet'
BF_SOLID = '#extern/solid'
BF_SOLID_INC = BF_SOLID + '/include ' + BF_SOLID
BF_SOLID_LIB = 'extern_solid'
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LCGDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
# Uncomment the following line to use Mozilla inplace of netscape
#CPPFLAGS += -DMOZ_NOT_NET
# Location of MOZILLA/Netscape header files...
#BF_MOZILLA = $(LCGDIR)/mozilla
#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
#BF_MOZILLA_LIB =
# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
#BF_PARANOID = 'true'
# enable freetype2 support for text objects
WITH_BF_FREETYPE = 'true'
BF_FREETYPE = '/usr'
BF_FREETYPE_INC = BF_FREETYPE + '/include ' + BF_FREETYPE + '/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = BF_QUICKTIME + '/include'
# Mesa Libs should go here if your using them as well....
WITH_BF_OPENGL = 'true'
BF_OPENGL = '/usr/X11R6'
BF_OPENGL_INC = BF_OPENGL + '/include'
BF_OPENGL_LIB = 'GL GLU Xmu Xext X11 Xi'
BF_OPENGL_LIB_STATIC = BF_OPENGL + '/lib/libGL.a ' + BF_OPENGL + '/lib/libGLU.a ' + BF_OPENGL + '/lib/libXmu.a ' + BF_OPENGL + '/lib/libXext.a ' + BF_OPENGL + '/lib/libX11.a ' + BF_OPENGL + '/lib/libXi.a'
##
##CC = gcc
##CCC = g++
##ifeq ($CPU),alpha)
## CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
CFLAGS = '-pipe -funsigned-char -fno-strict-aliasing'
CPPFLAGS = '-DXP_UNIX'
CCFLAGS = '-pipe -funsigned-char -fno-strict-aliasing'
REL_CFLAGS = '-O2'
REL_CCFLAGS = '-O2'
##BF_DEPEND = 'true'
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
C_WARN = '-Wall -W -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wredundant-decls'
CC_WARN = '-Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wredundant-decls -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Wsign-promo -Wsynth'
##FIX_STUBS_WARNINGS = -Wno-unused
LLIBS = 'util c m dl pthread stdc++'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
BF_BUILDDIR = '../build/linuxcross'
BF_INSTALLDIR='../install/linuxcross'

View File

@ -0,0 +1,155 @@
LCGDIR = '#../lib/windows'
BF_PYTHON = LCGDIR + '/python'
BF_PYTHON_VERSION = '2.4'
BF_PYTHON_INC = BF_PYTHON + '/include/python' + BF_PYTHON_VERSION
BF_PYTHON_BINARY = 'python'
BF_PYTHON_LIB = 'python24'
BF_PYTHON_LIBPATH = BF_PYTHON + '/lib'
WITH_BF_OPENAL = 'true'
BF_OPENAL = LCGDIR + '/openal'
BF_OPENAL_INC = BF_OPENAL+'/include'
BF_OPENAL_LIB = 'openal'
BF_OPENAL_LIBPATH = BF_OPENAL + '/lib'
WITH_BF_SDL = 'true'
BF_SDL = '#../extra/SDL-1.2.9' #$(shell sdl-config --prefix)
BF_SDL_INC = BF_SDL + '/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDLmain SDL' #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
BF_SDL_LIBPATH = BF_SDL + '/lib'
WITH_BF_FMOD = 'false'
BF_FMOD = LCGDIR + '/fmod'
WITH_BF_OPENEXR = 'true'
BF_OPENEXR = LCGDIR + '/gcc/openexr'
BF_OPENEXR_INC = BF_OPENEXR + '/include ' + BF_OPENEXR + '/include/OpenEXR'
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath '
BF_OPENEXR_LIBPATH = LCGDIR+'/openexr/lib'
WITH_BF_JPEG = 'true'
BF_JPEG = LCGDIR + '/jpeg'
BF_JPEG_INC = BF_JPEG + '/include'
BF_JPEG_LIB = 'jpeg'
BF_JPEG_LIBPATH = BF_JPEG + '/lib'
WITH_BF_PNG = 'true'
BF_PNG = LCGDIR + '/png'
BF_PNG_INC = BF_PNG + '/include'
BF_PNG_LIB = 'png'
BF_PNG_LIBPATH = BF_PNG + '/lib'
WITH_BF_TIFF = 'true'
BF_TIFF = LCGDIR + '/tiff'
BF_TIFF_INC = BF_TIFF + '/include'
BF_TIFF_LIB = 'z tiff'
BF_TIFF_LIBPATH = BF_TIFF + '/lib'
WITH_BF_ZLIB = 'true'
BF_ZLIB = LCGDIR + '/zlib'
BF_ZLIB_INC = BF_ZLIB + '/include'
BF_ZLIB_LIB = 'z'
BF_ZLIB_LIBPATH = BF_ZLIB + '/lib'
WITH_BF_GETTEXT = 'true'
BF_GETTEXT = LCGDIR + '/gettext'
BF_GETTEXT_INC = BF_GETTEXT + '/include'
BF_GETTEXT_LIB = 'freegettext'
BF_GETTEXT_LIBPATH = '#../extra/gettext'
WITH_BF_FTGL = 'true'
BF_FTGL = LCGDIR + '/ftgl'
BF_FTGL_INC = BF_FTGL + '/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE = 'false'
WITH_BF_ODE = 'true'
BF_ODE = LCGDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
WITH_BF_BULLET = 'true'
BF_BULLET = '#extern/bullet'
BF_BULLET_INC = BF_BULLET + '/LinearMath ' + BF_BULLET + '/BulletDynamics ' + BF_BULLET + '/Bullet'
BF_BULLET_LIB = 'extern_bullet'
BF_SOLID = '#extern/solid'
BF_SOLID_INC = BF_SOLID
BF_SOLID_LIB = 'extern_solid'
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LCGDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
# Uncomment the following line to use Mozilla inplace of netscape
#CPPFLAGS += -DMOZ_NOT_NET
# Location of MOZILLA/Netscape header files...
#BF_MOZILLA = $(LCGDIR)/mozilla
#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
#BF_MOZILLA_LIB =
# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
#BF_PARANOID = 'true'
# enable freetype2 support for text objects
WITH_BF_FREETYPE = 'true'
BF_FREETYPE = '#../extra/freetype'
BF_FREETYPE_INC = BF_FREETYPE + '/include '
BF_FREETYPE_LIB = 'freetype'
BF_FREETYPE_LIBPATH = BF_FREETYPE + '/lib'
WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = BF_QUICKTIME + '/include'
# Mesa Libs should go here if your using them as well....
WITH_BF_OPENGL = 'true'
BF_OPENGL = 'C:\\MingW'
BF_OPENGL_INC = BF_OPENGL + '/include'
BF_OPENGL_LIBINC = BF_OPENGL + '/lib'
BF_OPENGL_LIB = 'opengl32 glu32'
BF_OPENGL_LIB_STATIC = [ BF_OPENGL + '/lib/libGL.a', BF_OPENGL + '/lib/libGLU.a',
BF_OPENGL + '/lib/libXmu.a', BF_OPENGL + '/lib/libXext.a',
BF_OPENGL + '/lib/libX11.a', BF_OPENGL + '/lib/libXi.a' ]
##
##CC = gcc
##CCC = g++
##ifeq ($CPU),alpha)
## CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
CFLAGS = [ '-pipe' '-funsigned-char', '-fno-strict-aliasing' ]
CPPFLAGS = [ '-DXP_UNIX', '-DWIN32', '-DFREE_WINDOWS' ]
CCFLAGS = ['-pipe', '-mwindows', '-funsigned-char', '-fno-strict-aliasing' ]
REL_CFLAGS = [ '-O2' ]
REL_CCFLAGS = [ '-O2' ]
##BF_DEPEND = 'true'
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
C_WARN = [ '-Wall', '-W', '-Wshadow', '-Wpointer-arith', '-Wbad-function-cast',
'-Wcast-qual', '-Wcast-align', '-Waggregate-return',
'-Wstrict-prototypes', '-Wmissing-prototypes',
'-Wmissing-declarations', '-Wnested-externs', '-Wredundant-decls' ]
CC_WARN = [ '-Wall', '-W', '-Wshadow', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align',
'-Wredundant-decls', '-Wreorder', '-Wctor-dtor-privacy', '-Wnon-virtual-dtor',
'-Wold-style-cast', '-Woverloaded-virtual', '-Wsign-promo', '-Wsynth' ]
##FIX_STUBS_WARNINGS = -Wno-unused
LLIBS = [ '-ldxguid', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm' ] #'-lutil', '-lc', '-lm', '-ldl', '-lpthread' ]
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
BF_DEBUG = 'false'
BF_DEBUG_FLAGS= ''
BF_BUILDDIR = '..\\build\\win32-mingw'
BF_INSTALLDIR='..\\install\\win32-mingw'

169
config/win32-vc-config.py Normal file
View File

@ -0,0 +1,169 @@
LCGDIR = '#../lib/windows'
BF_PYTHON = LCGDIR + '/python'
BF_PYTHON_VERSION = '2.4'
BF_PYTHON_INC = BF_PYTHON + '/include/python' + BF_PYTHON_VERSION
BF_PYTHON_BINARY = 'python'
BF_PYTHON_LIB = 'python24'
BF_PYTHON_LIBPATH = BF_PYTHON + '/lib'
WITH_BF_OPENAL = 'true'
BF_OPENAL = LCGDIR + '/openal'
BF_OPENAL_INC = BF_OPENAL+'/include ' + BF_OPENAL+'/include/AL '
BF_OPENAL_LIB = 'openal_static'
BF_OPENAL_LIBPATH = BF_OPENAL + '/lib'
WITH_BF_ICONV = 'true'
BF_ICONV = LCGDIR + '/iconv'
BF_ICONV_INC = BF_ICONV + '/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = BF_ICONV + '/lib'
WITH_BF_SDL = 'true'
BF_SDL = LCGDIR + '/sdl' #$(shell sdl-config --prefix)
BF_SDL_INC = BF_SDL + '/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL.lib' #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
BF_SDL_LIBPATH = BF_SDL + '/lib'
WITH_BF_FMOD = 'false'
BF_FMOD = LCGDIR + '/fmod'
WITH_BF_OPENEXR = 'true'
BF_OPENEXR = LCGDIR + '/openexr'
BF_OPENEXR_INC = BF_OPENEXR + '/include ' + BF_OPENEXR + '/include/IlmImf ' + BF_OPENEXR + '/include/Iex ' + BF_OPENEXR + '/include/Imath '
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath '
BF_OPENEXR_LIBPATH = BF_OPENEXR+'/lib'
WITH_BF_JPEG = 'true'
BF_JPEG = LCGDIR + '/jpeg'
BF_JPEG_INC = BF_JPEG + '/include'
BF_JPEG_LIB = 'libjpeg'
BF_JPEG_LIBPATH = BF_JPEG + '/lib'
WITH_BF_PNG = 'true'
BF_PNG = LCGDIR + '/png'
BF_PNG_INC = BF_PNG + '/include'
BF_PNG_LIB = 'libpng'
BF_PNG_LIBPATH = BF_PNG + '/lib'
WITH_BF_TIFF = 'true'
BF_TIFF = LCGDIR + '/tiff'
BF_TIFF_INC = BF_TIFF + '/include'
BF_TIFF_LIB = 'libtiff'
BF_TIFF_LIBPATH = BF_TIFF + '/lib'
WITH_BF_ZLIB = 'true'
BF_ZLIB = LCGDIR + '/zlib'
BF_ZLIB_INC = BF_ZLIB + '/include'
BF_ZLIB_LIB = 'libz'
BF_ZLIB_LIBPATH = BF_ZLIB + '/lib'
WITH_BF_GETTEXT = 'true'
BF_GETTEXT = LCGDIR + '/gettext'
BF_GETTEXT_INC = BF_GETTEXT + '/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = BF_GETTEXT + '/lib'
WITH_BF_FTGL = 'true'
BF_FTGL = LCGDIR + '/ftgl'
BF_FTGL_INC = BF_FTGL + '/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE = 'true'
WITH_BF_ODE = 'true'
BF_ODE = LCGDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
WITH_BF_BULLET = 'true'
BF_BULLET = '#extern/bullet'
BF_BULLET_INC = BF_BULLET + '/LinearMath ' + BF_BULLET + '/BulletDynamics ' + BF_BULLET + '/Bullet'
BF_BULLET_LIB = 'extern_bullet'
BF_SOLID = '#extern/solid'
BF_SOLID_INC = BF_SOLID
BF_SOLID_LIB = 'extern_solid'
#WITH_BF_NSPR = 'true'
#BF_NSPR = $(LCGDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
# Uncomment the following line to use Mozilla inplace of netscape
#CPPFLAGS += -DMOZ_NOT_NET
# Location of MOZILLA/Netscape header files...
#BF_MOZILLA = $(LCGDIR)/mozilla
#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
#BF_MOZILLA_LIB =
# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
#BF_PARANOID = 'true'
# enable freetype2 support for text objects
WITH_BF_FREETYPE = 'true'
BF_FREETYPE = LCGDIR + '/freetype'
BF_FREETYPE_INC = BF_FREETYPE + '/include ' + BF_FREETYPE + '/include/freetype2'
BF_FREETYPE_LIB = 'freetype2ST'
BF_FREETYPE_LIBPATH = BF_FREETYPE + '/lib'
WITH_BF_QUICKTIME = 'true' # -DWITH_QUICKTIME
BF_QUICKTIME = LCGDIR + '/QTDevWin'
BF_QUICKTIME_INC = BF_QUICKTIME + '/CIncludes'
BF_QUICKTIME_LIB = 'qtmlClient'
BF_QUICKTIME_LIBPATH = BF_QUICKTIME + '/Libraries'
# Mesa Libs should go here if your using them as well....
WITH_BF_OPENGL = 'true'
#BF_OPENGL = 'C:\\MingW'
BF_OPENGL_INC = BF_OPENGL + '/include'
BF_OPENGL_LIBINC = BF_OPENGL + '/lib'
BF_OPENGL_LIB = 'opengl32 glu32'
BF_OPENGL_LIB_STATIC = [ BF_OPENGL + '/lib/libGL.a', BF_OPENGL + '/lib/libGLU.a',
BF_OPENGL + '/lib/libXmu.a', BF_OPENGL + '/lib/libXext.a',
BF_OPENGL + '/lib/libX11.a', BF_OPENGL + '/lib/libXi.a' ]
##
##CC = gcc
##CCC = g++
##ifeq ($CPU),alpha)
## CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
CCFLAGS = ['/nologo', '/Og', '/Ot', '/Ob1', '/Op', '/G6','/EHsc', '/J', '/W3', '/Gd', '/MT']
CPPFLAGS = ['-DWIN32','-D_CONSOLE', '-D_LIB', '-DUSE_OPENAL', '-DFTGL_LIBRARY_STATIC']
REL_CFLAGS = []
REL_CCFLAGS = []
##BF_DEPEND = 'true'
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
C_WARN = []
#
CC_WARN = []
##FIX_STUBS_WARNINGS = -Wno-unused
LLIBS = 'ws2_32 dxguid vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shell32 ole32 oleaut32 uuid' #[ '-lutil', '-lc', '-lm', '-ldl', '-lpthread' ]
PLATFORM_LINKFLAGS = '''
/SUBSYSTEM:CONSOLE
/MACHINE:IX86
/ENTRY:mainCRTStartup
/INCREMENTAL:NO
/NODEFAULTLIB:"msvcprt.lib"
/NODEFAULTLIB:"glut32.lib"
/NODEFAULTLIB:"libc.lib"
/NODEFAULTLIB:"libcd.lib"
/NODEFAULTLIB:"libcpd.lib"
/NODEFAULTLIB:"libcp.lib"
/NODEFAULTLIB:"libcmtd.lib"
'''
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
BF_BUILDDIR = '..\\build\\win32-vc'
BF_INSTALLDIR='..\\install\\win32-vc'

16
extern/SConscript vendored
View File

@ -1,14 +1,10 @@
#!/usr/bin/python
Import('user_options_dict')
Import('env')
print "externs..."
SConscript(['qhull/SConscript',
'solid/SConscript',
'bullet/SConscript'])
if user_options_dict['USE_INTERNATIONAL'] == 1:
print "bftgl"
SConscript(['bFTGL/SConscript'])
'solid/SConscript',
'bullet/SConscript'])
if env['WITH_BF_FREETYPE'] == 1:
SConscript(['bFTGL/SConscript'])

View File

@ -2,52 +2,29 @@
import sys
import os
ftgl_env = Environment(ENV=os.environ)
Import('env')
# Import the C flags set in the SConstruct file
Import ('cflags')
Import ('defines')
Import ('user_options_dict')
#Import ('cflags')
#Import ('defines')
#Import ('user_options_dict')
if sys.platform=='linux2' or sys.platform=='linux-i386':
ftgl_env.Append (CCFLAGS = ['-O2', '-ansi'])
elif sys.platform=='win32':
ftgl_env.Append (CCFLAGS = ['/O2'])
elif sys.platform=='sunos':
ftgl_env.Append (CCFLAGS = ['Xc', '-v', '-fast'])
elif sys.platform=='darwin':
ftgl_env.Append (CCFLAGS = ['-O2', '-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4'])
else:
ftgl_env.Append (CCFLAGS = cflags)
#if sys.platform=='linux2' or sys.platform=='linux-i386':
# ftgl_env.Append (CCFLAGS = ['-O2', '-ansi'])
#elif sys.platform=='win32':
#ftgl_env.Append (CCFLAGS = ['/O2'])
#elif sys.platform=='sunos':
# ftgl_env.Append (CCFLAGS = ['Xc', '-v', '-fast'])
#elif sys.platform=='darwin':
# ftgl_env.Append (CCFLAGS = ['-O2', '-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4'])
#else:
# ftgl_env.Append (CCFLAGS = cflags)
ftgl_env.Append (CPPDEFINES = defines)
ftgl_env.Append (CPPPATH = ['include',
'src'])
#ftgl_env.Append (CPPDEFINES = defines)
ftgl_env.Append (CPPPATH = user_options_dict['FREETYPE_INCLUDE'])
incs = 'include src ' + env['BF_FREETYPE_INC']
defs = ''
source_files = [
'src/FTBitmapGlyph.cpp',
'src/FTCharmap.cpp',
'src/FTContour.cpp',
'src/FTExtrdGlyph.cpp',
'src/FTFace.cpp',
'src/FTFont.cpp',
'src/FTGLBitmapFont.cpp',
'src/FTGLExtrdFont.cpp',
'src/FTGLOutlineFont.cpp',
'src/FTGLPixmapFont.cpp',
'src/FTGLPolygonFont.cpp',
'src/FTGLTextureFont.cpp',
'src/FTGlyph.cpp',
'src/FTGlyphContainer.cpp',
'src/FTLibrary.cpp',
'src/FTOutlineGlyph.cpp',
'src/FTPixmapGlyph.cpp',
'src/FTPoint.cpp',
'src/FTPolyGlyph.cpp',
'src/FTSize.cpp',
'src/FTTextureGlyph.cpp',
'src/FTVectoriser.cpp']
sources = env.Glob('src/*.cpp')
ftgl_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/extern_ftgl', source=source_files)
env.BlenderLib ( 'extern_ftgl', sources, Split(incs), Split(defs), libtype='international', priority=5)

View File

@ -2,28 +2,24 @@
import sys
import os
bullet_env = Environment(ENV = os.environ)
Import('env')
# Import the C flags set in the SConstruct file
Import ('cflags')
#Import ('cxxflags')
#Import ('defines')
Import ('user_options_dict')
#defines = ['QHULL', '_LIB']
defines = ['USE_DOUBLES','QHULL', '_LIB']
#cflags = []
cxxflags = []
defs = 'USE_DOUBLES QHULL _LIB'
cflags = []
if sys.platform=='win32':
defines += ['WIN32','NDEBUG', '_WINDOWS', '_LIB']
#cflags += ['/MT', '/W3', '/GX', '/O2', '/Op']
cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6']
if env['OURPLATFORM']=='win32-vc':
defs += ' WIN32 NDEBUG _WINDOWS _LIB'
#cflags += ['/MT', '/W3', '/GX', '/O2', '/Op']
cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6']
if env['OURPLATFORM']=='win32-mingw':
defs += ' NDEBUG'
cflags += ['-O2']
elif sys.platform=='linux2' or sys.platform=='linux-i386' or sys.platform=='freebsd4' or sys.platform=='freebsd5':
defines += ['NDEBUG']
cflags += ['-O2']
elif sys.platform=='darwin' :
defines += ['NDEBUG']
cflags += ['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4']
defs += ' NDEBUG'
cflags += ['-O2']
elif sys.platform=='darwin':
defs += ' NDEBUG'
cflags += ['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4']
else:
print "################################################"
@ -33,79 +29,79 @@ else:
print "and cflags / cxxflags to the"
print "extern/bullet/SConscript file"
bullet_env.Append (CCFLAGS = cflags)
bullet_env.Append (CPPFLAGS = cxxflags)
#bullet_env.Append (CCFLAGS = cflags)
#bullet_env.Append (CPPFLAGS = cxxflags)
bullet_env.Append (CPPDEFINES = defines)
#bullet_env.Append (CPPDEFINES = defines)
bullet_sources = ['Bullet/BroadphaseCollision/BroadphaseProxy.cpp',
'Bullet/BroadphaseCollision/CollisionAlgorithm.cpp',
'Bullet/BroadphaseCollision/CollisionDispatcher.cpp',
'Bullet/BroadphaseCollision/SimpleBroadphase.cpp',
'Bullet/CollisionShapes/BoxShape.cpp',
'Bullet/CollisionShapes/CollisionShape.cpp',
'Bullet/CollisionShapes/ConeShape.cpp',
'Bullet/CollisionShapes/ConvexHullShape.cpp',
'Bullet/CollisionShapes/ConvexShape.cpp',
'Bullet/CollisionShapes/CylinderShape.cpp',
'Bullet/CollisionShapes/MinkowskiSumShape.cpp',
'Bullet/CollisionShapes/MultiSphereShape.cpp',
'Bullet/CollisionShapes/PolyhedralConvexShape.cpp',
'Bullet/CollisionShapes/Simplex1to4Shape.cpp',
'Bullet/CollisionShapes/SphereShape.cpp',
'Bullet/CollisionShapes/StridingMeshInterface.cpp',
'Bullet/CollisionShapes/TriangleMesh.cpp',
'Bullet/CollisionShapes/TriangleMeshShape.cpp',
'Bullet/CollisionShapes/BvhTriangleMeshShape.cpp',
'Bullet/CollisionShapes/ConvexTriangleCallback.cpp',
'Bullet/CollisionShapes/EmptyShape.cpp',
'Bullet/CollisionShapes/OptimizedBvh.cpp',
'Bullet/CollisionShapes/TriangleCallback.cpp',
'Bullet/CollisionShapes/TriangleIndexVertexArray.cpp',
'Bullet/NarrowPhaseCollision/BU_AlgebraicPolynomialSolver.cpp',
'Bullet/NarrowPhaseCollision/BU_Collidable.cpp',
'Bullet/NarrowPhaseCollision/BU_CollisionPair.cpp',
'Bullet/NarrowPhaseCollision/BU_EdgeEdge.cpp',
'Bullet/NarrowPhaseCollision/BU_Screwing.cpp',
'Bullet/NarrowPhaseCollision/BU_VertexPoly.cpp',
'Bullet/NarrowPhaseCollision/ContinuousConvexCollision.cpp',
'Bullet/NarrowPhaseCollision/ConvexCast.cpp',
'Bullet/NarrowPhaseCollision/GjkConvexCast.cpp',
'Bullet/NarrowPhaseCollision/GjkPairDetector.cpp',
'Bullet/NarrowPhaseCollision/MinkowskiPenetrationDepthSolver.cpp',
'Bullet/NarrowPhaseCollision/PersistentManifold.cpp',
'Bullet/NarrowPhaseCollision/RaycastCallback.cpp',
'Bullet/NarrowPhaseCollision/SubSimplexConvexCast.cpp',
'Bullet/NarrowPhaseCollision/VoronoiSimplexSolver.cpp',
'Bullet/NarrowPhaseCollision/ManifoldContactAddResult.cpp',
'BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/ConvexConvexAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/EmptyCollisionAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/ManifoldResult.cpp',
'BulletDynamics/CollisionDispatch/ToiContactDispatcher.cpp',
'BulletDynamics/CollisionDispatch/UnionFind.cpp',
'BulletDynamics/ConstraintSolver/ContactConstraint.cpp',
'BulletDynamics/ConstraintSolver/OdeConstraintSolver.cpp',
#'BulletDynamics/ConstraintSolver/OdeConstraintSolver2.cpp',
'BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp',
'BulletDynamics/ConstraintSolver/SimpleConstraintSolver.cpp',
'BulletDynamics/ConstraintSolver/Solve2LinearConstraint.cpp',
'BulletDynamics/ConstraintSolver/SorLcp.cpp',
'BulletDynamics/Dynamics/BU_Joint.cpp',
'BulletDynamics/Dynamics/ContactJoint.cpp',
'BulletDynamics/Dynamics/RigidBody.cpp',
]
sources = [ 'Bullet/BroadphaseCollision/BroadphaseProxy.cpp',
'Bullet/BroadphaseCollision/CollisionAlgorithm.cpp',
'Bullet/BroadphaseCollision/CollisionDispatcher.cpp',
'Bullet/BroadphaseCollision/SimpleBroadphase.cpp',
'Bullet/CollisionShapes/BoxShape.cpp',
'Bullet/CollisionShapes/CollisionShape.cpp',
'Bullet/CollisionShapes/ConeShape.cpp',
'Bullet/CollisionShapes/ConvexHullShape.cpp',
'Bullet/CollisionShapes/ConvexShape.cpp',
'Bullet/CollisionShapes/CylinderShape.cpp',
'Bullet/CollisionShapes/MinkowskiSumShape.cpp',
'Bullet/CollisionShapes/MultiSphereShape.cpp',
'Bullet/CollisionShapes/PolyhedralConvexShape.cpp',
'Bullet/CollisionShapes/Simplex1to4Shape.cpp',
'Bullet/CollisionShapes/SphereShape.cpp',
'Bullet/CollisionShapes/StridingMeshInterface.cpp',
'Bullet/CollisionShapes/TriangleMesh.cpp',
'Bullet/CollisionShapes/TriangleMeshShape.cpp',
'Bullet/CollisionShapes/BvhTriangleMeshShape.cpp',
'Bullet/CollisionShapes/ConvexTriangleCallback.cpp',
'Bullet/CollisionShapes/EmptyShape.cpp',
'Bullet/CollisionShapes/OptimizedBvh.cpp',
'Bullet/CollisionShapes/TriangleCallback.cpp',
'Bullet/CollisionShapes/TriangleIndexVertexArray.cpp',
'Bullet/NarrowPhaseCollision/BU_AlgebraicPolynomialSolver.cpp',
'Bullet/NarrowPhaseCollision/BU_Collidable.cpp',
'Bullet/NarrowPhaseCollision/BU_CollisionPair.cpp',
'Bullet/NarrowPhaseCollision/BU_EdgeEdge.cpp',
'Bullet/NarrowPhaseCollision/BU_Screwing.cpp',
'Bullet/NarrowPhaseCollision/BU_VertexPoly.cpp',
'Bullet/NarrowPhaseCollision/ContinuousConvexCollision.cpp',
'Bullet/NarrowPhaseCollision/ConvexCast.cpp',
'Bullet/NarrowPhaseCollision/GjkConvexCast.cpp',
'Bullet/NarrowPhaseCollision/GjkPairDetector.cpp',
'Bullet/NarrowPhaseCollision/MinkowskiPenetrationDepthSolver.cpp',
'Bullet/NarrowPhaseCollision/PersistentManifold.cpp',
'Bullet/NarrowPhaseCollision/RaycastCallback.cpp',
'Bullet/NarrowPhaseCollision/SubSimplexConvexCast.cpp',
'Bullet/NarrowPhaseCollision/VoronoiSimplexSolver.cpp',
'Bullet/NarrowPhaseCollision/ManifoldContactAddResult.cpp',
'BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/ConvexConvexAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/EmptyCollisionAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/ManifoldResult.cpp',
'BulletDynamics/CollisionDispatch/ToiContactDispatcher.cpp',
'BulletDynamics/CollisionDispatch/UnionFind.cpp',
'BulletDynamics/ConstraintSolver/ContactConstraint.cpp',
'BulletDynamics/ConstraintSolver/OdeConstraintSolver.cpp',
'BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp',
'BulletDynamics/ConstraintSolver/SimpleConstraintSolver.cpp',
'BulletDynamics/ConstraintSolver/Solve2LinearConstraint.cpp',
'BulletDynamics/ConstraintSolver/SorLcp.cpp',
'BulletDynamics/Dynamics/BU_Joint.cpp',
'BulletDynamics/Dynamics/ContactJoint.cpp',
'BulletDynamics/Dynamics/RigidBody.cpp']
bullet_env.Append (CPPPATH = ['.',
'Bullet',
'BulletDynamics',
'LinearMath'
])
source_files = bullet_sources
#sources = env.Glob('Bullet/BroadPhaseCollision/*.cpp')
#sources += env.Glob('Bullet/CollisionShapes/*.cpp')
#sources += env.Glob('Bullet/NarrowPhaseCollision/*.cpp')
#sources += env.Glob('BulletDynamics/CollisionDispatch/*.cpp')
#sources += env.Glob('BulletDynamics/ConstraintSolver/*.cpp')
#sources += env.Glob('BulletDynamics/Dynamics/*.cpp')
bullet_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/extern_bullet', source=bullet_sources)
incs = '. Bullet BulletDynamics LinearMath'
env.BlenderLib ( libname = 'extern_bullet', sources=sources, includes=Split(incs), defines=Split(defs), libtype='game2', priority=20, compileflags=cflags )

View File

@ -2,38 +2,34 @@
import sys
import os
qhull_env = Environment(ENV = os.environ)
# Import the C flags set in the SConstruct file
Import ('cflags')
Import ('defines')
Import ('user_options_dict')
Import('env')
defs = ''
cflags = []
if sys.platform=='linux2' or sys.platform=='linux-i386':
qhull_env.Append (CCFLAGS = ['-O2', '-ansi'])
elif sys.platform=='win32':
qhull_env.Append (CCFLAGS = ['/O2'])
cflags += ['-O2','-ansi']
elif env['OURPLATFORM']=='win32-vc':
cflags += ['/O2']
elif env['OURPLATFORM']=='win32-mingw':
cflags += ['-O2']
elif sys.platform=='sunos':
qhull_env.Append (CCFLAGS = ['Xc', '-v', '-fast'])
cflags += ['Xc', '-v', '-fast']
elif sys.platform=='darwin':
qhull_env.Append (CCFLAGS = ['-O2', '-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4'])
else:
qhull_env.Append (CCFLAGS = cflags)
qhull_env.Append (CPPDEFINES = defines)
cflags += ['-O2', '-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4']
source_files = ['src/geom.c',
'src/geom2.c',
'src/global.c',
'src/io.c',
'src/mem.c',
'src/merge.c',
'src/poly.c',
'src/poly2.c',
'src/qhull.c',
'src/qset.c',
'src/stat.c',
'src/user.c']
sources = ['src/geom.c',
'src/geom2.c',
'src/global.c',
'src/io.c',
'src/mem.c',
'src/merge.c',
'src/poly.c',
'src/poly2.c',
'src/qhull.c',
'src/qset.c',
'src/stat.c',
'src/user.c']
qhull_env.Append (CPPPATH = ['include',
'src'])
qhull_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/extern_qhull', source=source_files)
incs = 'include src'
env.BlenderLib ( 'extern_qhull', sources, Split(incs), Split(defs), libtype='game2', priority=50, compileflags = cflags)

View File

@ -1,29 +1,23 @@
#!/usr/bin/python
import sys
import os
solid_env = Environment(ENV = os.environ)
Import('env')
# Import the C flags set in the SConstruct file
Import ('cflags')
#Import ('cxxflags')
#Import ('defines')
Import ('user_options_dict')
#defines = ['QHULL', '_LIB']
defines = ['USE_DOUBLES','QHULL', '_LIB']
#cflags = []
cxxflags = []
defs = 'USE_DOUBLES QHULL _LIB'
cflags = []
if sys.platform=='win32':
defines += ['WIN32','NDEBUG', '_WINDOWS', '_LIB']
#cflags += ['/MT', '/W3', '/GX', '/O2', '/Op']
cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6']
if env['OURPLATFORM']=='win32-vc':
defs += ' WIN32 NDEBUG _WINDOWS _LIB'
cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6']
elif env['OURPLATFORM']=='win32-mingw':
defs += ' NDEBUG'
cflags += ['-O2']
elif sys.platform=='linux2' or sys.platform=='linux-i386' or sys.platform=='freebsd4' or sys.platform=='freebsd5':
defines += ['NDEBUG']
cflags += ['-O2']
defs += ' NDEBUG'
cflags += ['-O2']
elif sys.platform=='darwin' :
defines += ['NDEBUG']
cflags += ['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4']
defs += ' NDEBUG'
cflags += ['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math', '-mpowerpc' , '-mtune=G4']
else:
print "################################################"
@ -33,45 +27,8 @@ else:
print "and cflags / cxxflags to the"
print "extern/solid/SConscript file"
solid_env.Append (CCFLAGS = cflags)
solid_env.Append (CPPFLAGS = cxxflags)
sources = env.Glob('src/*.cpp') + env.Glob('src/convex/*.cpp') + env.Glob('src/complex/*.cpp') + env.Glob('src/broad/*.cpp')
solid_env.Append (CPPDEFINES = defines)
incs = 'include src src/broad src/complex src/convex ../qhull/include'
solid_sources = ['src/DT_C-api.cpp',
'src/DT_Encounter.cpp',
'src/DT_Object.cpp',
'src/DT_RespTable.cpp',
'src/DT_Scene.cpp']
convex_sources = ['src/convex/DT_Accuracy.cpp',
'src/convex/DT_Box.cpp',
'src/convex/DT_Cone.cpp',
'src/convex/DT_Convex.cpp',
'src/convex/DT_Cylinder.cpp',
'src/convex/DT_Facet.cpp',
'src/convex/DT_LineSegment.cpp',
'src/convex/DT_PenDepth.cpp',
'src/convex/DT_Point.cpp',
'src/convex/DT_Polyhedron.cpp',
'src/convex/DT_Polytope.cpp',
'src/convex/DT_Sphere.cpp',
'src/convex/DT_Triangle.cpp']
complex_sources = ['src/complex/DT_BBoxTree.cpp',
'src/complex/DT_Complex.cpp']
broad_sources = ['src/broad/BP_C-api.cpp',
'src/broad/BP_EndpointList.cpp',
'src/broad/BP_Proxy.cpp',
'src/broad/BP_Scene.cpp']
solid_env.Append (CPPPATH = ['include',
'src',
'src/broad',
'src/complex',
'src/convex',
'../qhull/include'])
source_files = solid_sources + convex_sources + complex_sources + broad_sources
solid_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/extern_solid', source=source_files)
env.BlenderLib ( libname='extern_solid', sources=sources, includes=Split(incs), defines=Split(defs), libtype='game2', priority=45 , compileflags = cflags)

View File

@ -13,6 +13,10 @@ SConscript(['SoundSystem/SConscript',
'elbeem/SConscript',
'opennl/SConscript'])
# NEW_CSG was intended for intern/csg, but
# getting it to compile is difficult
# intern/bsp has been used anyway, so
# perhaps get rid of intern/csg?
NEW_CSG='false'
if NEW_CSG=='false':

View File

@ -1,47 +1,17 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('extra_includes')
Import ('library_env')
Import ('env')
soundsys_env = library_env.Copy ()
sources = env.Glob('dummy/*.cpp') + env.Glob('intern/*.cpp')
source_files = ['dummy/SND_DummyDevice.cpp',
'intern/SND_AudioDevice.cpp',
'intern/SND_C-api.cpp',
'intern/SND_CDObject.cpp',
'intern/SND_DeviceManager.cpp',
'intern/SND_IdObject.cpp',
'intern/SND_Scene.cpp',
'intern/SND_SoundListener.cpp',
'intern/SND_SoundObject.cpp',
'intern/SND_Utils.cpp',
'intern/SND_WaveCache.cpp',
'intern/SND_WaveSlot.cpp']
incs = '. intern ../moto/include ../string dummy openal sdl'
defs = ''
if env['WITH_BF_OPENAL'] == 1:
sources += env.Glob('openal/*.cpp') + env.Glob('sdl/*.cpp')
incs += ' ' + env['BF_OPENAL_INC']
incs += ' ' + env['BF_SDL_INC']
soundsys_env.Append (CPPPATH = ['.',
'../SoundSystem',
'intern',
'../moto/include',
'../string',
'dummy',
'openal',
'sdl'])
if env['WITH_BF_OPENAL'] == 0:
defs = 'NO_SOUND'
if user_options_dict['USE_OPENAL'] == 1:
source_files += ['openal/SND_OpenALDevice.cpp',
'openal/pthread_cancel.cpp',
'sdl/SND_SDLCDDevice.cpp']
soundsys_env.Append (CPPPATH=user_options_dict['OPENAL_INCLUDE'])
soundsys_env.Append (CPPPATH=user_options_dict['SDL_INCLUDE'])
if user_options_dict['USE_FMOD'] == 1:
source_files += ['fmod/SND_FmodDevice.cpp']
if user_options_dict['USE_OPENAL'] == 0 and user_options_dict['USE_FMOD'] == 0:
soundsys_env.Append (CPPDEFINES = 'NO_SOUND')
soundsys_env.Append (CPPPATH = extra_includes)
soundsys_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/soundsystem', source=source_files)
env.BlenderLib ('blender_sndsys', sources, Split(incs), Split(defs), libtype=['core','player2'], priority = [20,10] )

View File

@ -1,24 +1,10 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
bmfont_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/BMF_Api.cpp',
'intern/BMF_BitmapFont.cpp',
'intern/BMF_font_helv10.cpp',
'intern/BMF_font_helv12.cpp',
'intern/BMF_font_helvb10.cpp',
'intern/BMF_font_helvb12.cpp',
'intern/BMF_font_helvb14.cpp',
'intern/BMF_font_helvb8.cpp',
'intern/BMF_font_scr12.cpp',
'intern/BMF_font_scr14.cpp',
'intern/BMF_font_scr15.cpp']
incs = '. intern'
incs += ' ' + env['BF_OPENGL_INC']
defs = ''
bmfont_env.Append (CPPPATH = ['.',
'../bmfont',
'intern'])
bmfont_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
bmfont_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_BMF', source=source_files)
env.BlenderLib ('blender_BMF', sources, Split(incs), Split(defs), libtype='intern', priority = 20 )

View File

@ -1,34 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
bop_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = [
'intern/BOP_BBox.cpp',
'intern/BOP_BSPNode.cpp',
'intern/BOP_BSPTree.cpp',
'intern/BOP_Edge.cpp',
'intern/BOP_Face.cpp',
'intern/BOP_Face2Face.cpp',
'intern/BOP_Interface.cpp',
'intern/BOP_Material.cpp',
'intern/BOP_MaterialContainer.cpp',
'intern/BOP_MathUtils.cpp',
'intern/BOP_Merge.cpp',
'intern/BOP_Mesh.cpp',
'intern/BOP_Segment.cpp',
'intern/BOP_Splitter.cpp',
'intern/BOP_Tag.cpp',
'intern/BOP_Triangulator.cpp',
'intern/BOP_Vertex.cpp'
]
incs = '. intern extern ../moto/include ../container ../memutil'
bop_env.Append (CPPPATH = [ '.',
'intern',
'extern',
'#intern/moto/include',
'#intern/container',
'#intern/memutil'])
bop_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_bop', source=source_files)
env.BlenderLib ('blender_bop', sources, Split(incs) , [], libtype='common', priority = 5 )

View File

@ -1,25 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
bsp_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/BSP_CSGHelper.cpp',
'intern/BSP_CSGMesh.cpp',
'intern/BSP_CSGMeshBuilder.cpp',
'intern/BSP_CSGMeshSplitter.cpp',
'intern/BSP_CSGNCMeshSplitter.cpp',
'intern/BSP_CSGUserData.cpp',
'intern/BSP_FragNode.cpp',
'intern/BSP_FragTree.cpp',
'intern/BSP_MeshFragment.cpp',
'intern/BSP_MeshPrimitives.cpp',
'intern/BSP_Triangulate.cpp',
'intern/CSG_BooleanOps.cpp']
incs = 'intern ../container ../moto/include ../memutil'
bsp_env.Append (CPPPATH = ['intern',
'../container',
'../moto/include',
'../memutil'])
bsp_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_BSP', source=source_files)
env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=15 )

View File

@ -1,11 +1,7 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
cont_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
incs = '.'
source_files = ['intern/CTR_List.cpp']
cont_env.Append (CPPPATH = ['.','../container'])
cont_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_CTR', source=source_files)
env.BlenderLib ('blender_CTR', sources, Split(incs) , [], libtype='intern', priority = 5 )

View File

@ -1,30 +1,8 @@
#!/usr/bin/python
csg_env = Environment()
Import('env')
# Import the C flags set in the SConstruct file
Import ('cflags')
Import ('cxxflags')
Import ('defines')
csg_env.Append (CCFLAGS = cflags)
csg_env.Append (CXXFLAGS = cxxflags)
csg_env.Append (CPPDEFINES = defines)
sources = env.Glob('intern/*.cpp') + env.Glob('intern/*.inl')
source_files = ['intern/CSG_BBoxTree.cpp',
'intern/CSG_ConnectedMeshWrapper.inl',
'intern/CSG_Math.inl',
'intern/CSG_Triangulate.inl',
'intern/blender/CSG_CsgOp.cpp',
'intern/blender/CSG_Interface.cpp',
'intern/CSG_BooleanOp.inl',
'intern/CSG_MeshWrapper.inl',
'intern/MT_Line3.cpp'
]
incs = 'intern ../container ../moto/include ../memutil intern/blender extern'
csg_env.Append (CPPPATH = ['intern',
'../container',
'../moto/include',
'../memutil',
'intern/blender',
'extern'])
csg_env.Library (target='#/lib/blender_BSP', source=source_files)
env.BlenderLib ('blender_BSP', sources, Split(incs) , [], libtype='blender', priority=15)

View File

@ -1,22 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
dec_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/LOD_EdgeCollapser.cpp',
'intern/LOD_ExternNormalEditor.cpp',
'intern/LOD_FaceNormalEditor.cpp',
'intern/LOD_ManMesh2.cpp',
'intern/LOD_MeshPrimitives.cpp',
'intern/LOD_QSDecimator.cpp',
'intern/LOD_QuadricEditor.cpp',
'intern/LOD_decimation.cpp']
incs = '. ../moto/include ../container ../memutil'
dec_env.Append (CPPPATH = ['intern',
'extern',
'../moto/include',
'../container',
'../memutil'])
dec_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_LOD', source=source_files)
env.BlenderLib ('blender_LOD', sources, Split(incs) , [], libtype=['core','common', 'player2'], priority = [10, 20, 5] )

View File

@ -1,55 +1,23 @@
#!/usr/bin/python
Import ('library_env')
Import('user_options_dict');
Import('use_fluidsim');
import sys
Import('env')
#if use_fluidsim=='false':
# # print "El'Beem Fluid Simulation Disabled..." # debug
# elbeem_env.Append (CPPPATH = user_options_dict['PNG_INCLUDE'])
# elbeem_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
# elbeem_env.Append(CPPDEFINES= 'ELBEEM_DUMMIES');
# # dummy interface build
# Sources = [
# "intern/utilities.cpp",
# "intern/blenderdummy.cpp"
# ]; # sources
elbeem_env = library_env.Copy();
elbeem_env.Append(CPPDEFINES= 'NOGUI');
elbeem_env.Append(CPPDEFINES= [('ELBEEM_BLENDER',1)] );
if use_fluidsim=='false':
# print "El'Beem Fluid Simulation Disabled..." # debug
elbeem_env.Append (CPPPATH = user_options_dict['PNG_INCLUDE'])
# dummy interface build
Sources = [
"intern/utilities.cpp",
"intern/blenderdummy.cpp"
]; # sources
else:
# print "Including El'Beem Fluid Simulation..." # debug
elbeem_env.Append (CPPPATH = user_options_dict['PNG_INCLUDE'])
elbeem_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
elbeem_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
sources = env.Glob('intern/*.cpp')
# main build----------------------------------------
Sources = [
"intern/cfgparser.cpp",
"intern/cfglexer.cpp",
"intern/attributes.cpp",
"intern/elbeem.cpp",
"intern/isosurface.cpp",
"intern/ntl_blenderdumper.cpp",
"intern/ntl_bsptree.cpp",
"intern/ntl_geometrymodel.cpp",
"intern/ntl_geometryobject.cpp",
"intern/ntl_lightobject.cpp",
"intern/ntl_ray.cpp",
"intern/ntl_scene.cpp",
"intern/ntl_world.cpp",
"intern/parametrizer.cpp",
"intern/particletracer.cpp",
"intern/simulation_object.cpp",
"intern/utilities.cpp",
"intern/blendercall.cpp",
"intern/solver_init.cpp",
"intern/solver_interface.cpp",
"intern/solver_main.cpp",
"intern/solver_util.cpp"
]; # sources
elbeem_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_elbeem', source=Sources)
defs = 'NOGUI ELBEEM_BLENDER=1'
if sys.platform=='win32':
defs += ' USE_MSVC6FIXES'
incs = env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC'] + ' ' +env['BF_SDL_INC']
env.BlenderLib ('blender_elbeem', sources, Split(incs), Split(defs), libtype='blender', priority=0 )

View File

@ -1,42 +1,30 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('window_system')
import sys
import os
ghost_env = library_env.Copy ()
Import ('env')
source_files = ['intern/GHOST_Buttons.cpp',
'intern/GHOST_C-api.cpp',
'intern/GHOST_CallbackEventConsumer.cpp',
'intern/GHOST_DisplayManager.cpp',
'intern/GHOST_EventManager.cpp',
'intern/GHOST_EventPrinter.cpp',
'intern/GHOST_ISystem.cpp',
'intern/GHOST_ModifierKeys.cpp',
'intern/GHOST_Rect.cpp',
'intern/GHOST_System.cpp',
'intern/GHOST_TimerManager.cpp',
'intern/GHOST_Window.cpp',
'intern/GHOST_WindowManager.cpp']
window_system = sys.platform
if window_system == 'X11':
source_files += ['intern/GHOST_DisplayManagerX11.cpp',
'intern/GHOST_SystemX11.cpp',
'intern/GHOST_WindowX11.cpp']
elif window_system == 'WIN32':
source_files += ['intern/GHOST_DisplayManagerWin32.cpp',
'intern/GHOST_SystemWin32.cpp',
'intern/GHOST_WindowWin32.cpp']
elif window_system == 'CARBON':
source_files += ['intern/GHOST_DisplayManagerCarbon.cpp',
'intern/GHOST_SystemCarbon.cpp',
'intern/GHOST_WindowCarbon.cpp']
sources = env.Glob('intern/*.cpp')
pf = ['GHOST_DisplayManager', 'GHOST_System', 'GHOST_Window']
if window_system == 'linux2':
for f in pf:
sources.remove('intern' + os.sep + f + 'Win32.cpp')
sources.remove('intern' + os.sep + f + 'Carbon.cpp')
elif window_system == 'win32':
for f in pf:
sources.remove('intern' + os.sep + f + 'X11.cpp')
sources.remove('intern' + os.sep + f + 'Carbon.cpp')
elif window_system == 'darwin':
for f in pf:
sources.remove('intern' + os.sep + f + 'Win32.cpp')
sources.remove('intern' + os.sep + f + 'X11.cpp')
else:
print "Unknown window system specified."
print "Unknown window system specified."
Exit()
ghost_env.Append (CPPPATH = ['.',
'../ghost',
'../string'])
ghost_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
ghost_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_GHOST', source=source_files)
incs = '. ../string ' + env['BF_OPENGL_INC']
env.BlenderLib ('blender_GHOST', sources, Split(incs), [], libtype='core', priority = 25 )

View File

@ -1,11 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
guardal_env = library_env.Copy ()
Import('env')
source_files = ['intern/mallocn.c']
sources = env.Glob('intern/*.c')
incs = '.'
guardal_env.Append (CPPPATH = ['../guardedalloc'])
guardal_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_guardedalloc', source=source_files)
env.BlenderLib ('blender_guardedalloc', sources, Split(incs), [], libtype='intern', priority = 0 )

View File

@ -1,17 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
iksolver_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/IK_QTask.cpp',
'intern/IK_QJacobianSolver.cpp',
'intern/IK_QSegment.cpp',
'intern/IK_QJacobian.cpp',
'intern/IK_Solver.cpp']
incs = 'intern ../moto/include ../memutil'
iksolver_env.Append (CPPPATH = ['intern',
'../moto/include',
'../memutil'])
iksolver_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_IK', source=source_files)
env.BlenderLib ('blender_IK', sources, Split(incs), [], libtype='blender', priority=10 )

View File

@ -1,11 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
memutil_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/MEM_RefCountedC-Api.cpp']
incs = '.'
memutil_env.Append (CPPPATH = ['.','../memutil'])
memutil_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_MEM', source=source_files)
env.BlenderLib ('blender_MEM', sources, Split(incs), [], libtype='intern', priority = 10 )

View File

@ -1,22 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
moto_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/MT_Assert.cpp',
'intern/MT_CmMatrix4x4.cpp',
'intern/MT_Matrix3x3.cpp',
'intern/MT_Matrix4x4.cpp',
'intern/MT_Plane3.cpp',
'intern/MT_Point3.cpp',
'intern/MT_Quaternion.cpp',
'intern/MT_Transform.cpp',
'intern/MT_Vector2.cpp',
'intern/MT_Vector3.cpp',
'intern/MT_Vector4.cpp',
'intern/MT_random.cpp']
incs = 'include'
moto_env.Append (CPPPATH = ['include'])
moto_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_MT', source=source_files)
env.BlenderLib ('blender_MT', sources, Split(incs), [], libtype=['intern','game','game2'], priority = [15, 55,100] )

View File

@ -1,43 +1,9 @@
Import ('user_options_dict')
Import ('library_env')
#!/usr/bin/python
Import ('env')
opennl_env = library_env.Copy ()
sources = env.Glob('intern/*.c') + env.Glob('superlu/*.c')
source_files = ['intern/opennl.c',
'superlu/colamd.c',
'superlu/get_perm_c.c',
'superlu/heap_relax_snode.c',
'superlu/lsame.c',
'superlu/memory.c',
'superlu/mmd.c',
'superlu/relax_snode.c',
'superlu/scolumn_bmod.c',
'superlu/scolumn_dfs.c',
'superlu/scopy_to_ucol.c',
'superlu/sgssv.c',
'superlu/sgstrf.c',
'superlu/sgstrs.c',
'superlu/smemory.c',
'superlu/smyblas2.c',
'superlu/sp_coletree.c',
'superlu/sp_ienv.c',
'superlu/sp_preorder.c',
'superlu/spanel_bmod.c',
'superlu/spanel_dfs.c',
'superlu/spivotL.c',
'superlu/spruneL.c',
'superlu/ssnode_bmod.c',
'superlu/ssnode_dfs.c',
'superlu/ssp_blas2.c',
'superlu/ssp_blas3.c',
'superlu/strsv.c',
'superlu/superlu_timer.c',
'superlu/sutil.c',
'superlu/util.c',
'superlu/xerbla.c']
incs = 'extern superlu'
opennl_env.Append (CPPPATH = ['extern',
'superlu'])
opennl_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_ONL', source=source_files)
env.BlenderLib ('blender_ONL', sources, Split(incs), [], libtype='core', priority=55 )

View File

@ -1,11 +1,7 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
string_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
incs = '.'
source_files = ['intern/STR_String.cpp']
string_env.Append (CPPPATH = ['.', '../string'])
string_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_STR', source=source_files)
env.BlenderLib ('blender_STR', sources, Split(incs), [], libtype='core', priority = 30 )

View File

@ -1,8 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('env')
SConscript(['blender/SConscript',
'kernel/SConscript',
'creator/SConscript'])
if user_options_dict['BUILD_GAMEENGINE'] == 1:
SConscript (['gameengine/SConscript'])
'kernel/SConscript',
'creator/SConscript'])
if env['WITH_BF_GAMEENGINE'] == 1:
SConscript (['gameengine/SConscript'])

View File

@ -1,5 +1,5 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('env')
SConscript(['avi/SConscript',
'blenkernel/SConscript',
@ -16,11 +16,11 @@ SConscript(['avi/SConscript',
'src/SConscript',
'yafray/SConscript'])
if user_options_dict['USE_OPENEXR'] == 1:
SConscript (['imbuf/intern/openexr/SConscript'])
if user_options_dict['USE_INTERNATIONAL'] == 1:
if env['WITH_BF_FREETYPE'] == 1:
SConscript (['ftfont/SConscript'])
if user_options_dict['USE_QUICKTIME'] == 1:
if env['WITH_BF_OPENEXR'] == 1:
SConscript (['imbuf/intern/openexr/SConscript'])
if env['WITH_BF_QUICKTIME'] == 1:
SConscript (['quicktime/SConscript'])

View File

@ -1,22 +1,10 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
#Import ('extra_includes')
Import ('env')
avi_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
source_files = ['intern/avi.c',
'intern/avirgb.c',
'intern/codecs.c',
'intern/endian.c',
'intern/mjpeg.c',
'intern/options.c',
'intern/rgb32.c']
incs = '. #/intern/guardedalloc'
incs += ' ' + env['BF_JPEG_INC']
avi_env.Append (CPPPATH = ['.',
'../avi',
'#/intern/guardedalloc'])
avi_env.Append (CPPPATH=user_options_dict['JPEG_INCLUDE'])
avi_env.Append (CPPPATH=extra_includes)
avi_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_avi', source=source_files)
env.BlenderLib ('blender_avi', sources, Split(incs), [], libtype='core', priority = 90 )

View File

@ -1,81 +1,32 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
blenkernel_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
source_files = ['intern/constraint.c',
'intern/depsgraph.c',
'intern/DerivedMesh.c',
'intern/group.c',
'intern/icons.c',
'intern/material.c',
'intern/sca.c',
'intern/world.c',
'intern/curve.c',
'intern/mball.c',
'intern/scene.c',
'intern/writeavi.c',
'intern/action.c',
'intern/deform.c',
'intern/image.c',
'intern/mesh.c',
'intern/modifier.c',
'intern/screen.c',
'intern/anim.c',
'intern/displist.c',
'intern/ipo.c',
'intern/nla.c',
'intern/sound.c',
'intern/armature.c',
'intern/effect.c',
'intern/key.c',
'intern/object.c',
'intern/CCGSubSurf.c',
'intern/subsurf_ccg.c',
'intern/blender.c',
'intern/exotic.c',
'intern/lattice.c',
'intern/packedFile.c',
'intern/text.c',
'intern/script.c',
'intern/bmfont.c',
'intern/font.c',
'intern/library.c',
'intern/property.c',
'intern/softbody.c',
'intern/node.c',
'intern/node_shaders.c',
'intern/node_composite.c',
'intern/colortools.c',
'intern/texture.c']
incs = '. #/intern/guardedalloc ../include ../blenlib ../makesdna'
incs += ' ../python ../render/extern/include #/intern/decimation/extern'
incs += ' ../imbuf ../avi #/intern/elbeem/extern'
incs += ' #/intern/iksolver/extern ../blenloader ../quicktime'
blenkernel_env.Append (CPPPATH = ['.',
'../blenkernel',
'#/intern/guardedalloc',
'../include',
'../blenlib',
'../makesdna',
'../python',
'../render/extern/include',
'../../../intern/decimation/extern',
'../imbuf',
'../avi',
'../quicktime',
'#/intern/elbeem/extern',
'#/intern/iksolver/extern',
'../blenloader'])
incs += ' ' + env['BF_OPENGL_INC']
incs += ' ' + env['BF_ZLIB_INC']
incs += ' ' + env['BF_SDL_INC']
if user_options_dict['USE_INTERNATIONAL'] == 1:
blenkernel_env.Append (CPPDEFINES = 'WITH_FREETYPE2')
defs = ''
#fixme: if user_options_dict['USE_CCGSUBSURFLIB'] == 1:
# blenkernel_env.Append (CPPDEFINES = 'WITH_CCGSUBSURF')
if env['WITH_BF_FREETYPE'] == 1:
defs += 'WITH_FREETYPE2'
blenkernel_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_blenkernel', source=source_files)
if env['WITH_BF_OPENEXR'] == 1:
defs += ' WITH_OPENEXR'
SConscript(['bad_level_call_stubs/SConscript'])
if env['WITH_BF_QUICKTIME'] == 1:
defs += ' WITH_QUICKTIME'
incs += ' ' + env['BF_QUICKTIME_INC']
blenkernel_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
blenkernel_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
blenkernel_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
defs += ' WITH_CCGSUBSURF'
if env['WITH_BF_PLAYER']:
SConscript(['bad_level_call_stubs/SConscript'])
env.BlenderLib ( libname = 'blenkernel', sources = sources, includes = Split(incs), defines = Split(defs), libtype='core', priority = 65 )

View File

@ -1,27 +1,14 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
blenkernel_blc_env = library_env.Copy ()
sources = 'stubs.c'
source_files = ['stubs.c'
]
blenkernel_blc_env.Append (CPPPATH = ['.',
'..',
'../../render/extern/include',
'#/intern/iksolver/extern',
'../../blenlib',
'../../include',
'../../makesdna'])
"""
,
'#/intern/guardedalloc',
'../python',
'../imbuf',
'../avi',
'../blenloader']
"""
if user_options_dict['USE_INTERNATIONAL'] == 1:
blenkernel_blc_env.Append (CPPDEFINES = 'WITH_FREETYPE2')
incs = '. .. ../../render/extern/include'
incs += ' #/intern/iksolver/extern ../../blenlib'
incs += ' ../../include ../../makesdna'
blenkernel_blc_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_blenkernel_blc', source=source_files)
defs = ''
if env['WITH_BF_FREETYPE'] == 1:
defs += 'WITH_FREETYPE2'
env.BlenderLib ('blenkernel_blc', sources = Split(sources), includes=Split(incs), defines=Split(defs), libtype='player2',priority=0 )

View File

@ -1,47 +1,15 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
Import ('env')
blenlib_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
source_files = ['intern/BLI_dynstr.c',
'intern/BLI_ghash.c',
'intern/edgehash.c',
'intern/BLI_linklist.c',
'intern/BLI_memarena.c',
'intern/arithb.c',
'intern/dynlib.c',
'intern/fileops.c',
'intern/gsqueue.c',
'intern/matrixops.c',
'intern/noise.c',
'intern/psfont.c',
'intern/rand.c',
'intern/rct.c',
'intern/scanfill.c',
'intern/storage.c',
'intern/time.c',
'intern/util.c',
'intern/vectorops.c',
'intern/freetypefont.c',
'intern/jitter.c',
'intern/threads.c',
'intern/winstuff.c']
incs = '. ../makesdna ../blenkernel #/intern/guardedalloc ../include'
incs += ' ' + env['BF_FREETYPE_INC']
incs += ' ' + env['BF_ZLIB_INC']
incs += ' ' + env['BF_SDL_INC']
defs = ''
if env['WITH_BF_FREETYPE'] == 1:
defs = 'WITH_FREETYPE2'
blenlib_env.Append (CPPPATH = ['.',
'../blenlib',
'../makesdna',
'../blenkernel',
'#/intern/guardedalloc',
'../include'])
if user_options_dict['USE_INTERNATIONAL'] == 1:
blenlib_env.Append (CPPDEFINES = 'WITH_FREETYPE2')
blenlib_env.Append (CPPPATH = extra_includes)
blenlib_env.Prepend (CPPPATH = user_options_dict['FREETYPE_INCLUDE'])
blenlib_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
blenlib_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
blenlib_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_blenlib', source=source_files)
env.BlenderLib ( 'blender_blenlib', sources, Split(incs), Split(defs), libtype='core', priority = 85 )

View File

@ -1,28 +1,13 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
blenloader_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
source_files = ['intern/genfile.c',
'intern/readblenentry.c',
'intern/undofile.c',
'intern/readfile.c',
'intern/writefile.c']
incs = '. #/intern/guardedalloc ../blenlib ../blenkernel'
incs += ' ../makesdna ../readblenfile ../include'
incs += ' ../python ../../kernel/gen_messaging'
incs += ' ../render/extern/include'
blenloader_env.Append (CPPPATH = ['.',
'../blenloader',
'#/intern/guardedalloc',
'../blenlib',
'../blenkernel',
'../makesdna',
'../readblenfile',
'../include',
'../python',
'../../kernel/gen_messaging',
'../render/extern/include',
'../writestreamglue',
'../readstreamglue'])
incs += ' ' + env['BF_ZLIB_INC']
blenloader_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_blenloader', source=source_files)
blenloader_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
env.BlenderLib ( 'blender_blenloader', sources, Split(incs), [], libtype='core', priority = 70 )

View File

@ -1,17 +1,14 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
blenplugin_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
source_files = ['intern/pluginapi.c']
incs = '. .. #/intern/guardedalloc ../blenlib ../imbuf ../makesdna'
blenplugin_env.Append (CPPPATH = ['.',
'..',
'../blenpluginapi',
'#/intern/guardedalloc',
'../blenlib',
'../imbuf',
'../makesdna'])
defs = []
blenplugin_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_blenpluginapi', source=source_files)
if env['WITH_BF_QUICKTIME'] == 1:
defs.append('WITH_QUICKTIME')
incs += ' ' + env['BF_QUICKTIME_INC']
env.BlenderLib ( libname = 'blender_blenpluginapi', sources = sources, includes = Split(incs), defines = defs, libtype='core', priority = 75 )

View File

@ -1,23 +1,15 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
import sys
Import ('env')
ftf_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/FTF_Api.cpp',
'intern/FTF_TTFont.cpp']
include_paths = ['.',
'intern',
'../blenkernel',
'../blenlib',
'../makesdna']
incs = '. intern ../blenkernel ../blenlib ../makesdna'
incs += ' ' + env['BF_FTGL_INC']
incs += ' ' + env['BF_FREETYPE_INC']
incs += ' ' + env['BF_GETTEXT_INC']
ftf_env.Append(CPPPATH = extra_includes)
ftf_env.Append(CPPPATH = include_paths)
ftf_env.Prepend (CPPPATH = user_options_dict['FTGL_INCLUDE'])
ftf_env.Prepend (CPPPATH = user_options_dict['FREETYPE_INCLUDE'])
ftf_env.Prepend (CPPPATH = user_options_dict['GETTEXT_INCLUDE'])
ftf_env.Append(CPPDEFINES = 'FTGL_STATIC_LIBRARY')
ftf_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_FTF', source=source_files)
defs = 'FTGL_STATIC_LIBRARY'
if sys.platform == 'win32':
defs += ' _WIN32 USE_GETTEXT_DLL'
env.BlenderLib ( 'blender_FTF', sources, Split(incs), Split(defs), libtype='international', priority=0 )

View File

@ -1,56 +1,23 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
Import ('env')
imbuf_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
#if user_options_dict['USE_OPENEXR'] == 1:
# SConscript (['intern/openexr/SConscript'])
incs = '. ../makesdna #/intern/guardedalloc ../blenlib'
incs += ' ../avi ../quicktime ../blenkernel'
source_files = ['intern/allocimbuf.c',
'intern/amiga.c',
'intern/anim.c',
'intern/anim5.c',
'intern/antialias.c',
'intern/bitplanes.c',
'intern/bmp.c',
'intern/cmap.c',
'intern/cspace.c',
'intern/data.c',
'intern/dither.c',
'intern/divers.c',
'intern/dynlibtiff.c',
'intern/filter.c',
'intern/ham.c',
'intern/hamx.c',
'intern/iff.c',
'intern/imageprocess.c',
'intern/iris.c',
'intern/jpeg.c',
'intern/png.c',
'intern/radiance_hdr.c',
'intern/readimage.c',
'intern/rectop.c',
'intern/rotate.c',
'intern/scaling.c',
'intern/targa.c',
'intern/tiff.c',
'intern/util.c',
'intern/writeimage.c']
incs += ' ' + env['BF_JPEG_INC']
incs += ' ' + env['BF_PNG_INC']
incs += ' ' + env['BF_TIFF_INC']
incs += ' ' + env['BF_ZLIB_INC']
imbuf_env.Append (CPPPATH = ['.',
'../imbuf',
'../makesdna',
'#/intern/guardedalloc',
'../blenlib',
'../avi',
'../quicktime',
'../blenkernel'])
defs = []
imbuf_env.Append (CPPPATH = user_options_dict['JPEG_INCLUDE'])
imbuf_env.Append (CPPPATH = user_options_dict['PNG_INCLUDE'])
imbuf_env.Append (CPPPATH = user_options_dict['TIFF_INCLUDE'])
imbuf_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
imbuf_env.Append (CPPPATH = extra_includes)
imbuf_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_imbuf', source=source_files)
if env['WITH_BF_OPENEXR'] == 1:
defs.append('WITH_OPENEXR')
if env['WITH_BF_QUICKTIME']==1:
incs += ' ' + env['BF_QUICKTIME_INC']
defs.append('WITH_QUICKTIME')
env.BlenderLib ( libname = 'blender_imbuf', sources = sources, includes = Split(incs), defines = defs, libtype='core', priority = 80 )

View File

@ -1,22 +1,17 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
Import ('env')
openexr_env = library_env.Copy ()
source_files = ['openexr_api.cpp']
source_files = ['openexr_api.cpp'
]
incs = ['.',
'../../../blenkernel',
'../../',
'..',
'../../../blenlib',
'../../../makesdna']
incs += Split(env['BF_OPENEXR_INC'])
include_paths = ['.',
'../../../blenkernel',
'../../',
'..',
'../../../blenlib',
'../../../makesdna']
defs = []
openexr_env.Append(CPPPATH = extra_includes)
openexr_env.Append(CPPPATH = include_paths)
openexr_env.Prepend (CPPPATH = user_options_dict['OPENEXR_INCLUDE'])
#ftf_env.Append(CPPDEFINES = 'FTGL_STATIC_LIBRARY')
openexr_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_openexr', source=source_files)
#openexr_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_openexr', source=source_files)
env.BlenderLib ('blender_openexr', source_files, incs, defs, libtype='core', priority = 90)

View File

@ -1,15 +1,6 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
#!/usr/bin/env python
Import ('env')
img_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/IMG_Api.cpp',
'intern/IMG_BrushRGBA32.cpp',
'intern/IMG_CanvasRGBA32.cpp',
'intern/IMG_Line.cpp',
'intern/IMG_Pixmap.cpp',
'intern/IMG_PixmapRGBA32.cpp',
'intern/IMG_Rect.cpp']
img_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_img', source=source_files)
env.BlenderLib ( 'blender_img', sources, [], [], libtype='core', priority = 35 )

View File

@ -1,14 +1,11 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
makesdna_env = library_env.Copy ()
Import ('env')
objs = []
o = SConscript('intern/SConscript')
objs.append (o)
makesdna_env.Append (CPPPATH = ['#/intern/guardedalloc'])
incs = '#/intern/guardedalloc'
makesdna_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_makesdna', source=objs)
env.BlenderLib ( 'blender_makesdna', objs, Split(incs), [], libtype='common', priority = 10 )

View File

@ -2,33 +2,39 @@
import sys
import os
Import ('cflags')
Import ('defines')
Import ('user_options_dict')
#Import ('cflags')
#Import ('defines')
Import ('env')
cflags = ''
defines = []
root_build_dir=env['BF_BUILDDIR']
# TODO: make sure the makesdna program does not get installed on the system.
source_files = ['makesdna.c']
makesdna_tool = Environment (ENV = os.environ, CCFLAGS='-DBASE_HEADER="\\"source/blender/makesdna/\\"" ')
makesdna_tool = env.Copy()
dna = env.Copy()
makesdna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesdna/\\"" ')
#makesdna_tool = Environment (ENV = os.environ, CCFLAGS='-DBASE_HEADER="\\"source/blender/makesdna/\\"" ')
makesdna_tool.Append (CPPPATH = ['#/intern/guardedalloc',
'../../makesdna'])
makesdna_tool.Replace (CC = user_options_dict['HOST_CC'])
makesdna_tool.Replace (PATH = user_options_dict['PATH'])
#makesdna_tool.Replace (CC = user_options_dict['HOST_CC'])
#makesdna_tool.Replace (PATH = user_options_dict['PATH'])
if sys.platform != 'cygwin':
makesdna_tool.Append (CCFLAGS = cflags)
makesdna_tool.Append (LINKFLAGS = user_options_dict['PLATFORM_LINKFLAGS'])
makesdna_tool.Append (CCFLAGS = cflags)
#makesdna_tool.Append (LINKFLAGS = user_options_dict['PLATFORM_LINKFLAGS'])
makesdna_tool.Append (CPPDEFINES = defines)
makesdna_tool.Append (LIBPATH = '#'+user_options_dict['BUILD_DIR']+'/lib')
makesdna_tool.Append (LIBPATH = '#'+root_build_dir+'/lib')
makesdna_tool.Append (LIBS = 'blender_guardedalloc')
makesdna_tool.Program (target = '#'+user_options_dict['BUILD_DIR']+'makesdna', source = source_files)
makesdna_tool.Program (target = '#'+root_build_dir+'makesdna', source = source_files)
dna = Environment (ENV = os.environ)
#dna = Environment (ENV = os.environ)
dna_dict = dna.Dictionary()
makesdna_name = user_options_dict['BUILD_DIR']+'makesdna' + dna_dict['PROGSUFFIX']
makesdna_name = root_build_dir+'makesdna' + dna_dict['PROGSUFFIX']
dna.Depends ('dna.c', '#'+makesdna_name)
dna.Command ('dna.c', '', user_options_dict['BUILD_DIR']+"makesdna $TARGET")
dna.Command ('dna.c', '', root_build_dir+"makesdna $TARGET")
obj = 'intern/dna.c'
Return ('obj')

View File

@ -1,81 +1,18 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
Import ('env')
python_env = library_env.Copy ()
sources = Split('BPY_interface.c BPY_menus.c') + env.Glob('api2_2x/*.c')
source_files = ['BPY_interface.c',
'BPY_menus.c',
'api2_2x/Armature.c',
'api2_2x/BezTriple.c',
'api2_2x/BGL.c',
'api2_2x/Blender.c',
'api2_2x/Bone.c',
'api2_2x/Camera.c',
'api2_2x/CurNurb.c',
'api2_2x/Curve.c',
'api2_2x/Draw.c',
'api2_2x/Effect.c',
'api2_2x/Font.c',
'api2_2x/EXPP_interface.c',
'api2_2x/Ipocurve.c',
'api2_2x/Ipo.c',
'api2_2x/Key.c',
'api2_2x/Lamp.c',
'api2_2x/Lattice.c',
'api2_2x/Library.c',
'api2_2x/MTex.c',
'api2_2x/Material.c',
'api2_2x/Mathutils.c',
'api2_2x/Mesh.c',
'api2_2x/Metaball.c',
'api2_2x/NLA.c',
'api2_2x/Noise.c',
'api2_2x/NMesh.c',
'api2_2x/Object.c',
'api2_2x/Pose.c',
'api2_2x/point.c',
'api2_2x/Registry.c',
'api2_2x/Scene.c',
'api2_2x/Sound.c',
'api2_2x/Sys.c',
'api2_2x/Types.c',
'api2_2x/Window.c',
'api2_2x/World.c',
'api2_2x/Pose.c',
'api2_2x/Image.c',
'api2_2x/Text.c',
'api2_2x/Text3d.c',
'api2_2x/Texture.c',
'api2_2x/Noise.c',
'api2_2x/charRGBA.c',
'api2_2x/constant.c',
'api2_2x/euler.c',
'api2_2x/gen_utils.c',
'api2_2x/logic.c',
'api2_2x/matrix.c',
'api2_2x/quat.c',
'api2_2x/rgbTuple.c',
'api2_2x/sceneRender.c',
'api2_2x/sceneRadio.c',
'api2_2x/sceneTimeLine.c',
'api2_2x/vector.c',
'api2_2x/windowTheme.c']
incs = 'api2_2x ../blenkernel ../blenlib ../blenloader'
incs += ' ../render/extern/include ../radiosity/extern/include'
incs += ' ../makesdna #intern/guardedalloc #intern/bmfont ../imbuf ../include'
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_OPENGL_INC']
python_env.Append (CPPPATH = ['api2_2x',
'../blenkernel',
'../blenlib',
'../blenloader',
'../render/extern/include',
'../radiosity/extern/include',
'../makesdna',
'#/intern/guardedalloc',
'#/intern/bmfont',
'../imbuf',
'../include'])
defs = []
python_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
python_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
python_env.Append (CPPPATH = extra_includes)
python_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_python', source=source_files)
if env['WITH_BF_QUICKTIME']==1:
incs += ' ' + env['BF_QUICKTIME_INC']
defs.append('WITH_QUICKTIME')
env.BlenderLib ( libname='blender_python', sources = Split(sources), includes = Split(incs), defines = defs, libtype=['core','game2'], priority = [60,115] )

View File

@ -1,26 +1,22 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
quicktime_env = library_env.Copy ()
quicktime_env.Append (CPPPATH = extra_includes)
Import ('env')
source_files = ['apple/quicktime_import.c',
'apple/quicktime_export.c']
quicktime_env.Append (CPPPATH = ['.',
'../quicktime',
'../makesdna',
'#/intern/guardedalloc',
'../blenlib',
'../blenkernel',
'../avi',
'../imbuf',
'../imbuf/intern',
'../blenloader',
'../render/extern/include',
'../include'])
incs = ['.',
'../quicktime',
'../makesdna',
'#/intern/guardedalloc',
'../blenlib',
'../blenkernel',
'../avi',
'../imbuf',
'../imbuf/intern',
'../blenloader',
'../render/extern/include',
'../include']
quicktime_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_quicktime', source=source_files)
incs.append(env['BF_QUICKTIME_INC'])
env.BlenderLib ('blender_quicktime', sources=source_files, includes=incs, defines=['WITH_QUICKTIME'], libtype='core', priority=95)

View File

@ -1,26 +1,12 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
rad_env = library_env.Copy ()
sources = env.Glob('intern/source/*.c')
source_files = ['intern/source/raddisplay.c',
'intern/source/radfactors.c',
'intern/source/radrender.c',
'intern/source/radio.c',
'intern/source/radnode.c',
'intern/source/radpostprocess.c',
'intern/source/radpreprocess.c']
incs = 'extern/include ../blenlib ../blenkernel ../makesdna ../include'
incs += ' #/intern/guardedalloc ../render/extern/include'
incs += ' ../render/intern/include'
rad_env.Append (CPPPATH = ['extern/include',
'../blenlib',
'../blenkernel',
'../makesdna',
'../include',
'#/intern/guardedalloc',
'../render/extern/include',
'../render/intern/include'])
incs += ' ' + env['BF_OPENGL_INC']
rad_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
rad_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_radiosity', source=source_files)
env.BlenderLib ( 'blender_radiosity', sources, Split(incs), [], libtype='core', priority=50 )

View File

@ -1,20 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
readblenfile_env = library_env.Copy ()
sources = env.Glob('intern/*.c')
source_files = ['intern/BLO_readblenfile.c']
incs = '. ../blenloader ../blenloader/intern ../blenkernel ../blenlib ../makesdna ../../kernel/gen_messaging'
readblenfile_env.Append (CPPPATH = ['.',
'../readblenfile',
'../readstreamglue',
'../blenloader',
'../blenloader/intern',
'../blenkernel',
'../blenlib',
'../makesdna',
'../../kernel/gen_messaging'])
readblenfile_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_readblenfile', source=source_files)
env.BlenderLib ( 'blender_readblenfile', sources, Split(incs), [], libtype='common', priority = 0 )

View File

@ -1,39 +1,18 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
render_env = library_env.Copy ()
sources = env.Glob('intern/source/*.c')
source_files = ['intern/source/convertblender.c',
'intern/source/edgeRender.c',
'intern/source/envmap.c',
'intern/source/gammaCorrectionTables.c',
'intern/source/imagetexture.c',
'intern/source/initrender.c',
'intern/source/pixelblending.c',
'intern/source/pixelshading.c',
'intern/source/pipeline.c',
'intern/source/ray.c',
'intern/source/rendercore.c',
'intern/source/renderdatabase.c',
'intern/source/shadbuf.c',
'intern/source/texture.c',
'intern/source/zbuf.c']
incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna'
incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf'
incs += ' ../quicktime ../include ../../kernel/gen_messaging ../yafray'
incs += ' ' + env['BF_SDL_INC']
render_env.Append (CPPPATH = ['intern/include',
'#/intern/guardedalloc',
'../blenlib',
'../makesdna',
'extern/include',
'../blenkernel',
'../radiosity/extern/include',
'../imbuf',
'../quicktime',
'../include',
'../../kernel/gen_messaging',
'../yafray'])
defs = []
render_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
if env['WITH_BF_QUICKTIME'] == 1:
defs.append('WITH_QUICKTIME')
incs += ' ' + env['BF_QUICKTIME_INC']
render_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_render', source=source_files)
env.BlenderLib ( libname = 'blender_render', sources = sources, includes = Split(incs), defines=defs, libtype='core', priority=45 )

View File

@ -1,181 +1,38 @@
#!/usr/bin/python
Import ('extra_includes')
Import ('user_options_dict')
Import ('library_env')
Import ('defines')
Import ('env')
src_env = library_env.Copy ()
src_env.Append (CCFLAGS = user_options_dict['SDL_CFLAGS'])
src_env.Append(CPPDEFINES = defines)
# TODO: src_env.Append (CCFLAGS = user_options_dict['SDL_CFLAGS'])
source_files = ['B.blend.c',
'Bfont.c',
'bfont.ttf.c',
'blenderbuttons.c',
'booleanops.c',
'booleanops_mesh.c',
'buttons_editing.c',
'buttons_logic.c',
'buttons_object.c',
'buttons_scene.c',
'buttons_script.c',
'buttons_shading.c',
'butspace.c',
'cmap.tga.c',
'cmovie.tga.c',
'cursors.c',
'drawaction.c',
'drawarmature.c',
'drawdeps.c',
'drawimage.c',
'drawimasel.c',
'drawipo.c',
'drawmesh.c',
'drawnla.c',
'drawobject.c',
'drawoops.c',
'drawscene.c',
'drawscript.c',
'drawseq.c',
'drawsound.c',
'drawtext.c',
'drawtime.c',
'drawview.c',
'drawnode.c',
'edit.c',
'editaction.c',
'editarmature.c',
'editconstraint.c',
'editcurve.c',
'editdeform.c',
'editface.c',
'editfont.c',
'editgroup.c',
'editimasel.c',
'editipo.c',
'editipo_lib.c',
'editipo_mods.c',
'editkey.c',
'editlattice.c',
'editmball.c',
'editmesh.c',
'editnode.c',
'editmesh_add.c',
'editmesh_lib.c',
'editmesh_loop.c',
'editmesh_mods.c',
'editmesh_tools.c',
'editmode_undo.c',
'editnla.c',
'editobject.c',
'editoops.c',
'editscreen.c',
'editseq.c',
'editsima.c',
'editsound.c',
'edittime.c',
'editview.c',
'eventdebug.c',
'filesel.c',
'fluidsim.c',
'ghostwinlay.c',
'glutil.c',
'headerbuttons.c',
'header_action.c',
'header_buttonswin.c',
'header_filesel.c',
'header_image.c',
'header_imasel.c',
'header_info.c',
'header_ipo.c',
'header_nla.c',
'header_oops.c',
'header_script.c',
'header_seq.c',
'header_sound.c',
'header_text.c',
'header_time.c',
'header_view3d.c',
'header_node.c',
'imagepaint.c',
'imasel.c',
'interface.c',
'interface_panel.c',
'interface_draw.c',
'interface_icons.c',
'keyval.c',
'lorem.c',
'mainqueue.c',
'meshtools.c',
'mywindow.c',
'oops.c',
'outliner.c',
'splash.jpg.c',
'parametrizer.c',
'playanim.c',
'poseobject.c',
'previewrender.c',
'preview.blend.c',
'renderwin.c',
'resources.c',
'scrarea.c',
'screendump.c',
'sequence.c',
'seqaudio.c',
'space.c',
'spacetypes.c',
'swapbuffers.c',
'toets.c',
'toolbox.c',
'transform.c',
'transform_generics.c',
'transform_numinput.c',
'transform_constraints.c',
'transform_conversions.c',
'transform_manipulator.c',
'unwrapper.c',
'usiblender.c',
'view.c',
'vpaint.c',
'writeavicodec.c',
'writeimage.c',
'writemovie.c',
'language.c']
sources = env.Glob('*.c')
src_env.Append (CPPPATH = ['#/intern/guardedalloc',
'../blenlib',
'../makesdna',
'../blenkernel',
'../include',
'#/intern/bmfont',
'../imbuf',
'../render/extern/include',
'#/intern/bsp/extern',
'../radiosity/extern/include',
'#/intern/decimation/extern',
'../blenloader',
'../python',
'../../kernel/gen_system',
'#/intern/SoundSystem',
'../readstreamglue',
'../img',
'../quicktime',
'#/intern/elbeem/extern',
'#/intern/ghost',
'#/intern/opennl/extern'])
incs = ' #/intern/guardedalloc ../blenlib ../makesdna ../blenkernel'
incs += ' ../include #/intern/bmfont ../imbuf ../render/extern/include'
incs += ' #/intern/bsp/extern ../renderconverter ../radiosity/extern/include'
incs += ' #/intern/decimation/extern ../blenloader ../python'
incs += ' ../../kernel/gen_system #/intern/SoundSystem ../readstreamglue'
incs += ' ../img ../quicktime #/intern/elbeem/extern'
incs += ' #/intern/ghost #/intern/opennl/extern'
src_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
src_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
src_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_SDL_INC']
incs += ' ' + env['BF_OPENGL_INC']
if user_options_dict['USE_INTERNATIONAL'] == 1:
src_env.Append (CPPPATH=['../ftfont'])
src_env.Append (CPPDEFINES = 'INTERNATIONAL')
src_env.Append (CPPDEFINES = 'FTGL_STATIC_LIBRARY')
defs = []
if user_options_dict['USE_BUILDINFO'] == 1:
src_env.Append (CPPDEFINES = 'NAN_BUILDINFO')
if env['WITH_BF_FREETYPE'] == 1:
incs += ' ../ftfont'
defs.append('INTERNATIONAL')
defs.append('FTGL_STATIC_LIBRARY')
src_env.Append (CPPPATH=extra_includes)
if env['WITH_BF_OPENEXR'] == 1:
defs.append('WITH_OPENEXR')
src_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_blendersrc', source=source_files)
if env['WITH_BF_QUICKTIME']==1:
incs += ' ' + env['BF_QUICKTIME_INC']
defs.append('WITH_QUICKTIME')
# TODO buildinfo
#if env['USE_BUILDINFO'] == 1:
# defs += ' NAN_BUILDINFO'
env.BlenderLib ( libname = 'src', sources = sources, includes = Split(incs), defines = defs, libtype=['core', 'intern'], priority = [5, 25] )

View File

@ -1,22 +1,9 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
yafray_env = library_env.Copy ()
sources = env.Glob('intern/*.cpp')
source_files = ['intern/yafray_Render.cpp',
'intern/export_File.cpp',
'intern/export_Plugin.cpp',
'intern/yafexternal.cpp',
'intern/api.cpp']
incs = '#/intern/guardedalloc ../blenlib ../makesdna ../blenkernel'
incs += ' ../imbuf ../include ../render/extern/include ../render/intern/include'
yafray_env.Append (CPPPATH = ['#/intern/guardedalloc',
'../blenlib',
'../makesdna',
'../blenkernel',
'../imbuf',
'../include',
'../render/extern/include',
'../render/intern/include'])
yafray_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_yafray', source=source_files)
env.BlenderLib ( 'blender_yafray', sources, Split(incs), [], libtype='blender', priority=5 )

View File

@ -1,25 +1,18 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
creator_env = library_env.Copy ()
sources = 'creator.c'
source_files = ['creator.c']
incs = '#/intern/guardedalloc ../blender/blenlib ../blender/blenkernel'
incs += ' ../blender/include ../blender/blenloader ../blender/imbuf'
incs += ' ../blender/renderconverter ../blender/render/extern/include'
incs += ' ../blender/python ../blender/makesdna ../kernel/gen_messaging'
incs += ' ../kernel/gen_system'
incs += ' ' + env['BF_OPENGL_INC']
creator_env.Append (CPPPATH = ['#/intern/guardedalloc',
'../blender/blenlib',
'../blender/blenkernel',
'../blender/include',
'../blender/blenloader',
'../blender/imbuf',
'../blender/render/extern/include',
'../blender/python',
'../blender/makesdna',
'../kernel/gen_messaging',
'../kernel/gen_system'])
creator_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
defs = []
if env['WITH_BF_QUICKTIME']==1:
incs += ' ' + env['BF_QUICKTIME_INC']
defs.append('WITH_QUICKTIME')
if user_options_dict['USE_QUICKTIME'] == 1:
creator_env.Append (CPPDEFINES = ['WITH_QUICKTIME'])
creator_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_creator', source=source_files)
env.BlenderLib ( libname = 'blender_creator', sources = Split(sources), includes = Split(incs), defines = defs, libtype='core', priority = 1 )

View File

@ -1,55 +1,29 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
Import ('env')
kx_blenderhook_env = library_env.Copy ()
sources = env.Glob('*.cpp')
source_files = ['KX_BlenderSystem.cpp',
'KX_BlenderRenderTools.cpp',
'KX_BlenderMouseDevice.cpp',
'KX_BlenderKeyboardDevice.cpp',
'KX_BlenderInputDevice.cpp',
'KX_BlenderGL.cpp',
'KX_BlenderCanvas.cpp',
'BL_KetsjiEmbedStart.cpp']
incs = '. #source/kernel/gen_system #intern/string #intern/guardedalloc'
incs += ' #source/gameengine/Rasterizer/RAS_OpenGLRasterizer #intern/bmfont'
incs += ' #source/gameengine/Converter #source/blender/imbuf'
incs += ' #intern/ghost/include'
incs += ' #intern/moto/include #source/gameengine/Ketsji #source/blender/blenlib'
incs += ' #source/blender/blenkernel #source/blender #source/blender/include'
incs += ' #source/blender/makesdna #source/gameengine/Rasterizer #source/gameengine/GameLogic'
incs += ' #source/gameengine/Expressions #source/gameengine/Network'
incs += ' #source/gameengine/SceneGraph #source/gameengine/Physics/common'
incs += ' #source/gameengine/Physics/Bullet #source/gameengine/Physics/Sumo'
incs += ' #source/gameengine/Physics/Sumo/Fuzzics/include #source/gameengine/Network/LoopBackNetwork'
incs += ' #intern/SoundSystem #source/blender/misc #source/blender/blenloader'
kx_blenderhook_env.Append (CPPPATH=['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/guardedalloc',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#intern/bmfont',
'#source/gameengine/Converter',
'#source/blender/imbuf',
'#intern/moto/include',
'#source/gameengine/Ketsji',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Bullet',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#intern/SoundSystem',
'#source/blender/misc',
'#source/blender/blenloader'
])
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_SOLID_INC']
incs += ' ' + env['BF_BULLET_INC']
incs += ' ' + env['BF_OPENGL_INC']
kx_blenderhook_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
kx_blenderhook_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
kx_blenderhook_env.Append (CPPPATH = user_options_dict['BULLET_INCLUDE'])
kx_blenderhook_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
# TODO:
#if sys.platform=='win32':
# kx_blenderhook_env.Append (CXXFLAGS = ['/GR'])
if sys.platform=='win32':
kx_blenderhook_env.Append (CXXFLAGS = ['/GR'])
kx_blenderhook_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/KX_blenderhook', source=source_files)
env.BlenderLib ( 'KX_blenderhook', sources, Split(incs), [], libtype=['game', 'game2'], priority=[0, 0] )

View File

@ -1,67 +1,25 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
kx_converter_env = library_env.Copy ()
sources = env.Glob('*.cpp')
source_files = ['KX_IpoConvert.cpp',
'KX_ConvertSensors.cpp',
'KX_ConvertProperties.cpp',
'KX_ConvertControllers.cpp',
'KX_ConvertActuators.cpp',
'KX_BlenderSceneConverter.cpp',
'KX_BlenderScalarInterpolator.cpp',
'BlenderWorldInfo.cpp',
'BL_SkinMeshObject.cpp',
'BL_SkinDeformer.cpp',
'BL_MeshDeformer.cpp',
'BL_DeformableGameObject.cpp',
'BL_BlenderDataConversion.cpp',
'BL_ArmatureObject.cpp',
'BL_ActionActuator.cpp'
]
incs = '. #source/kernel/gen_system #intern/string #intern/guardedalloc'
incs += ' #source/gameengine/Rasterizer/RAS_OpenGLRasterizer #intern/bmfont'
incs += ' #intern/SoundSystem #intern/SoundSystem/include #intern/SoundSystem/openal'
incs += ' #intern/SoundSystem/dummy #intern/SoundSystem/intern #source/gameengine/Converter'
incs += ' #source/gameengine/BlenderRoutines #source/blender/imbuf'
incs += ' #intern/moto/include #source/gameengine/Ketsji #source/gameengine/Ketsji/KXNetwork'
incs += ' #source/blender/blenlib #source/blender/blenkernel #source/blender'
incs += ' #source/blender/include #source/blender/makesdna #source/gameengine/Rasterizer'
incs += ' #source/gameengine/Rasterizer/RAS_OpenGLRasterizer #source/gameengine/GameLogic'
incs += ' #source/gameengine/Expressions #source/gameengine/Network #source/gameengine/SceneGraph'
incs += ' #source/gameengine/Physics/common #source/gameengine/Physics/Bullet #source/gameengine/Physics/BlOde'
incs += ' #source/gameengine/Physics/Dummy #source/gameengine/Physics/Sumo'
incs += ' #source/gameengine/Physics/Sumo/Fuzzics/include #source/gameengine/Network/LoopBackNetwork'
incs += ' #source/blender/misc #source/blender/blenloader'
kx_converter_env.Append (CPPPATH = ['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/guardedalloc',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#intern/bmfont',
'#intern/SoundSystem',
'#intern/SoundSystem/include',
'#intern/SoundSystem/openal',
'#intern/SoundSystem/dummy',
'#intern/SoundSystem/intern',
'#source/gameengine/Converter',
'#source/gameengine/BlenderRoutines',
'#source/blender/imbuf',
'#intern/moto/include',
'#source/gameengine/Ketsji',
'#source/gameengine/Ketsji/KXNetwork',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/gameengine/Rasterizer',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Bullet',
'#source/gameengine/Physics/BlOde',
'#source/gameengine/Physics/Dummy',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#source/blender/misc',
'#source/blender/blenloader'
])
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_SOLID_INC']
incs += ' ' + env['BF_BULLET_INC']
kx_converter_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
kx_converter_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
kx_converter_env.Append (CPPPATH = user_options_dict['BULLET_INCLUDE'])
kx_converter_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/KX_converter', source=source_files)
env.BlenderLib ( 'KX_converter', sources, Split(incs), [], libtype='game', priority=5 )

View File

@ -1,34 +1,9 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
expressions_env = library_env.Copy ()
sources = env.Glob('*.cpp')
source_files = ['BoolValue.cpp',
'ConstExpr.cpp',
'EmptyValue.cpp',
'ErrorValue.cpp',
'EXP_C-Api.cpp',
'Expression.cpp',
'FloatValue.cpp',
'IdentifierExpr.cpp',
'IfExpr.cpp',
'InputParser.cpp',
'IntValue.cpp',
'KX_HashedPtr.cpp',
'ListValue.cpp',
'Operator1Expr.cpp',
'Operator2Expr.cpp',
'PyObjectPlus.cpp',
'StringValue.cpp',
'Value.cpp',
'VectorValue.cpp']
incs ='. #source/kernel/gen_system #intern/string #intern/moto/include'
incs += ' ' + env['BF_PYTHON_INC']
expressions_env.Append (CPPPATH = ['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/moto/include'])
expressions_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
expressions_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_expressions', source=source_files)
env.BlenderLib ( 'blender_expressions', sources, Split(incs), [], libtype='game', priority = 45 )

View File

@ -1,48 +1,12 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
sca_gamelogic_env = library_env.Copy ()
sources = env.Glob('*.cpp') + env.Glob('Joystick/*.cpp')
source_files = ['SCA_ANDController.cpp',
'SCA_AlwaysEventManager.cpp',
'SCA_AlwaysSensor.cpp',
'SCA_EventManager.cpp',
'SCA_ExpressionController.cpp',
'SCA_IActuator.cpp',
'SCA_IController.cpp',
'SCA_IInputDevice.cpp',
'SCA_ILogicBrick.cpp',
'SCA_IObject.cpp',
'SCA_IScene.cpp',
'SCA_ISensor.cpp',
'SCA_JoystickManager.cpp',
'SCA_JoystickSensor.cpp',
'SCA_KeyboardManager.cpp',
'SCA_KeyboardSensor.cpp',
'SCA_LogicManager.cpp',
'SCA_MouseManager.cpp',
'SCA_MouseSensor.cpp',
'SCA_ORController.cpp',
'SCA_PropertyActuator.cpp',
'SCA_PropertyEventManager.cpp',
'SCA_PropertySensor.cpp',
'SCA_PythonController.cpp',
'SCA_RandomActuator.cpp',
'SCA_RandomEventManager.cpp',
'SCA_RandomNumberGenerator.cpp',
'SCA_RandomSensor.cpp',
'SCA_TimeEventManager.cpp',
'Joystick/SCA_Joystick.cpp',
'Joystick/SCA_JoystickEvents.cpp']
incs = '. #/source/kernel/gen_system #/intern/string'
incs += ' #/source/gameengine/Expressions #/intern/moto/include'
sca_gamelogic_env.Append (CPPPATH=['.',
'#/source/kernel/gen_system',
'#/intern/string',
'#/source/gameengine/Expressions',
'#/intern/moto/include'])
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_SDL_INC']
sca_gamelogic_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
sca_gamelogic_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
sca_gamelogic_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/SCA_GameLogic', source=source_files)
env.BlenderLib ( 'SCA_GameLogic', sources, Split(incs), [], libtype='game', priority=30 )

View File

@ -1,3 +1,3 @@
#!/usr/bin/python
SConscript(['common/SConscript',
'ghost/SConscript'])
'ghost/SConscript'])

View File

@ -1,73 +1,72 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
Import ('env')
gp_common_env = library_env.Copy()
source_files = ['bmfont.cpp',
'GPC_Canvas.cpp',
'GPC_Engine.cpp',
'GPC_KeyboardDevice.cpp',
'GPC_MouseDevice.cpp',
'GPC_PolygonMaterial.cpp',
'GPC_RawImage.cpp',
'GPC_RawLoadDotBlendArray.cpp',
'GPC_RawLogoArrays.cpp',
'GPC_RenderTools.cpp',
'GPC_System.cpp']
'GPC_Canvas.cpp',
'GPC_Engine.cpp',
'GPC_KeyboardDevice.cpp',
'GPC_MouseDevice.cpp',
'GPC_PolygonMaterial.cpp',
'GPC_RawImage.cpp',
'GPC_RawLoadDotBlendArray.cpp',
'GPC_RawLogoArrays.cpp',
'GPC_RenderTools.cpp',
'GPC_System.cpp']
gp_common_env.Append( CPPPATH = ['.',
'#intern/string',
'#intern/ghost',
'#intern/guardedalloc',
'#intern/bmfont',
'#intern/moto/include',
'#intern/SoundSystem',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#source/kernel/gen_system',
'#source/kernel/gen_messaging',
'#source/gameengine/Converter',
'#source/blender/imbuf',
'#source/gameengine/Ketsji',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#source/gameengine/GamePlayer/ghost',
'#source/blender/misc',
'#source/blender/blenloader'])
incs = ['.',
'#intern/string',
'#intern/ghost',
'#intern/guardedalloc',
'#intern/bmfont',
'#intern/moto/include',
'#intern/SoundSystem',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#source/kernel/gen_system',
'#source/kernel/gen_messaging',
'#source/gameengine/Converter',
'#source/blender/imbuf',
'#source/gameengine/Ketsji',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#source/gameengine/GamePlayer/ghost',
'#source/blender/misc',
'#source/blender/blenloader']
#This is all plugin stuff!
#if sys.platform=='win32':
# source_files += ['windows/GPW_Canvas.cpp',
# 'windows/GPW_Engine.cpp',
# 'windows/GPW_KeyboardDevice.cpp',
# 'windows/GPW_System.cpp']
# gp_common_env.Append ( CPPPATH = ['windows'])
# source_files += ['windows/GPW_Canvas.cpp',
# 'windows/GPW_Engine.cpp',
# 'windows/GPW_KeyboardDevice.cpp',
# 'windows/GPW_System.cpp']
# gp_common_env.Append ( CPPPATH = ['windows'])
#elif sys.platform=='linux2' or sys.platform=='linux-i386':
# source_files += ['unix/GPU_Canvas.cpp',
# 'unix/GPU_Engine.cpp',
# 'unix/GPU_KeyboardDevice.cpp',
# 'unix/GPU_System.cpp']
# gp_common_env.Append ( CPPPATH = ['unix'])
# source_files += ['unix/GPU_Canvas.cpp',
# 'unix/GPU_Engine.cpp',
# 'unix/GPU_KeyboardDevice.cpp',
# 'unix/GPU_System.cpp']
# gp_common_env.Append ( CPPPATH = ['unix'])
gp_common_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
gp_common_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
gp_common_env.Append (CPPPATH = user_options_dict['PNG_INCLUDE'])
gp_common_env.Append (CPPPATH = user_options_dict['Z_INCLUDE'])
incs += Split(env['BF_PYTHON_INC'])
incs += Split(env['BF_SOLID_INC'])
incs += Split(env['BF_PNG_INC'])
incs += Split(env['BF_ZLIB_INC'])
cflags=[]
if sys.platform=='win32':
gp_common_env.Append (CXXFLAGS = ['/GR'])
cflags = ['/GR']
gp_common_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/GPC_common', source=source_files)
env.BlenderLib (libname='GPC_common', sources=source_files, includes=incs, defines = [], libtype=['player'], priority=[5], compileflags=cflags)

View File

@ -1,52 +1,49 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
gp_ghost_env = library_env.Copy()
Import ('env')
source_files = ['GPG_Application.cpp',
'GPG_Canvas.cpp',
'GPG_ghost.cpp',
'GPG_KeyboardDevice.cpp',
'GPG_System.cpp']
'GPG_Canvas.cpp',
'GPG_ghost.cpp',
'GPG_KeyboardDevice.cpp',
'GPG_System.cpp']
gp_ghost_env.Append( CPPPATH = ['.',
'#intern/string',
'#intern/ghost',
'#intern/guardedalloc',
'#intern/bmfont',
'#intern/moto/include',
'#intern/SoundSystem',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#source/kernel/gen_system',
'#source/kernel/gen_messaging',
'#source/gameengine/Converter',
'#source/blender/imbuf',
'#source/gameengine/Ketsji',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender/readblenfile',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#source/gameengine/GamePlayer/common',
'#source/blender/misc',
'#source/blender/blenloader'])
gp_ghost_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
gp_ghost_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
incs = ['.',
'#intern/string',
'#intern/ghost',
'#intern/guardedalloc',
'#intern/bmfont',
'#intern/moto/include',
'#intern/SoundSystem',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#source/kernel/gen_system',
'#source/kernel/gen_messaging',
'#source/gameengine/Converter',
'#source/blender/imbuf',
'#source/gameengine/Ketsji',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender/readblenfile',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#source/gameengine/GamePlayer/common',
'#source/blender/misc',
'#source/blender/blenloader']
incs += Split(env['BF_PYTHON_INC'])
incs += Split(env['BF_SOLID_INC'])
cflags = []
if sys.platform=='win32':
gp_ghost_env.Append (CXXFLAGS = ['/GR'])
cflags = ['/GR']
gp_ghost_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/GPG_ghost', source=source_files)
env.BlenderLib (libname='GPG_ghost', sources=source_files, includes = incs, defines = [], libtype='player',priority=0, compileflags=cflags)

View File

@ -1,25 +1,12 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
kx_network_env = library_env.Copy ()
sources = env.Glob('*.cpp')
source_files = ['KX_NetworkEventManager.cpp',
'KX_NetworkMessageActuator.cpp',
'KX_NetworkMessageSensor.cpp',
'KX_NetworkObjectActuator.cpp',
'KX_NetworkObjectSensor.cpp'
]
incs = '. #source/kernel/gen_system #intern/string #source/gameengine/Ketsji'
incs += ' #source/gameengine/GameLogic #source/gameengine/Expressions'
incs += ' #source/gameengine/Network'
kx_network_env.Append (CPPPATH = ['.',
'#source/kernel/gen_system',
'#intern/string',
'#source/gameengine/Ketsji',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
])
incs += ' ' + env['BF_PYTHON_INC']
kx_network_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
kx_network_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/KX_network', source=source_files)
env.BlenderLib ( 'KX_network', Split(sources), Split(incs), defines=[],libtype='game2', priority=5 )

View File

@ -1,126 +1,33 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
Import ('env')
ketsji_env = library_env.Copy ()
sources = env.Glob('*.cpp')
source_files = ['BL_Shader.cpp',
'BL_Material.cpp',
'BL_Texture.cpp',
'KX_WorldIpoController.cpp',
'KX_WorldInfo.cpp',
'KX_VisibilityActuator.cpp',
'KX_VertexProxy.cpp',
'KX_TrackToActuator.cpp',
'KX_TouchSensor.cpp',
'KX_TouchEventManager.cpp',
'KX_TimeLogger.cpp',
'KX_TimeCategoryLogger.cpp',
'KX_SoundActuator.cpp',
'KX_SG_NodeRelationships.cpp',
'KX_SG_BoneParentNodeRelationship.cpp',
'KX_SceneActuator.cpp',
'KX_Scene.cpp',
'KX_ScalingInterpolator.cpp',
'KX_ScalarInterpolator.cpp',
'KX_SCA_ReplaceMeshActuator.cpp',
'KX_SCA_EndObjectActuator.cpp',
'KX_SCA_AddObjectActuator.cpp',
'KX_RaySensor.cpp',
'KX_RayEventManager.cpp',
'KX_RayCast.cpp',
'KX_RadarSensor.cpp',
'KX_PyMath.cpp',
'KX_PythonInit.cpp',
'KX_PyConstraintBinding.cpp',
'KX_PositionInterpolator.cpp',
'KX_PolygonMaterial.cpp',
'KX_PhysicsObjectWrapper.cpp',
'KX_OrientationInterpolator.cpp',
'KX_ObjectActuator.cpp',
'KX_ObColorIpoSGController.cpp',
'KX_NearSensor.cpp',
'KX_MouseFocusSensor.cpp',
'KX_MotionState.cpp',
'KX_MeshProxy.cpp',
'KX_LightIpoSGController.cpp',
'KX_Light.cpp',
'KX_KetsjiEngine.cpp',
'KX_IpoActuator.cpp',
'KX_IPO_SGController.cpp',
'KX_IPhysicsController.cpp',
'KX_GameObject.cpp',
'KX_GameActuator.cpp',
'KX_EmptyObject.cpp',
'KX_ConvertPhysicsObjects.cpp',
'KX_ConstraintWrapper.cpp',
'KX_ConstraintActuator.cpp',
'KX_CDActuator.cpp',
'KX_CameraIpoSGController.cpp',
'KX_CameraActuator.cpp',
'KX_Camera.cpp',
'KX_BulletPhysicsController.cpp',
'KX_BlenderMaterial.cpp',
'KX_MaterialIpoController.cpp',
'KX_VehicleWrapper.cpp',
]
incs = '. #source/kernel/gen_system #intern/string #intern/guardedalloc'
incs += ' #source/gameengine/Rasterizer/RAS_OpenGLRasterizer #intern/bmfont'
incs += ' #intern/SoundSystem #intern/SoundSystem/include #intern/SoundSystem/openal'
incs += ' #intern/SoundSystem/dummy #intern/SoundSystem/intern #source/gameengine/Converter'
incs += ' #source/gameengine/BlenderRoutines #source/blender/imbuf #intern/moto/include'
incs += ' #source/gameengine/Ketsji #source/gameengine/Ketsji/KXNetwork #source/blender/blenlib'
incs += ' #source/blender/blenkernel #source/blender #source/blender/include'
incs += ' #source/blender/makesdna #source/blender/python #source/gameengine/Rasterizer'
incs += ' #source/gameengine/GameLogic #source/gameengine/Expressions #source/gameengine/Network'
incs += ' #source/gameengine/SceneGraph #source/gameengine/Physics/common #source/gameengine/Physics/Bullet'
incs += ' #source/gameengine/Physics/BlOde #source/gameengine/Physics/Dummy'
incs += ' #source/gameengine/Physics/Sumo #source/gameengine/Physics/Sumo/include'
incs += ' #source/gameengine/Physics/Sumo/Fuzzics/include #source/gameengine/Network/LoopBackNetwork'
incs += ' #source/blender/misc #source/blender/blenloader'
if user_options_dict['USE_PHYSICS'] == 'solid':
source_files += ['KX_SumoPhysicsController.cpp']
ketsji_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
#TODO:
#if sys.platform == 'win32':
# ketsji_env.Append (CXXFLAGS = ['/GR'])
# ketsji_env.Append ( CCFLAGS =['/Ox'])
if user_options_dict['USE_PHYSICS'] == 'ode':
source_files += ['KX_OdePhysicsController.cpp']
ketsji_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
incs += ' ' + env['BF_SOLID_INC']
incs += ' ' + env['BF_PYTHON_INC']
incs += ' ' + env['BF_SDL_INC']
incs += ' ' + env['BF_BULLET_INC']
ketsji_env.Append (CPPPATH = ['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/guardedalloc',
'#source/gameengine/Rasterizer/RAS_OpenGLRasterizer',
'#intern/bmfont',
'#intern/SoundSystem',
'#intern/SoundSystem/include',
'#intern/SoundSystem/openal',
'#intern/SoundSystem/dummy',
'#intern/SoundSystem/intern',
'#source/gameengine/Converter',
'#source/gameengine/BlenderRoutines',
'#source/blender/imbuf',
'#intern/moto/include',
'#source/gameengine/Ketsji',
'#source/gameengine/Ketsji/KXNetwork',
'#source/blender/blenlib',
'#source/blender/blenkernel',
'#source/blender',
'#source/blender/include',
'#source/blender/makesdna',
'#source/blender/python',
'#source/gameengine/Rasterizer',
'#source/gameengine/GameLogic',
'#source/gameengine/Expressions',
'#source/gameengine/Network',
'#source/gameengine/SceneGraph',
'#source/gameengine/Physics/common',
'#source/gameengine/Physics/Bullet',
'#source/gameengine/Physics/BlOde',
'#source/gameengine/Physics/Dummy',
'#source/gameengine/Physics/Sumo',
'#source/gameengine/Physics/Sumo/include',
'#source/gameengine/Physics/Sumo/Fuzzics/include',
'#source/gameengine/Network/LoopBackNetwork',
'#source/blender/misc',
'#source/blender/blenloader'
])
if sys.platform == 'win32':
ketsji_env.Append (CXXFLAGS = ['/GR'])
ketsji_env.Append ( CCFLAGS =['/Ox'])
ketsji_env.Append (CPPPATH = user_options_dict['PYTHON_INCLUDE'])
ketsji_env.Append (CPPPATH = user_options_dict['SDL_INCLUDE'])
ketsji_env.Append (CPPPATH = user_options_dict['BULLET_INCLUDE'])
ketsji_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/KX_ketsji', source=source_files)
env.BlenderLib ( 'KX_ketsji', sources, Split(incs), [], libtype='game', priority=25 )

View File

@ -1,15 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
ng_loopbacknetwork_env = library_env.Copy ()
sources = 'NG_LoopBackNetworkDeviceInterface.cpp'
source_files = ['NG_LoopBackNetworkDeviceInterface.cpp']
incs = '. #source/kernel/gen_system #intern/string #source/gameengine/Network'
ng_loopbacknetwork_env.Append (CPPPATH=['.',
'#source/kernel/gen_system',
'#intern/string',
'#source/gameengine/Network',
])
ng_loopbacknetwork_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/NG_loopbacknetwork', source=source_files)
env.BlenderLib ( 'NG_loopbacknetwork', Split(sources), Split(incs), defines=[],libtype='game2', priority=25 )

View File

@ -1,17 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
ng_network_env = library_env.Copy ()
sources = env.Glob('*.cpp') #'NG_NetworkMessage.cpp NG_NetworkObject.cpp NG_NetworkScene.cpp'
source_files = ['NG_NetworkMessage.cpp',
'NG_NetworkObject.cpp',
'NG_NetworkScene.cpp']
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include'
ng_network_env.Append (CPPPATH=['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/moto/include'
])
ng_network_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/NG_network', source=source_files)
env.BlenderLib ( 'NG_network', sources, Split(incs), [], libtype='game2', priority=15 )

View File

@ -1,22 +1,16 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
Import ('env')
phy_bullet_env = library_env.Copy ()
sources = 'CcdPhysicsEnvironment.cpp CcdPhysicsController.cpp'
source_files = ['CcdPhysicsEnvironment.cpp',
'CcdPhysicsController.cpp'
]
incs = '. ../common'
phy_bullet_env.Append (CPPPATH=['.',
'../common'])
incs += ' ' + env['BF_BULLET_INC']
phy_bullet_env.Append (CPPPATH = user_options_dict['BULLET_INCLUDE'])
#TODO:
#if sys.platform=='win32':
# phy_bullet_env.Append (CXXFLAGS = ['/GR'])
# phy_bullet_env.Append (CCFLAGS =['/O2'])
if sys.platform=='win32':
phy_bullet_env.Append (CXXFLAGS = ['/GR'])
phy_bullet_env.Append (CCFLAGS =['/O2'])
phy_bullet_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/PHY_Bullet', source=source_files)
env.BlenderLib ( 'PHY_Bullet', Split(sources), Split(incs), [], libtype='game', priority=15 )

View File

@ -1,13 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
phy_dummy_env = library_env.Copy ()
sources = 'DummyPhysicsEnvironment.cpp'
source_files = ['DummyPhysicsEnvironment.cpp']
incs = '. ../common'
phy_dummy_env.Append (CPPPATH = ['.',
'../common'
])
phy_dummy_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/PHY_Dummy', source=source_files)
env.BlenderLib ( 'PHY_Dummy', Split(sources), Split(incs), [], libtype='game', priority=10 )

View File

@ -1,11 +1,8 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
Import ('env')
phy_sumo_env = library_env.Copy ()
source_files = ['SumoPHYCallbackBridge.cpp',
sumoenv = env.Copy()
sources = ['SumoPHYCallbackBridge.cpp',
'SumoPhysicsController.cpp',
'SumoPhysicsEnvironment.cpp',
'Fuzzics/src/SM_FhObject.cpp',
@ -14,16 +11,16 @@ source_files = ['SumoPHYCallbackBridge.cpp',
'Fuzzics/src/SM_MotionState.cpp'
]
phy_sumo_env.Append (CPPPATH = ['.',
'../common',
'Fuzzics/include',
'#/intern/moto/include'
])
incs =['.',
'../common',
'Fuzzics/include',
'#/intern/moto/include'
]
incs += [sumoenv['BF_SOLID_INC']]
phy_sumo_env.Append (CPPPATH = user_options_dict['SOLID_INCLUDE'])
if sumoenv['PLATFORM']=='win32':
sumoenv.Append (CXXFLAGS = ['/GR'])
sumoenv.Append ( CCFLAGS =['/O1'])
if sys.platform=='win32':
phy_sumo_env.Append (CXXFLAGS = ['/GR'])
phy_sumo_env.Append ( CCFLAGS =['/O1'])
phy_sumo_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/PHY_Sumo', source=source_files)
#env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/PHY_Sumo', source=source_files)
env.BlenderLib ( 'PHY_Sumo', sources, incs, [], libtype='game2', priority=30 )

View File

@ -1,16 +1,8 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
phy_physics_env = library_env.Copy ()
sources = 'PHY_IMotionState.cpp PHY_IPhysicsController.cpp PHY_IPhysicsEnvironment.cpp'
source_files = ['PHY_IMotionState.cpp',
'PHY_IPhysicsController.cpp',
'PHY_IPhysicsEnvironment.cpp']
incs = '. ../Dummy #intern/moto/include'
phy_physics_env.Append (CPPPATH = ['.',
'../Dummy',
'#intern/moto/include'
])
phy_physics_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/PHY_Physics', source=source_files)
env.BlenderLib ( 'PHY_Physics', Split(sources), Split(incs), [], libtype=['game', 'game2'], priority=[20, 35] )

View File

@ -1,19 +1,9 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
ras_openglrasterizer_env = library_env.Copy ()
sources = env.Glob('*.cpp') #'RAS_GLExtensionManager.cpp RAS_OpenGLRasterizer.cpp RAS_VAOpenGLRasterizer.cpp'
source_files = ['RAS_GLExtensionManager.cpp',
'RAS_OpenGLRasterizer.cpp',
'RAS_VAOpenGLRasterizer.cpp']
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include #source/gameengine/Rasterizer'
incs += ' ' + env['BF_OPENGL_INC']
ras_openglrasterizer_env.Append (CPPPATH=['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/moto/include',
'#source/gameengine/Rasterizer'
])
ras_openglrasterizer_env.Append (CPPPATH = user_options_dict['OPENGL_INCLUDE'])
ras_openglrasterizer_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/RAS_OpenGLRasterizer', source=source_files)
env.BlenderLib ( 'RAS_OpenGLRasterizer', Split(sources), Split(incs), [], libtype='game', priority=40 )

View File

@ -1,27 +1,13 @@
#!/usr/bin/python
import sys
Import ('user_options_dict')
Import ('library_env')
Import ('env')
ras_rasterizer_env = library_env.Copy ()
sources = env.Glob('*.cpp')
source_files = ['RAS_BucketManager.cpp',
'RAS_FramingManager.cpp',
'RAS_IPolygonMaterial.cpp',
'RAS_IRenderTools.cpp',
'RAS_MaterialBucket.cpp',
'RAS_MeshObject.cpp',
'RAS_Polygon.cpp',
'RAS_TexVert.cpp',
'RAS_texmatrix.cpp']
incs = '. #source/kernel/gen_system #intern/string #intern/moto/include'
ras_rasterizer_env.Append (CPPPATH=['.',
'#source/kernel/gen_system',
'#intern/string',
'#intern/moto/include'
])
#TODO:
#if sys.platform=='win32':
# ras_rasterizer_env.Append ( CCFLAGS =['/Ox'])
if sys.platform=='win32':
ras_rasterizer_env.Append ( CCFLAGS =['/Ox'])
ras_rasterizer_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/RAS_rasterizer', source=source_files)
env.BlenderLib ( 'RAS_rasterizer', sources, Split(incs), [], libtype='game', priority=35 )

View File

@ -1,5 +1,5 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('env')
SConscript(['BlenderRoutines/SConscript',
'Converter/SConscript',
@ -14,12 +14,14 @@ SConscript(['BlenderRoutines/SConscript',
'Rasterizer/SConscript',
'Rasterizer/RAS_OpenGLRasterizer/SConscript',
'SceneGraph/SConscript',
'Physics/Bullet/SConscript'])
'Physics/Bullet/SConscript',
'Physics/Sumo/SConscript'
])
if user_options_dict['BUILD_BLENDER_PLAYER']:
SConscript(['GamePlayer/SConscript'])
if env['WITH_BF_PLAYER']:
SConscript(['GamePlayer/SConscript'])
if user_options_dict['USE_PHYSICS'] == 'solid':
SConscript(['Physics/Sumo/SConscript'])
elif user_options_dict['USE_PHYSICS'] == 'ode':
SConscript(['Physics/BlOde/SConscript'])
#if user_options_dict['USE_PHYSICS'] == 'solid':
# SConscript(['Physics/Sumo/SConscript'])
#elif user_options_dict['USE_PHYSICS'] == 'ode':
# SConscript(['Physics/BlOde/SConscript'])

View File

@ -1,19 +1,9 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
sg_scenegraph_env = library_env.Copy ()
sources = env.Glob('*.cpp') #'SG_BBox.cpp SG_Controller.cpp SG_IObject.cpp SG_Node.cpp SG_Spatial.cpp SG_Tree.cpp'
source_files = ['SG_BBox.cpp',
'SG_Controller.cpp',
'SG_IObject.cpp',
'SG_Node.cpp',
'SG_Spatial.cpp',
'SG_Tree.cpp']
incs = '. #intern/moto/include'
sg_scenegraph_env.Append (CPPPATH=['.',
'#intern/moto/include'
])
sg_scenegraph_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/SG_SceneGraph', source=source_files)
env.BlenderLib ( 'SG_SceneGraph', sources, Split(incs), [], libtype='game', priority=50 )

View File

@ -1,18 +1,10 @@
#!/usr/bin/python
Import ('user_options_dict')
Import ('library_env')
Import ('env')
kernel_env = library_env.Copy ()
sources = 'gen_messaging/intern/messaging.c gen_system/GEN_HashedPtr.cpp'
sources += ' gen_system/GEN_Matrix4x4.cpp gen_system/SYS_SingletonSystem.cpp'
sources += ' gen_system/SYS_System.cpp'
source_files = ['gen_messaging/intern/messaging.c',
'gen_system/GEN_HashedPtr.cpp',
'gen_system/GEN_Matrix4x4.cpp',
'gen_system/SYS_SingletonSystem.cpp',
'gen_system/SYS_System.cpp']
incs = 'gen_messaging gen_system #/intern/string #/intern/moto/include'
kernel_env.Append (CPPPATH = ['gen_messaging',
'gen_system',
'#/intern/string',
'#/intern/moto/include'])
kernel_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/blender_kernel', source=source_files)
env.BlenderLib ( 'blender_kernel', Split(sources), Split(incs), [], libtype = ['common','game2'], priority = [15, 10] )

323
tools/Blender.py Normal file
View File

@ -0,0 +1,323 @@
#!/usr/bin/env python
"""
tools.BlenderEnvironment
This environment builds on SCons.Script.SConscript.SConsEnvironment
* library repository
* custom printout
* wrapper functions
TODO: clean up and sanitise code - crosscheck with btools and SConstruct
to kill any code duplication
"""
import os.path
import string
import glob
import time
import sys
from SCons.Script.SConscript import SConsEnvironment
import SCons.Action
import SCons.Util
import SCons.Builder
import SCons.Tool
import bcolors
bc = bcolors.bcolors()
Split = SCons.Util.Split
Action = SCons.Action.Action
Builder = SCons.Builder.Builder
GetBuildPath = SConsEnvironment.GetBuildPath
# a few globals
root_build_dir = ''
quickie = None # Anything else than None if BF_QUICK has been passed
quicklist = [] # The list of libraries/programs to compile during a quickie
program_list = [] # A list holding Nodes to final binaries, used to create installs
arguments = None
targets = None
#some internals
blenderdeps = [] # don't manipulate this one outside this module!
##### LIB STUFF ##########
possible_types = ['core'] # can be set in ie. SConstruct
libs = {}
def init_lib_dict():
for pt in possible_types:
libs[pt] = {}
# helper func for add_lib_to_dict
def internal_lib_to_dict(dict = None, libtype = None, libname = None, priority = 100):
if not libname in dict[libtype]:
done = None
while not done:
if dict[libtype].has_key(priority):
priority = priority + 1
else:
done = True
dict[libtype][priority] = libname
# libtype and priority can both be lists, for defining lib in multiple places
def add_lib_to_dict(dict = None, libtype = None, libname = None, priority = 100):
if not dict or not libtype or not libname:
print "Passed wrong arg"
Exit()
if type(libtype) is str and type(priority) is int:
internal_lib_to_dict(dict, libtype, libname, priority)
elif type(libtype) is list and type(priority) is list:
if len(libtype)==len(priority):
for lt, p in zip(libtype, priority):
internal_lib_to_dict(dict, lt, libname, p)
else:
print "libtype and priority lists are unequal in length"
Exit()
else:
print "Wrong type combinations for libtype and priority. Only str and int or list and list"
Exit()
#libs = init_lib_dict(libs)
def create_blender_liblist(lenv = None, libtype = None):
if not lenv or not libtype:
print "missing arg"
lst = []
if libtype in possible_types:
sortlist = []
for k,v in libs[libtype].iteritems():
sortlist.append(k)
sortlist.sort()
curlib = libs[libtype]
for sk in sortlist:
v = curlib[sk]
#for k,v in sorted(libs[libtype].iteritems()):
lst.append('#' + root_build_dir + 'lib/'+lenv['LIBPREFIX'] + v + lenv['LIBSUFFIX'])
return lst
## TODO: static linking
def setup_staticlibs(lenv):
statlibs = [
#here libs for static linking
]
libincs = [
'/usr/lib',
lenv['BF_PYTHON_LIBPATH'],
lenv['BF_OPENGL_LIBPATH'],
lenv['BF_SDL_LIBPATH'],
lenv['BF_JPEG_LIBPATH'],
lenv['BF_TIFF_LIBPATH'],
lenv['BF_PNG_LIBPATH'],
lenv['BF_GETTEXT_LIBPATH'],
lenv['BF_ZLIB_LIBPATH'],
lenv['BF_OPENAL_LIBPATH'],
lenv['BF_FREETYPE_LIBPATH'],
# lenv['BF_QUICKTIME_LIBPATH'],
lenv['BF_ICONV_LIBPATH']
]
libincs += Split(lenv['BF_OPENEXR_LIBPATH'])
return statlibs, libincs
def setup_syslibs(lenv):
syslibs = [
lenv['BF_PYTHON_LIB'],
lenv['BF_JPEG_LIB'],
lenv['BF_PNG_LIB'],
lenv['BF_ZLIB_LIB'],
lenv['BF_OPENAL_LIB'],
lenv['BF_FREETYPE_LIB'],
lenv['BF_GETTEXT_LIB']
#here libs for linking
]
if lenv['OURPLATFORM']=='win32vc':
syslibs += Split(lenv['BF_ICONV_LIB'])
syslibs += Split(lenv['BF_TIFF_LIB'])
syslibs += Split(lenv['BF_OPENEXR_LIB'])
syslibs += Split(lenv['BF_SDL_LIB'])
syslibs += Split(lenv['BF_OPENGL_LIB'])
syslibs += Split(lenv['LLIBS'])
return syslibs
def propose_priorities():
print bc.OKBLUE+"Priorities:"+bc.ENDC
for t in possible_types:
print bc.OKGREEN+"\t"+t+bc.ENDC
new_priority = 0
sortlist = []
for k,v in libs[t].iteritems():
sortlist.append(k)
sortlist.sort()
curlib = libs[t]
for sk in sortlist:
v = curlib[sk]
#for p,v in sorted(libs[t].iteritems()):
print "\t\t",new_priority, v
new_priority += 5
## TODO: see if this can be made in an emitter
def buildinfo(lenv, build_type):
"""
Generate a buildinfo object
"""
build_date = time.strftime ("%Y-%m-%d")
build_time = time.strftime ("%H:%M:%S")
obj = []
if True: #user_options_dict['USE_BUILDINFO'] == 1:
if sys.platform=='win32':
build_info_file = open("source/creator/winbuildinfo.h", 'w')
build_info_file.write("char *build_date=\"%s\";\n"%build_date)
build_info_file.write("char *build_time=\"%s\";\n"%build_time)
build_info_file.write("char *build_platform=\"win32\";\n")
build_info_file.write("char *build_type=\"dynamic\";\n")
build_info_file.close()
lenv.Append (CPPDEFINES = ['NAN_BUILDINFO', 'BUILD_DATE'])
else:
lenv.Append (CPPDEFINES = ['BUILD_TIME=\'"%s"\''%(build_time),
'BUILD_DATE=\'"%s"\''%(build_date),
'BUILD_TYPE=\'"dynamic"\'',
'NAN_BUILDINFO',
'BUILD_PLATFORM=\'"%s"\''%(sys.platform)])
obj = [lenv.Object (root_build_dir+'source/creator/%s_buildinfo'%build_type,
[root_build_dir+'source/creator/buildinfo.c'])]
return obj
##### END LIB STUFF ############
##### ACTION STUFF #############
def my_compile_print(target, source, env):
a = '%s' % (source[0])
d, f = os.path.split(a)
return bc.OKBLUE+"Compiling"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
def my_moc_print(target, source, env):
a = '%s' % (source[0])
d, f = os.path.split(a)
return bc.OKBLUE+"Creating MOC"+bc.ENDC+ " ==> '"+bc.OKGREEN+"%s" %(f) + "'"+bc.ENDC
def my_linking_print(target, source, env):
t = '%s' % (target[0])
d, f = os.path.split(t)
return bc.OKBLUE+"Linking library"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
def my_program_print(target, source, env):
t = '%s' % (target[0])
d, f = os.path.split(t)
return bc.OKBLUE+"Linking program"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
def msvc_hack(env):
static_lib = SCons.Tool.createStaticLibBuilder(env)
program = SCons.Tool.createProgBuilder(env)
env['BUILDERS']['Library'] = static_lib
env['BUILDERS']['StaticLibrary'] = static_lib
env['BUILDERS']['Program'] = program
def set_quiet_output(env):
mycaction = Action("$CCCOM", strfunction=my_compile_print)
myshcaction = Action("$SHCCCOM", strfunction=my_compile_print)
mycppaction = Action("$CXXCOM", strfunction=my_compile_print)
myshcppaction = Action("$SHCXXCOM", strfunction=my_compile_print)
mylibaction = Action("$ARCOM", strfunction=my_linking_print)
mylinkaction = Action("$LINKCOM", strfunction=my_program_print)
static_ob, shared_ob = SCons.Tool.createObjBuilders(env)
static_ob.add_action('.c', mycaction)
static_ob.add_action('.cpp', mycppaction)
shared_ob.add_action('.c', myshcaction)
shared_ob.add_action('.cpp', myshcppaction)
static_lib = SCons.Builder.Builder(action = mylibaction,
emitter = '$LIBEMITTER',
prefix = '$LIBPREFIX',
suffix = '$LIBSUFFIX',
src_suffix = '$OBJSUFFIX',
src_builder = 'StaticObject')
program = SCons.Builder.Builder(action = mylinkaction,
emitter = '$PROGEMITTER',
prefix = '$PROGPREFIX',
suffix = '$PROGSUFFIX',
src_suffix = '$OBJSUFFIX',
src_builder = 'Object',
target_scanner = SCons.Defaults.ProgScan)
env['BUILDERS']['Object'] = static_ob
env['BUILDERS']['StaticObject'] = static_ob
env['BUILDERS']['StaticLibrary'] = static_lib
env['BUILDERS']['Library'] = static_lib
env['BUILDERS']['Program'] = program
#### END ACTION STUFF #########
class BlenderEnvironment(SConsEnvironment):
def BlenderLib(self=None, libname=None, sources=None, includes=[], defines=[], libtype='common', priority = 100, compileflags=None):
if not self or not libname or not sources:
print bc.FAIL+'Cannot continue. Missing argument for BuildBlenderLib '+libname+bc.ENDC
Exit()
if libname in quickie or len(quickie)==0:
print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC
lenv = self.Copy()
lenv.Append(CPPPATH=includes)
lenv.Append(CPPDEFINES=defines)
if lenv['WITH_BF_GAMEENGINE']:
lenv.Append(CPPDEFINES=['GAMEBLENDER=1'])
if lenv['BF_DEBUG']:
lenv.Append(CCFLAGS = lenv['BF_DEBUG_FLAGS'], CXXFLAGS = lenv['BF_DEBUG_FLAGS'])
if lenv['BF_PROFILE']:
lenv.Append(CCFLAGS = lenv['BF_PROFILE_FLAGS'], CXXFLAGS = lenv['BF_PROFILE_FLAGS'])
if compileflags:
lenv.Append(CCFLAGS = compileflags)
lenv.Append(CXXFLAGS = compileflags)
lib = lenv.Library(target= '#'+root_build_dir+'lib/'+libname, source=sources)
SConsEnvironment.Default(self, lib) # we add to default target, because this way we get some kind of progress info during build
else:
print bc.WARNING+'Not building '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC+' for '+bc.OKBLUE+'BF_QUICK'+bc.ENDC
# note: libs is a global
add_lib_to_dict(libs, libtype, libname, priority)
def BlenderProg(self=None, builddir=None, progname=None, sources=None, includes=None, libs=None, libpath=None):
print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
lenv = self.Copy()
if lenv['OURPLATFORM']=='win32-vc':
lenv.Append(LINKFLAGS = Split(lenv['PLATFORM_LINKFLAGS']))
if lenv['OURPLATFORM']=='darwin':
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
lenv.Append(LINKFLAGS = lenv['BF_OPENGL_LINKFLAGS'])
lenv.Append(CPPPATH=includes)
lenv.Append(LIBPATH=libpath)
lenv.Append(LIBS=libs)
if lenv['WITH_BF_QUICKTIME']:
lenv.Append(LIBS = lenv['BF_QUICKTIME_LIB'])
lenv.Append(LIBPATH = lenv['BF_QUICKTIME_LIBPATH'])
prog = lenv.Program(target=builddir+'bin/'+progname, source=sources)
SConsEnvironment.Default(self, prog)
program_list.append(prog)
## TODO: have register for libs/programs, so that we test only that
# which have expressed their need to be tested in their own sconscript
def BlenderUnitTest(env, source, **kwargs):
test = env.Program(source, **kwargs)
env.AddPostAction(test, test[0].abspath)
env.Alias('check', test)
env.AlwaysBuild(test)
return test
def Glob(lenv, pattern):
path = string.replace(GetBuildPath(lenv,'SConscript'),'SConscript', '')
files = []
for i in glob.glob(path + pattern):
files.append(string.replace(i, path, ''))
return files

16
tools/bcolors.py Executable file
View File

@ -0,0 +1,16 @@
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
def disable(self):
self.HEADER = ''
self.OKBLUE = ''
self.OKGREEN = ''
self.WARNING = ''
self.FAIL = ''
self.ENDC = ''

257
tools/btools.py Executable file
View File

@ -0,0 +1,257 @@
import sys
import StringIO
import SCons.Options
import SCons.Options.BoolOption
Options = SCons.Options
BoolOption = SCons.Options.BoolOption
def print_arguments(args, bc):
if len(args):
for k,v in args.iteritems():
print '\t'+bc.OKBLUE+k+bc.ENDC+' = '+bc.OKGREEN + v + bc.ENDC
else:
print '\t'+bc.WARNING+'No command-line arguments given'+bc.ENDC
def validate_arguments(args, bc):
opts_list = [
'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'BF_PYTHON_LINKFLAGS',
'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH',
'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH',
'WITH_BF_FMOD',
'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH',
'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH',
'WITH_BF_PNG', 'BF_PNG', 'BF_PNG_INC', 'BF_PNG_LIB', 'BF_PNG_LIBPATH',
'WITH_BF_TIFF', 'BF_TIFF', 'BF_TIFF_INC', 'BF_TIFF_LIB', 'BF_TIFF_LIBPATH',
'WITH_BF_ZLIB', 'BF_ZLIB', 'BF_ZLIB_INC', 'BF_ZLIB_LIB', 'BF_ZLIB_LIBPATH',
'WITH_BF_GETTEXT', 'BF_GETTEXT', 'BF_GETTEXT_INC', 'BF_GETTEXT_LIB', 'BF_GETTEXT_LIBPATH',
'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',
'WITH_BF_ODE', 'BF_ODE', 'BF_ODE_INC', 'BF_ODE_LIB',
'WITH_BF_GAMEENGINE', 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
'BF_SOLID', 'BF_SOLID_INC',
'WITH_BF_FREETYPE', 'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH',
'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
'WITH_BF_OPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', 'BF_OPENGL_LINKFLAGS',
'WITH_BF_FTGL', 'BF_FTGL', 'BF_FTGL_INC', 'BF_FTGL_LIB',
'WITH_BF_PLAYER',
'CFLAGS', 'CCFLAGS', 'CPPFLAGS',
'REL_CFLAGS', 'REL_CCFLAGS',
'C_WARN', 'CC_WARN', 'LLIBS', 'PLATFORM_LINKFLAGS',
'BF_PROFILE_FLAGS' ]
arg_list = ['BF_DEBUG', 'BF_QUIET', 'BF_CROSS', 'BF_UPDATE',
'BF_INSTALLDIR', 'BF_TOOLSET', 'BF_BINNAME',
'BF_BUILDDIR', 'BF_FANCY', 'BF_QUICK', 'BF_PROFILE', 'BF_DEBUG',
'BF_PRIORITYLIST'
]
all_list = opts_list + arg_list
okdict = {}
for k,v in args.iteritems():
if k in all_list:
okdict[k] = v
else:
print '\t'+bc.WARNING+'Invalid argument: '+bc.ENDC+k+'='+v
return okdict
def print_targets(targs, bc):
if len(targs)>0:
for t in targs:
print '\t'+bc.OKBLUE+t+bc.ENDC
else:
print '\t'+bc.WARNING+'No targets given, using '+bc.ENDC+bc.OKGREEN+'default'+bc.ENDC
def validate_targets(targs, bc):
valid_list = ['.', 'blender', 'blenderstatic', 'blenderplayer', 'webplugin',
'blendernogame', 'blenderstaticnogame', 'release',
'everything', 'clean', 'install-bin', 'install']
oklist = []
for t in targs:
if t in valid_list:
oklist.append(t)
else:
print '\t'+bc.WARNING+'Invalid target: '+bc.ENDC+t
return oklist
class idBuffering:
def buffered_spawn( self, sh, escape, cmd, args, env ):
stderr = StringIO.StringIO()
stdout = StringIO.StringIO()
command_string = ''
for i in args:
if ( len( command_string ) ):
command_string += ' '
command_string += i
try:
retval = self.env['PSPAWN']( sh, escape, cmd, args, env, stdout, stderr )
except OSError, x:
if x.errno != 10:
raise x
print 'OSError ignored on command: %s' % command_string
retval = 0
sys.stdout.write( stdout.getvalue() )
sys.stderr.write( stderr.getvalue() )
return retval
# get a clean error output when running multiple jobs
def SetupBufferedOutput( env ):
buf = idBuffering()
buf.env = env
env['SPAWN'] = buf.buffered_spawn
def read_opts(cfg, args):
localopts = Options.Options(cfg, args)
localopts.AddOptions(
('BF_PYTHON', 'base path for python', ''),
('BF_PYTHON_VERSION', 'Python version to use', ''),
('BF_PYTHON_INC', 'include path for Python headers', ''),
('BF_PYTHON_BINARY', 'Path to the Python interpreter', ''),
('BF_PYTHON_LIB', 'Python library', ''),
('BF_PYTHON_LIBPATH', 'Library path', ''),
('BF_PYTHON_LINKFLAGS', 'Python link flags', ''),
(BoolOption('WITH_BF_OPENAL', 'Use OpenAL if true', '')),
('BF_OPENAL', 'base path for OpenAL', ''),
('BF_OPENAL_INC', 'include path for python headers', ''),
('BF_OPENAL_LIB', 'Path to OpenAL library', ''),
('BF_OPENAL_LIBPATH', 'Path to OpenAL library', ''),
(BoolOption('WITH_BF_SDL', 'Use SDL if true', '')),
('BF_SDL', 'SDL base path', ''),
('BF_SDL_INC', 'SDL include path', ''), #$(shell $(BF_SDL)/bin/sdl-config --cflags)
('BF_SDL_LIB', 'SDL library', ''), #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
('BF_SDL_LIBPATH', 'SDL library path', ''),
(BoolOption('WITH_BF_FMOD', 'Use FMOD if true', 'false')),
# BF_FMOD = $(LCGDIR)/fmod
(BoolOption('WITH_BF_OPENEXR', 'Use OPENEXR if true', 'true')),
('BF_OPENEXR', 'OPENEXR base path', ''),
('BF_OPENEXR_INC', 'OPENEXR include path', ''),
('BF_OPENEXR_LIB', 'OPENEXR library', ''),
('BF_OPENEXR_LIBPATH', 'OPENEXR library path', ''),
(BoolOption('WITH_BF_JPEG', 'Use JPEG if true', 'true')),
('BF_JPEG', 'JPEG base path', ''),
('BF_JPEG_INC', 'JPEG include path', ''),
('BF_JPEG_LIB', 'JPEG library', ''),
('BF_JPEG_LIBPATH', 'JPEG library path', ''),
(BoolOption('WITH_BF_PNG', 'Use PNG if true', 'true')),
('BF_PNG', 'PNG base path', ''),
('BF_PNG_INC', 'PNG include path', ''),
('BF_PNG_LIB', 'PNG library', ''),
('BF_PNG_LIBPATH', 'PNG library path', ''),
(BoolOption('WITH_BF_TIFF', 'Use TIFF if true', 'true')),
('BF_TIFF', 'TIFF base path', ''),
('BF_TIFF_INC', 'TIFF include path', ''),
('BF_TIFF_LIB', 'TIFF library', ''),
('BF_TIFF_LIBPATH', 'TIFF library path', ''),
(BoolOption('WITH_BF_ZLIB', 'Use ZLib if true', 'true')),
('BF_ZLIB', 'ZLib base path', ''),
('BF_ZLIB_INC', 'ZLib include path', ''),
('BF_ZLIB_LIB', 'ZLib library', ''),
('BF_ZLIB_LIBPATH', 'ZLib library path', ''),
(BoolOption('WITH_BF_GETTEXT', 'Use gettext if true', 'true')),
('BF_GETTEXT', 'gettext base path', ''),
('BF_GETTEXT_INC', 'gettext include path', ''),
('BF_GETTEXT_LIB', 'gettext library', ''),
('BF_GETTEXT_LIBPATH', 'gettext library path', ''),
(BoolOption('WITH_BF_ICONV', 'Use iconv if true', 'true')),
('BF_ICONV', 'iconv base path', ''),
('BF_ICONV_INC', 'iconv include path', ''),
('BF_ICONV_LIB', 'iconv library', ''),
('BF_ICONV_LIBPATH', 'iconv library path', ''),
(BoolOption('WITH_BF_GAMEENGINE', 'Build with gameengine' , 'true')),
(BoolOption('WITH_BF_ODE', 'Use ODE if true', 'true')),
('BF_ODE', 'ODE base path', ''),
('BF_ODE_INC', 'ODE include path' , ''),
('BF_ODE_LIB', 'ODE library', ''),
(BoolOption('WITH_BF_BULLET', 'Use Bullet if true', 'true')),
('BF_BULLET', 'Bullet base dir', ''),
('BF_BULLET_INC', 'Bullet include path', ''),
('BF_BULLET_LIB', 'Bullet library', ''),
('BF_SOLID', 'Solid base dir', '#/extern/solid'),
('BF_SOLID_INC', 'Solid include path', ''),
##
##WITH_BF_NSPR = 'true'
##BF_NSPR = $(LCGDIR)/nspr
##BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
##BF_NSPR_LIB =
### Uncomment the following line to use Mozilla inplace of netscape
##CPPFLAGS += -DMOZ_NOT_NET
### Location of MOZILLA/Netscape header files...
##BF_MOZILLA = $(LCGDIR)/mozilla
##BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
##BF_MOZILLA_LIB =
### Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
### if this is not set.
##
### Be paranoid regarding library creation (do not update archives)
##BF_PARANOID = 'true'
##
### enable freetype2 support for text objects
(BoolOption('WITH_BF_FREETYPE', 'Use Freetype if true', 'true')),
('BF_FREETYPE', 'Freetype base path', ''),
('BF_FREETYPE_INC', 'Freetype include path', ''),
('BF_FREETYPE_LIB', 'Freetype library', ''),
('BF_FREETYPE_LIBPATH', 'Freetype library path', ''),
(BoolOption('WITH_BF_QUICKTIME', 'Use QuickTime if true', 'false')),
('BF_QUICKTIME', 'QuickTime base path', ''),
('BF_QUICKTIME_INC', 'QuickTime include path', ''),
('BF_QUICKTIME_LIB', 'QuickTime library', ''),
('BF_QUICKTIME_LIBPATH', 'QuickTime library path', ''),
(BoolOption('WITH_BF_OPENGL', 'Use MESA if true', 'true')),
('BF_OPENGL', 'OpenGL base path', ''),
('BF_OPENGL_INC', 'OpenGL include path', ''),
('BF_OPENGL_LIB', 'OpenGL libraries', ''),
('BF_OPENGL_LIBPATH', 'OpenGL library path', ''),
('BF_OPENGL_LIB_STATIC', 'OpenGL static libraries', ''),
('BF_OPENGL_LINKFLAGS', 'OpenGL link flags', ''),
(BoolOption('WITH_BF_FTGL', 'Use FTGL if true', 'true')),
('BF_FTGL', 'FTGL base path', ''),
('BF_FTGL_INC', 'FTGL include path', ''),
('BF_FTGL_LIB', 'FTGL libraries', ''),
(BoolOption('WITH_BF_PLAYER', 'Build blenderplayer if true', 'false')),
('CFLAGS', 'C-compiler flags', ''),
('CCFLAGS', 'C++-compiler flags', ''),
('CPPFLAGS', 'Defines', ''),
('REL_CFLAGS', 'C release flags', ''),
('REL_CCFLAGS', 'C++ release flags', ''),
('C_WARN', 'C warning flags', ''),
('CC_WARN', 'C++ warning flags', ''),
('LLIBS', 'Platform libs', ''),
('PLATFORM_LINKFLAGS', 'Platform linkflags', ''),
(BoolOption('BF_PROFILE', 'Add profiling information if true', 'false')),
('BF_PROFILE_FLAGS', 'Profiling flags', ''),
(BoolOption('BF_DEBUG', 'Add debug flags if true', 'false')),
('BF_DEBUG_FLAGS', 'Debug flags', ''),
('BF_BUILDDIR', 'Build dir', ''),
('BF_INSTALLDIR', 'Installation dir', '')
) # end of opts.AddOptions()
return localopts

189
tools/crossmingw.py Executable file
View File

@ -0,0 +1,189 @@
#coments are #JB where this file was altered by Jasen Betts
# email: 'n@tres'.join(['jase','hna.com'])
"""tools.crossmingw
Tool-specific initialization for MinGW (http://www.mingw.org/)
There normally shouldn't be any need to import this module directly.
It will usually be imported through the generic SCons.Tool.Tool()
selection method.
"""
#
# Copyright (c) 2001, 2002, 2003, 2004 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
__revision__ = "/home/scons/scons/branch.0/branch.96/baseline/src/engine/SCons/Tool/mingw.py 0.96.91.D001 2005/09/08 09:14:36 knight"
import os
import os.path
import string
import SCons.Action
import SCons.Builder
import SCons.Tool
import SCons.Util
# This is what we search for to find mingw:
prefixes = SCons.Util.Split("""
mingw32-
i386-mingw32msvc-
i486-mingw32msvc-
i586-mingw32msvc-
i686-mingw32msvc-
""")
def find(env):
for prefix in prefixes:
# First search in the SCons path and then the OS path:
if env.WhereIs(prefix + 'gcc') or SCons.Util.WhereIs(prefix + 'gcc'):
return prefix
return ''
def shlib_generator(target, source, env, for_signature):
cmd = SCons.Util.CLVar(['$SHLINK', '$SHLINKFLAGS'])
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
if dll: cmd.extend(['-o', dll])
cmd.extend(['$SOURCES', '$_LIBDIRFLAGS', '$_LIBFLAGS'])
implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
if implib: cmd.append('-Wl,--out-implib,'+implib.get_string(for_signature))
def_target = env.FindIxes(target, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
if def_target: cmd.append('-Wl,--output-def,'+def_target.get_string(for_signature))
return [cmd]
def shlib_emitter(target, source, env):
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
no_import_lib = env.get('no_import_lib', 0)
if not dll:
raise SCons.Errors.UserError, "A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX")
if not no_import_lib and \
not env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX'):
# Append an import library to the list of targets.
target.append(env.ReplaceIxes(dll,
'SHLIBPREFIX', 'SHLIBSUFFIX',
'LIBPREFIX', 'LIBSUFFIX'))
# Append a def file target if there isn't already a def file target
# or a def file source. There is no option to disable def file
# target emitting, because I can't figure out why someone would ever
# want to turn it off.
def_source = env.FindIxes(source, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
def_target = env.FindIxes(target, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
if not def_source and not def_target:
target.append(env.ReplaceIxes(dll,
'SHLIBPREFIX', 'SHLIBSUFFIX',
'WIN32DEFPREFIX', 'WIN32DEFSUFFIX'))
return (target, source)
#JB """ I'm blindly susbstuting lines from the mingw.py
#JB file becase these lines cause python errors here. """
#JB shlib_action = SCons.Action.Action(shlib_generator,generator=1)
shlib_action = SCons.Action.CommandGenerator(shlib_generator)
res_action = SCons.Action.Action('$RCCOM', '$RCCOMSTR')
#JB """ changed for what was in mingw.py """
#JB res_builder = SCons.Builder.Builder(action=res_action, suffix='.o',
#JB source_scanner=SCons.Tool.SourceFileScanner)
res_builder = SCons.Builder.Builder(action='$RCCOM', suffix='.o',
source_scanner=SCons.Defaults.ObjSourceScan)
#JB SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
SCons.Defaults.ObjSourceScan.add_scanner('.rc', SCons.Defaults.CScan)
#JB """ no more changes """
def generate(env):
mingw_prefix = find(env)
if mingw_prefix:
dir = os.path.dirname(env.WhereIs(mingw_prefix + 'gcc') or SCons.Util.WhereIs(mingw_prefix + 'gcc'))
# The mingw bin directory must be added to the path:
path = env['ENV'].get('PATH', [])
if not path:
path = []
if SCons.Util.is_String(path):
path = string.split(path, os.pathsep)
env['ENV']['PATH'] = string.join([dir] + path, os.pathsep)
# Most of mingw is the same as gcc and friends...
gnu_tools = ['gcc', 'g++', 'gnulink', 'ar', 'gas']
for tool in gnu_tools:
SCons.Tool.Tool(tool)(env)
#... but a few things differ:
env['CC'] = mingw_prefix + 'gcc'
env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
env['CXX'] = mingw_prefix + 'g++'
env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS')
env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -shared')
env['SHLINKCOM'] = shlib_action
env['AR'] = mingw_prefix + 'ar'
env['RANLIB'] = mingw_prefix + 'ranlib'
env.Append(SHLIBEMITTER = [shlib_emitter])
env['LINK'] = mingw_prefix + 'gcc'
env['AS'] = mingw_prefix + 'as'
env['WIN32DEFPREFIX'] = ''
env['WIN32DEFSUFFIX'] = '.def'
env['SHOBJSUFFIX'] = '.o'
env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
env['RC'] = mingw_prefix + 'windres'
env['RCFLAGS'] = SCons.Util.CLVar('')
env['RCINCFLAGS'] = '$( ${_concat(RCINCPREFIX, CPPPATH, RCINCSUFFIX, __env__, RDirs, TARGET)} $)'
env['RCINCPREFIX'] = '--include-dir '
env['RCINCSUFFIX'] = ''
env['RCCOM'] = '$RC $RCINCFLAGS $RCINCPREFIX $SOURCE.dir $RCFLAGS -i $SOURCE -o $TARGET'
env['BUILDERS']['RES'] = res_builder
# Some setting from the platform also have to be overridden:
env['OBJPREFIX'] = ''
env['OBJSUFFIX'] = '.o'
env['LIBPREFIX'] = 'lib'
env['LIBSUFFIX'] = '.a'
env['SHOBJPREFIX'] = '$OBJPREFIX'
env['SHOBJSUFFIX'] = '$OBJSUFFIX'
env['PROGPREFIX'] = ''
env['PROGSUFFIX'] = '.exe'
env['LIBPREFIX'] = ''
env['LIBSUFFIX'] = '.lib'
env['SHLIBPREFIX'] = ''
env['SHLIBSUFFIX'] = '.dll'
env['LIBPREFIXES'] = [ '$LIBPREFIX' ]
env['LIBSUFFIXES'] = [ '$LIBSUFFIX' ]
def exists(env):
return find(env)

353
tools/mstoolkit.py Executable file
View File

@ -0,0 +1,353 @@
"""tools.mstoolkit
Tool-specific initialization for Microsoft Visual C/C++ Toolkit Commandline
There normally shouldn't be any need to import this module directly.
It will usually be imported through the generic SCons.Tool.Tool()
selection method.
"""
#
# Copyright (c) 2004 John Connors
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
import os.path
import re
import string
import types
import SCons.Action
import SCons.Builder
import SCons.Errors
import SCons.Platform.win32
import SCons.Tool
import SCons.Util
import SCons.Warnings
CSuffixes = ['.c', '.C']
CXXSuffixes = ['.cc', '.cpp', '.cxx', '.c++', '.C++']
def get_msvctoolkit_paths():
"""Return a 4-tuple of (INCLUDE, LIB, PATH, TOOLKIT) as the values of those
three environment variables that should be set in order to execute
the MSVC .NET tools properly, if the information wasn't available
from the registry."""
MSToolkitDir = None
paths = {}
exe_path = ''
lib_path = ''
include_path = ''
# First, we get the shell folder for this user:
if not SCons.Util.can_read_reg:
raise SCons.Errors.InternalError, "No Windows registry module was found"
# look for toolkit
if os.environ.has_key('VCToolkitInstallDir'):
MSToolkitDir = os.path.normpath(os.environ['VCToolkitInstallDir'])
else:
# last resort -- default install location
MSToolkitDir = r'C:\Program Files\Microsoft Visual C++ Toolkit 2003'
# look for platform sdk
if os.environ.has_key('MSSdk'):
PlatformSDKDir = os.path.normpath(os.environ['MSSdk'])
else:
try:
PlatformSDKDir = SCons.Util.RegGetValue(SCons.Util.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\MicrosoftSDK\Directories\Install Dir')[0]
PlatformSDKDir = str(PlatformSDKDir)
except SCons.Util.RegError:
raise SCons.Errors.InternalError, "The Platform SDK directory was not found in the registry or in the `MSSdk` environment variable."
# look for DX Sdk (expecting DX9)
# dxsdk docs have a directory key, look for it, extract path
#dxsdkdocs = ""
DXsdkDir = ""
#try:
# dxsdkdocs = SCons.Util.RegGetValue(SCons.Util.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\DirectX SDK\DX9SDK Doc Path')
#except SCons.Util.RegError:
# raise SCons.Errors.InternalError, "The DXSDK directory was not found in the registry."
if os.environ.has_key('DXSDK_DIR'):
DXsdkDir = os.path.normpath(os.environ['DXSDK_DIR'])
#DXsdkDir = os.path.split(dxsdkdocs[0])[0]
DXsdkDir = os.path.split(DXsdkDir)[0]
include_path = r'%s\include;%s\include;%s\include' % (MSToolkitDir, PlatformSDKDir, DXsdkDir)
lib_path = r'%s\lib;%s\lib;%s\lib' % (MSToolkitDir, PlatformSDKDir, DXsdkDir)
exe_path = r'%s\bin;%s\bin\win95;%s\bin' % (MSToolkitDir, PlatformSDKDir, PlatformSDKDir)
return (include_path, lib_path, exe_path, PlatformSDKDir)
def validate_vars(env):
"""Validate the PDB, PCH, and PCHSTOP construction variables."""
if env.has_key('PCH') and env['PCH']:
if not env.has_key('PCHSTOP'):
raise SCons.Errors.UserError, "The PCHSTOP construction must be defined if PCH is defined."
if not SCons.Util.is_String(env['PCHSTOP']):
raise SCons.Errors.UserError, "The PCHSTOP construction variable must be a string: %r"%env['PCHSTOP']
def pch_emitter(target, source, env):
"""Sets up the PDB dependencies for a pch file, and adds the object
file target."""
validate_vars(env)
pch = None
obj = None
for t in target:
if SCons.Util.splitext(str(t))[1] == '.pch':
pch = t
if SCons.Util.splitext(str(t))[1] == '.obj':
obj = t
if not obj:
obj = SCons.Util.splitext(str(pch))[0]+'.obj'
target = [pch, obj] # pch must be first, and obj second for the PCHCOM to work
if env.has_key('PDB') and env['PDB']:
env.SideEffect(env['PDB'], target)
env.Precious(env['PDB'])
return (target, source)
def object_emitter(target, source, env, parent_emitter):
"""Sets up the PDB and PCH dependencies for an object file."""
validate_vars(env)
parent_emitter(target, source, env)
if env.has_key('PDB') and env['PDB']:
env.SideEffect(env['PDB'], target)
env.Precious(env['PDB'])
if env.has_key('PCH') and env['PCH']:
env.Depends(target, env['PCH'])
return (target, source)
def static_object_emitter(target, source, env):
return object_emitter(target, source, env,
SCons.Defaults.StaticObjectEmitter)
def shared_object_emitter(target, source, env):
return object_emitter(target, source, env,
SCons.Defaults.SharedObjectEmitter)
pch_builder = SCons.Builder.Builder(action='$PCHCOM', suffix='.pch', emitter=pch_emitter)
res_builder = SCons.Builder.Builder(action='$RCCOM', suffix='.res')
def pdbGenerator(env, target, source, for_signature):
if target and env.has_key('PDB') and env['PDB']:
return ['/PDB:%s'%target[0].File(env['PDB']).get_string(for_signature),
'/DEBUG']
def win32ShlinkTargets(target, source, env, for_signature):
listCmd = []
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
if dll: listCmd.append("/out:%s"%dll.get_string(for_signature))
implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
if implib: listCmd.append("/implib:%s"%implib.get_string(for_signature))
return listCmd
def win32ShlinkSources(target, source, env, for_signature):
listCmd = []
deffile = env.FindIxes(source, "WIN32DEFPREFIX", "WIN32DEFSUFFIX")
for src in source:
if src == deffile:
# Treat this source as a .def file.
listCmd.append("/def:%s" % src.get_string(for_signature))
else:
# Just treat it as a generic source file.
listCmd.append(src)
return listCmd
def win32LibEmitter(target, source, env):
# SCons.Tool.msvc.validate_vars(env)
dll = env.FindIxes(target, "SHLIBPREFIX", "SHLIBSUFFIX")
no_import_lib = env.get('no_import_lib', 0)
if not dll:
raise SCons.Errors.UserError, "A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX")
if env.get("WIN32_INSERT_DEF", 0) and \
not env.FindIxes(source, "WIN32DEFPREFIX", "WIN32DEFSUFFIX"):
# append a def file to the list of sources
source.append(env.ReplaceIxes(dll,
"SHLIBPREFIX", "SHLIBSUFFIX",
"WIN32DEFPREFIX", "WIN32DEFSUFFIX"))
if env.has_key('PDB') and env['PDB']:
env.SideEffect(env['PDB'], target)
env.Precious(env['PDB'])
if not no_import_lib and \
not env.FindIxes(target, "LIBPREFIX", "LIBSUFFIX"):
# Append an import library to the list of targets.
target.append(env.ReplaceIxes(dll,
"SHLIBPREFIX", "SHLIBSUFFIX",
"LIBPREFIX", "LIBSUFFIX"))
# and .exp file is created if there are exports from a DLL
target.append(env.ReplaceIxes(dll,
"SHLIBPREFIX", "SHLIBSUFFIX",
"WIN32EXPPREFIX", "WIN32EXPSUFFIX"))
return (target, source)
def prog_emitter(target, source, env):
#SCons.Tool.msvc.validate_vars(env)
if env.has_key('PDB') and env['PDB']:
env.SideEffect(env['PDB'], target)
env.Precious(env['PDB'])
return (target,source)
def RegServerFunc(target, source, env):
if env.has_key('register') and env['register']:
ret = regServerAction([target[0]], [source[0]], env)
if ret:
raise SCons.Errors.UserError, "Unable to register %s" % target[0]
else:
print "Registered %s sucessfully" % target[0]
return ret
return 0
regServerAction = SCons.Action.Action("$REGSVRCOM")
regServerCheck = SCons.Action.Action(RegServerFunc, None)
shlibLinkAction = SCons.Action.Action('${TEMPFILE("$SHLINK $SHLINKFLAGS $_SHLINK_TARGETS $( $_LIBDIRFLAGS $) $_LIBFLAGS $_PDB $_SHLINK_SOURCES")}')
compositeLinkAction = shlibLinkAction + regServerCheck
def generate(env):
"""Add Builders and construction variables for MSVC++ to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
for suffix in CSuffixes:
static_obj.add_action(suffix, SCons.Defaults.CAction)
shared_obj.add_action(suffix, SCons.Defaults.ShCAction)
for suffix in CXXSuffixes:
static_obj.add_action(suffix, SCons.Defaults.CXXAction)
shared_obj.add_action(suffix, SCons.Defaults.ShCXXAction)
SCons.Tool.createStaticLibBuilder(env)
SCons.Tool.createSharedLibBuilder(env)
SCons.Tool.createProgBuilder(env)
env['CCPDBFLAGS'] = SCons.Util.CLVar(['${(PDB and "/Zi /Fd%s"%File(PDB)) or ""}'])
env['CCPCHFLAGS'] = SCons.Util.CLVar(['${(PCH and "/Yu%s /Fp%s"%(PCHSTOP or "",File(PCH))) or ""}'])
env['CCCOMFLAGS'] = '$CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS /c $SOURCES /Fo$TARGET $CCPCHFLAGS $CCPDBFLAGS'
env['CC'] = 'cl'
env['CCFLAGS'] = SCons.Util.CLVar('/nologo')
env['CCCOM'] = '$CC $CCFLAGS $CCCOMFLAGS'
env['SHCC'] = '$CC'
env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
env['SHCCCOM'] = '$SHCC $SHCCFLAGS $CCCOMFLAGS'
env['CXX'] = '$CC'
env['CXXFLAGS'] = SCons.Util.CLVar('$CCFLAGS $( /TP $)')
env['CXXCOM'] = '$CXX $CXXFLAGS $CCCOMFLAGS'
env['SHCXX'] = '$CXX'
env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS')
env['SHCXXCOM'] = '$SHCXX $SHCXXFLAGS $CCCOMFLAGS'
env['CPPDEFPREFIX'] = '/D'
env['CPPDEFSUFFIX'] = ''
env['INCPREFIX'] = '/I'
env['INCSUFFIX'] = ''
env['OBJEMITTER'] = static_object_emitter
env['SHOBJEMITTER'] = shared_object_emitter
env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
env['RC'] = 'rc'
env['RCFLAGS'] = SCons.Util.CLVar('')
env['RCCOM'] = '$RC $_CPPDEFFLAGS $_CPPINCFLAGS $RCFLAGS /fo$TARGET $SOURCES'
CScan = env.get_scanner('.c')
if CScan:
CScan.add_skey('.rc')
env['BUILDERS']['RES'] = res_builder
include_path, lib_path, exe_path, sdk_path = get_msvctoolkit_paths()
env.PrependENVPath('INCLUDE', include_path)
env.PrependENVPath('LIB', lib_path)
env.PrependENVPath('PATH', exe_path)
env['ENV']['CPU'] = 'i386'
env['ENV']['MSSDK'] = sdk_path
env['ENV']['BkOffice'] = sdk_path
env['ENV']['Basemake'] = sdk_path + "\\Include\\BKOffice.Mak"
env['ENV']['INETSDK'] = sdk_path
env['ENV']['MSSDK'] = sdk_path
env['ENV']['MSTOOLS'] = sdk_path
env['ENV']['TARGETOS'] = 'WINNT'
env['ENV']['APPVER'] = '5.0'
env['CFILESUFFIX'] = '.c'
env['CXXFILESUFFIX'] = '.cc'
env['PCHCOM'] = '$CXX $CXXFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS /c $SOURCES /Fo${TARGETS[1]} /Yc$PCHSTOP /Fp${TARGETS[0]} $CCPDBFLAGS'
env['BUILDERS']['PCH'] = pch_builder
env['AR'] = 'lib.exe' #'"' +sdk_path + '\\bin\\Win64\\lib.exe"'
env['ARFLAGS'] = SCons.Util.CLVar('/nologo')
env['ARCOM'] = "${TEMPFILE('$AR $ARFLAGS /OUT:$TARGET $SOURCES')}"
env['SHLINK'] = '$LINK'
env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS /dll')
env['_SHLINK_TARGETS'] = win32ShlinkTargets
env['_SHLINK_SOURCES'] = win32ShlinkSources
env['SHLINKCOM'] = compositeLinkAction
env['SHLIBEMITTER']= win32LibEmitter
env['LINK'] = 'link.exe' #'"' +sdk_path + '\\bin\\Win64\\' + 'link.exe"'
env['LINKFLAGS'] = SCons.Util.CLVar('/nologo')
env['_PDB'] = pdbGenerator
env["TEMPFILE"] = SCons.Platform.win32.TempFileMunge
env['LINKCOM'] = '${TEMPFILE("$LINK $LINKFLAGS /OUT:$TARGET $( $_LIBDIRFLAGS $) $_LIBFLAGS $_PDB $SOURCES")}'
env['PROGEMITTER'] = prog_emitter
env['LIBDIRPREFIX']='/LIBPATH:'
env['LIBDIRSUFFIX']=''
env['LIBLINKPREFIX']=''
env['LIBLINKSUFFIX']='$LIBSUFFIX'
env['WIN32DEFPREFIX'] = ''
env['WIN32DEFSUFFIX'] = '.def'
env['WIN32_INSERT_DEF'] = 0
env['WIN32EXPPREFIX'] = ''
env['WIN32EXPSUFFIX'] = '.exp'
env['REGSVRACTION'] = regServerCheck
env['REGSVR'] = os.path.join(SCons.Platform.win32.get_system_root(),'System32','regsvr32')
env['REGSVRFLAGS'] = '/s '
env['REGSVRCOM'] = '$REGSVR $REGSVRFLAGS $TARGET'
def exists(env):
return env.Detect('cl')