Merge with -r 22620:23107.
[blender.git] / tools / btools.py
index bbf8d0a..bb1c18b 100755 (executable)
@@ -30,6 +30,9 @@ def validate_arguments(args, bc):
                        'WITH_BF_PYTHON', 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'WITH_BF_STATICPYTHON', 'BF_PYTHON_LIB_STATIC',
                        'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH', 'WITH_BF_STATICOPENAL', 'BF_OPENAL_LIB_STATIC',
                        'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH',
+                       'BF_LIBSAMPLERATE', 'BF_LIBSAMPLERATE_INC', 'BF_LIBSAMPLERATE_LIB', 'BF_LIBSAMPLERATE_LIBPATH',
+                       'WITH_BF_JACK', 'BF_JACK', 'BF_JACK_INC', 'BF_JACK_LIB', 'BF_JACK_LIBPATH',
+                       'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH',
                        'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
                        'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC',
                        'WITH_BF_DDS',
@@ -44,11 +47,11 @@ def validate_arguments(args, bc):
                        'WITH_BF_INTERNATIONAL',
                        '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_SOLID', 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
-                       'BF_SOLID', 'BF_SOLID_INC', 'BF_WINTAB', 'BF_WINTAB_INC',
+                       'WITH_BF_GAMEENGINE', 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
+                       'BF_WINTAB', 'BF_WINTAB_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_FFTW3', 'BF_FFTW3', 'BF_FFTW3_INC', 'BF_FFTW3_LIB', 'BF_FFTW3_LIBPATH',
                        'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC',
                        'WITH_BF_PLAYER',
                        'WITH_BF_NOBLENDER',
@@ -57,14 +60,17 @@ def validate_arguments(args, bc):
                        'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC',
                        'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
                        'WITHOUT_BF_INSTALL',
+                       'WITHOUT_BF_PYTHON_INSTALL',
                        'WITH_BF_OPENMP',
-                       'WITHOUT_BF_INSTALL',
                        'BF_FANCY', 'BF_QUIET',
                        'BF_X264_CONFIG',
                        'BF_XVIDCORE_CONFIG',
                        'WITH_BF_LCMS', 'BF_LCMS_LIB',
                        'WITH_BF_DOCS',
                        'BF_NUMJOBS',
+                       'BF_MSVS',
+
+                       # 'BF_CHECK_LIB',
                        ]
        
        # Have options here that scons expects to be lists
@@ -73,6 +79,7 @@ def validate_arguments(args, bc):
                        'BF_OPENGL_LINKFLAGS',
                        'CFLAGS', 'CCFLAGS', 'CXXFLAGS', 'CPPFLAGS',
                        'REL_CFLAGS', 'REL_CCFLAGS', 'REL_CXXFLAGS',
+                       'BGE_CXXFLAGS',
                        'BF_PROFILE_CFLAGS', 'BF_PROFILE_CCFLAGS', 'BF_PROFILE_CXXFLAGS', 'BF_PROFILE_LINKFLAGS',
                        'BF_DEBUG_CFLAGS', 'BF_DEBUG_CCFLAGS', 'BF_DEBUG_CXXFLAGS',
                        'C_WARN', 'CC_WARN', 'CXX_WARN',
@@ -86,7 +93,7 @@ def validate_arguments(args, bc):
                        'BF_BSC', 'BF_CONFIG',
                        'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG',
                        'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG',
-                       'BF_DOCDIR']
+                       'BF_DOCDIR', 'BF_UNIT_TEST']
 
        okdict = {}
 
@@ -157,7 +164,7 @@ def read_opts(cfg, args):
                (BoolVariable('WITH_BF_STATICPYTHON', 'Staticly link to python', False)),
 
                (BoolVariable('BF_NO_ELBEEM', 'Disable Fluid Sim', False)),
-
+               ('BF_PROFILE_FLAGS', 'Profiling compiler flags', ''),
                (BoolVariable('WITH_BF_OPENAL', 'Use OpenAL if true', False)),
                ('BF_OPENAL', 'base path for OpenAL', ''),
                ('BF_OPENAL_INC', 'include path for python headers', ''),
@@ -168,10 +175,27 @@ def read_opts(cfg, args):
 
                (BoolVariable('WITH_BF_SDL', 'Use SDL if true', False)),
                ('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_INC', 'SDL include path', ''),
+               ('BF_SDL_LIB', 'SDL library', ''),
                ('BF_SDL_LIBPATH', 'SDL library path', ''),
 
+               ('BF_LIBSAMPLERATE', 'libsamplerate aka SRC base path', ''),
+               ('BF_LIBSAMPLERATE_INC', 'libsamplerate aka SRC include path', ''),
+               ('BF_LIBSAMPLERATE_LIB', 'libsamplerate aka SRC library', ''),
+               ('BF_LIBSAMPLERATE_LIBPATH', 'libsamplerate aka SRC library path', ''),
+
+               (BoolVariable('WITH_BF_JACK', 'Enable jack support if true', True)),
+               ('BF_JACK', 'jack base path', ''),
+               ('BF_JACK_INC', 'jack include path', ''),
+               ('BF_JACK_LIB', 'jack library', ''),
+               ('BF_JACK_LIBPATH', 'jack library path', ''),
+
+               (BoolVariable('WITH_BF_SNDFILE', 'Enable sndfile support if true', True)),
+               ('BF_SNDFILE', 'sndfile base path', ''),
+               ('BF_SNDFILE_INC', 'sndfile include path', ''),
+               ('BF_SNDFILE_LIB', 'sndfile library', ''),
+               ('BF_SNDFILE_LIBPATH', 'sndfile library path', ''),
+
                ('BF_PTHREADS', 'Pthreads base path', ''),
                ('BF_PTHREADS_INC', 'Pthreads include path', ''),
                ('BF_PTHREADS_LIB', 'Pthreads library', ''),
@@ -248,21 +272,13 @@ def read_opts(cfg, args):
                ('BF_ICONV_LIB', 'iconv library', ''),
                ('BF_ICONV_LIBPATH', 'iconv library path', ''),
                
-               (BoolVariable('WITH_BF_GAMEENGINE', 'Build with gameengine' , True)),
-
-               (BoolVariable('WITH_BF_ODE', 'Use ODE if true', True)),
-               ('BF_ODE', 'ODE base path', ''),
-               ('BF_ODE_INC', 'ODE include path' , ''),
-               ('BF_ODE_LIB', 'ODE library', ''),
+               (BoolVariable('WITH_BF_GAMEENGINE', 'Build with gameengine' , False)),
 
                (BoolVariable('WITH_BF_BULLET', 'Use Bullet if true', True)),
                ('BF_BULLET', 'Bullet base dir', ''),
                ('BF_BULLET_INC', 'Bullet include path', ''),
                ('BF_BULLET_LIB', 'Bullet library', ''),
                
-               (BoolVariable('WITH_BF_SOLID', 'Use Sumo/Solid deprecated physics system if true', True)),
-               ('BF_SOLID', 'Solid base dir', '#/extern/solid'),
-               ('BF_SOLID_INC', 'Solid include path', ''),
                ('BF_WINTAB', 'WinTab base dir', ''),
                ('BF_WINTAB_INC', 'WinTab include dir', ''),
                ('BF_CXX', 'c++ base path for libstdc++, only used when static linking', ''),
@@ -299,6 +315,12 @@ def read_opts(cfg, args):
                ('BF_QUICKTIME_INC', 'QuickTime include path', ''),
                ('BF_QUICKTIME_LIB', 'QuickTime library', ''),
                ('BF_QUICKTIME_LIBPATH', 'QuickTime library path', ''),
+               
+               (BoolVariable('WITH_BF_FFTW3', 'Use FFTW3 if true', False)),
+               ('BF_FFTW3', 'FFTW3 base path', ''),
+               ('BF_FFTW3_INC', 'FFTW3 include path', ''),
+               ('BF_FFTW3_LIB', 'FFTW3 library', ''),
+               ('BF_FFTW3_LIBPATH', 'FFTW3 library path', ''),
 
                (BoolVariable('WITH_BF_STATICOPENGL', 'Use MESA if true', True)),
                ('BF_OPENGL', 'OpenGL base path', ''),
@@ -314,6 +336,7 @@ def read_opts(cfg, args):
                ('CFLAGS', 'C only flags', ''),
                ('CCFLAGS', 'Generic C and C++ flags', ''),
                ('CXXFLAGS', 'C++ only flags', ''),
+               ('BGE_CXXFLAGS', 'C++ only flags for BGE', ''),
                ('CPPFLAGS', 'Defines', ''),
                ('REL_CFLAGS', 'C only release flags', ''),
                ('REL_CCFLAGS', 'Generic C and C++ release flags', ''),
@@ -351,6 +374,7 @@ def read_opts(cfg, args):
                (BoolVariable('BF_TWEAK_MODE', 'Enable tweak mode if true', False)),
                (BoolVariable('BF_SPLIT_SRC', 'Split src lib into several chunks if true', False)),
                (BoolVariable('WITHOUT_BF_INSTALL', 'dont install if true', False)),
+               (BoolVariable('WITHOUT_BF_PYTHON_INSTALL', 'dont install Python modules if true', False)),
                (BoolVariable('BF_FANCY', 'Enable fancy output if true', True)),
                (BoolVariable('BF_QUIET', 'Enable silent output if true', True)),
                (BoolVariable('WITH_BF_BINRELOC', 'Enable relocatable binary (linux only)', False)),
@@ -363,7 +387,11 @@ def read_opts(cfg, args):
                (BoolVariable('WITH_BF_DOCS', 'Generate API documentation', False)),
                
                ('BF_CONFIG', 'SCons python config file used to set default options', 'user_config.py'),
-               ('BF_NUMJOBS', 'Number of build processes to spawn', '1')
+               ('BF_NUMJOBS', 'Number of build processes to spawn', '1'),
+               ('BF_MSVS', 'Generate MSVS project files and solution', False),
+
+               (BoolVariable('BF_UNIT_TEST', 'Build with unit test support.', False)),
+               # ('BF_CHECK_LIB', 'Check unit testing framework library', 'check')
 
        ) # end of opts.AddOptions()
 
@@ -403,9 +431,13 @@ def NSIS_Installer(target=None, source=None, env=None):
 
        ns = open("00.sconsblender.nsi","r")
 
+
        ns_cnt = str(ns.read())
        ns.close()
 
+       # set Python version we compile against
+       ns_cnt = string.replace(ns_cnt, "[PYTHON_VERSION]", env['BF_PYTHON_VERSION'])
+
        # do root
        rootlist = []
        rootdir = os.listdir(inst_dir+"\\")