예제 #1
0
def read_opts(env, cfg, args):
    localopts = Variables.Variables(cfg, args)
    localopts.AddVariables(
        ('LCGDIR', 'Location of SVN lib dir'),
        ('LIBDIR', 'Root dir of libs'),
        (BoolVariable('WITH_BF_PYTHON', 'Compile with python', True)),
        (BoolVariable(
            'WITH_BF_PYTHON_SAFETY',
            'Internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency)',
            False)),
        (BoolVariable(
            'WITH_BF_PYTHON_SECURITY',
            'Disables execution of scripts within blend files by default',
            True)),
        ('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_ARCH',
         'Additional Python library under some linux flavors (arch-dependent)',
         ''),
        ('BF_PYTHON_DLL', 'Python dll - used on Windows only', ''),
        ('BF_PYTHON_LIB_STATIC', 'Python static libraries', ''),
        ('BF_PYTHON_LIBPATH', 'Library path', ''),
        ('BF_PYTHON_LINKFLAGS', 'Python link flags', ''),
        (BoolVariable('WITH_BF_STATICPYTHON', 'Staticly link to python',
                      False)),
        (BoolVariable('WITH_OSX_STATICPYTHON', 'Staticly link to python',
                      True)),
        ('BF_PYTHON_ABI_FLAGS',
         'Python ABI flags (suffix in library version: m, mu, etc)', ''),
        (BoolVariable('WITH_BF_FLUID', 'Build with Fluid simulation (Elbeem)',
                      True)),
        (BoolVariable('WITH_BF_BOOLEAN', 'Build with boolean modifier', True)),
        (BoolVariable('WITH_BF_REMESH', 'Build with remesh modifier', True)),
        (BoolVariable('WITH_BF_OCEANSIM', 'Build with ocean simulation',
                      False)),
        (BoolVariable('WITH_BF_SMOKE', 'Build with smoke simulation', True)),
        ('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', ''),
        ('BF_OPENAL_LIB', 'Path to OpenAL library', ''),
        ('BF_OPENAL_LIB_STATIC', 'Path to OpenAL static library', ''),
        ('BF_OPENAL_LIBPATH', 'Path to OpenAL library', ''),
        (BoolVariable('WITH_BF_STATICOPENAL', 'Staticly link to openal',
                      False)),
        (BoolVariable('WITH_BF_SDL', 'Use SDL if true', False)),
        ('BF_SDL', 'SDL base path', ''),
        ('BF_SDL_INC', 'SDL include path', ''),
        ('BF_SDL_LIB', 'SDL library', ''),
        ('BF_SDL_LIBPATH', 'SDL 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_JACK_DYNLOAD',
            'Enable runtime dynamic Jack libraries loading (works only on Linux)',
            False)),
        (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_LIB_STATIC', 'Path to sndfile static library', ''),
        ('BF_SNDFILE_LIBPATH', 'sndfile library path', ''),
        (BoolVariable('WITH_BF_STATICSNDFILE', 'Staticly link to sndfile',
                      False)),
        ('BF_PTHREADS', 'Pthreads base path', ''),
        ('BF_PTHREADS_INC', 'Pthreads include path', ''),
        ('BF_PTHREADS_LIB', 'Pthreads library', ''),
        ('BF_PTHREADS_LIBPATH', 'Pthreads library path', ''),
        (BoolVariable('WITH_BF_OPENEXR', 'Use OPENEXR if true', True)),
        (BoolVariable('WITH_BF_STATICOPENEXR', 'Staticly link to OpenEXR',
                      False)),
        ('BF_OPENEXR', 'OPENEXR base path', ''),
        ('BF_OPENEXR_INC', 'OPENEXR include path', ''),
        ('BF_OPENEXR_LIB', 'OPENEXR library', ''),
        ('BF_OPENEXR_LIBPATH', 'OPENEXR library path', ''),
        ('BF_OPENEXR_LIB_STATIC', 'OPENEXR static library', ''),
        (BoolVariable('WITH_BF_DDS', 'Support DDS image format if true',
                      True)),
        (BoolVariable('WITH_BF_CINEON',
                      'Support CINEON and DPX image formats if true', True)),
        (BoolVariable('WITH_BF_HDR', 'Support HDR image formats if true',
                      True)),
        (BoolVariable('WITH_BF_FRAMESERVER', 'Support export to a frameserver',
                      True)),
        (BoolVariable('WITH_BF_FFMPEG', 'Use FFMPEG if true', False)),
        ('BF_FFMPEG', 'FFMPEG base path', ''),
        ('BF_FFMPEG_LIB', 'FFMPEG library', ''),
        ('BF_FFMPEG_DLL', 'FFMPEG dll libraries to be installed', ''),
        ('BF_FFMPEG_EXTRA', 'FFMPEG flags that must be preserved', ''),
        ('BF_FFMPEG_INC', 'FFMPEG includes', ''),
        ('BF_FFMPEG_LIBPATH', 'FFMPEG library path', ''),
        (BoolVariable('WITH_BF_STATICFFMPEG', 'Use static FFMPEG if true',
                      False)),
        ('BF_FFMPEG_LIB_STATIC', 'Static FFMPEG libraries', ''),
        (BoolVariable('WITH_BF_OGG',
                      'Link OGG, THEORA, VORBIS with FFMPEG if true', False)),
        ('BF_OGG', 'OGG base path', ''),
        ('BF_OGG_LIB', 'OGG library', ''),
        (BoolVariable('WITH_BF_JPEG', 'Use JPEG if true', True)),
        (BoolVariable('WITH_BF_STATICJPEG', 'Staticly link to JPEG', False)),
        ('BF_JPEG', 'JPEG base path', ''),
        ('BF_JPEG_INC', 'JPEG include path', ''),
        ('BF_JPEG_LIB', 'JPEG library', ''),
        ('BF_JPEG_LIBPATH', 'JPEG library path', ''),
        ('BF_JPEG_LIB_STATIC', 'JPEG static library', ''),
        (BoolVariable('WITH_BF_OPENJPEG', 'Use OPENJPEG if true', False)),
        ('BF_OPENJPEG', 'OPENJPEG base path', ''),
        ('BF_OPENJPEG_INC', 'OPENJPEG include path', ''),
        ('BF_OPENJPEG_LIB', 'OPENJPEG library', ''),
        ('BF_OPENJPEG_LIBPATH', 'OPENJPEG library path', ''),
        (BoolVariable('WITH_BF_REDCODE', 'Use REDCODE if true', False)),
        ('BF_REDCODE', 'REDCODE base path', ''),
        ('BF_REDCODE_INC', 'REDCODE include path', ''),
        ('BF_REDCODE_LIB', 'REDCODE library', ''),
        ('BF_REDCODE_LIBPATH', 'REDCODE library path', ''),
        (BoolVariable('WITH_BF_PNG', 'Use PNG if true', True)),
        (BoolVariable('WITH_BF_STATICPNG', 'Staticly link to PNG', False)),
        ('BF_PNG', 'PNG base path', ''),
        ('BF_PNG_INC', 'PNG include path', ''),
        ('BF_PNG_LIB', 'PNG library', ''),
        ('BF_PNG_LIBPATH', 'PNG library path', ''),
        ('BF_PNG_LIB_STATIC', 'PNG static library', ''),
        (BoolVariable('WITH_BF_TIFF', 'Use TIFF if true', True)),
        (BoolVariable('WITH_BF_STATICTIFF', 'Staticly link to TIFF', False)),
        ('BF_TIFF', 'TIFF base path', ''),
        ('BF_TIFF_INC', 'TIFF include path', ''),
        ('BF_TIFF_LIB', 'TIFF library', ''),
        ('BF_TIFF_LIBPATH', 'TIFF library path', ''),
        ('BF_TIFF_LIB_STATIC', 'TIFF static library', ''),
        (BoolVariable('WITH_BF_ZLIB', 'Use ZLib if true', True)),
        (BoolVariable('WITH_BF_STATICZLIB', 'Staticly link to ZLib', False)),
        ('BF_ZLIB', 'ZLib base path', ''),
        ('BF_ZLIB_INC', 'ZLib include path', ''),
        ('BF_ZLIB_LIB', 'ZLib library', ''),
        ('BF_ZLIB_LIBPATH', 'ZLib library path', ''),
        ('BF_ZLIB_LIB_STATIC', 'ZLib static library', ''),
        (BoolVariable('WITH_BF_INTERNATIONAL', 'Use Boost::locale if true',
                      True)),
        (BoolVariable('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', ''),
        (BoolVariable('WITH_BF_FREESTYLE', 'Compile with freestyle', True)),
        (BoolVariable('WITH_BF_GAMEENGINE', 'Build with gameengine', False)),
        (BoolVariable('WITH_BF_BULLET', 'Use Bullet if true', True)),
        # (BoolVariable('WITH_BF_ELTOPO', 'Use Eltopo collision library if true', False)),  # this is now only available in a branch
        ('BF_LAPACK', 'LAPACK base path', ''),
        ('BF_LAPACK_LIB', 'LAPACK library', ''),
        ('BF_LAPACK_LIB_STATIC', 'LAPACK library', ''),
        ('BF_LAPACK_LIBPATH', 'LAPACK library path', ''),
        (BoolVariable('WITH_BF_STATICLAPACK', 'Staticly link to LAPACK',
                      False)),
        ('BF_BULLET', 'Bullet base dir', ''),
        ('BF_BULLET_INC', 'Bullet include path', ''),
        ('BF_BULLET_LIB', 'Bullet library', ''),
        ('BF_WINTAB', 'WinTab base dir', ''),
        ('BF_WINTAB_INC', 'WinTab include dir', ''),
        ('BF_CXX',
         'c++ base path for libstdc++, only used when static linking', ''),
        (BoolVariable('WITH_BF_STATICCXX', 'static link to stdc++', False)),
        ('BF_CXX_LIB_STATIC', 'static library path for stdc++', ''),
        ('BF_FREETYPE', 'Freetype base path', ''),
        ('BF_FREETYPE_INC', 'Freetype include path', ''),
        ('BF_FREETYPE_LIB', 'Freetype library', ''),
        ('BF_FREETYPE_LIBPATH', 'Freetype library path', ''),
        (BoolVariable('WITH_BF_FREETYPE_STATIC', 'Use Static Freetype if true',
                      False)),
        ('BF_FREETYPE_LIB_STATIC', 'Static Freetype library', ''),
        (BoolVariable('WITH_BF_OPENMP', 'Use OpenMP if true', False)),
        (BoolVariable('WITH_BF_STATICOPENMP', 'Staticly link to OpenMP',
                      False)),
        ('BF_OPENMP',
         'Base path to OpenMP (used when cross-compiling with older versions of WinGW)',
         ''),
        ('BF_OPENMP_INC',
         'Path to OpenMP includes (used when cross-compiling with older versions of WinGW)',
         ''),
        ('BF_OPENMP_LIBPATH',
         'Path to OpenMP libraries (used when cross-compiling with older versions of WinGW)',
         ''),
        (BoolVariable('WITH_GHOST_COCOA', 'Use Cocoa-framework if true',
                      False)),
        (BoolVariable(
            'WITH_GHOST_SDL',
            'Enable building blender against SDL for windowing rather then the native APIs',
            False)),
        (BoolVariable('USE_QTKIT', 'Use QTKIT if true', False)),
        ('BF_OPENMP_LIB_STATIC', 'OpenMP static library', ''),
        (BoolVariable('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', ''),
        (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_LIB_STATIC', 'FFTW3 static libraries', ''),
        ('BF_FFTW3_LIBPATH', 'FFTW3 library path', ''),
        (BoolVariable('WITH_BF_STATICFFTW3', 'Staticly link to FFTW3', False)),
        (BoolVariable('WITH_BF_STATICOPENGL', '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', ''),
        (BoolVariable('WITH_BF_COLLADA',
                      'Build COLLADA import/export module if true', False)),
        (BoolVariable('WITH_BF_STATICOPENCOLLADA',
                      'Staticly link to OpenCollada', False)),
        ('BF_COLLADA', 'COLLADA base path', ''),
        ('BF_COLLADA_INC', 'COLLADA include path', ''),
        ('BF_COLLADA_LIB', 'COLLADA library', ''),
        ('BF_OPENCOLLADA', 'OpenCollada base path', ''),
        ('BF_OPENCOLLADA_INC', 'OpenCollada base include path', ''),
        ('BF_OPENCOLLADA_LIB', 'OpenCollada library', ''),
        ('BF_OPENCOLLADA_LIBPATH', 'OpenCollada library path', ''),
        ('BF_PCRE', 'PCRE base path', ''),
        ('BF_PCRE_LIB', 'PCRE library', ''),
        ('BF_PCRE_LIBPATH', 'PCRE library path', ''),
        ('BF_EXPAT', 'Expat base path', ''),
        ('BF_EXPAT_LIB', 'Expat library', ''),
        ('BF_EXPAT_LIBPATH', 'Expat library path', ''),
        ('BF_OPENCOLLADA_LIB_STATIC', 'OpenCollada static library', ''),
        (BoolVariable('WITH_BF_JEMALLOC', 'Use jemalloc if true', False)),
        (BoolVariable('WITH_BF_STATICJEMALLOC', 'Staticly link to jemalloc',
                      False)),
        ('BF_JEMALLOC', 'jemalloc base path', ''),
        ('BF_JEMALLOC_INC', 'jemalloc include path', ''),
        ('BF_JEMALLOC_LIB', 'jemalloc library', ''),
        ('BF_JEMALLOC_LIBPATH', 'jemalloc library path', ''),
        ('BF_JEMALLOC_LIB_STATIC', 'jemalloc static library', ''),
        (BoolVariable('WITH_BF_PLAYER', 'Build blenderplayer if true', False)),
        (BoolVariable('WITH_BF_NOBLENDER', 'Do not build blender if true',
                      False)),
        (BoolVariable('WITH_BF_3DMOUSE',
                      'Build blender with support of 3D mouses', False)),
        (BoolVariable('WITH_BF_STATIC3DMOUSE',
                      'Staticly link to 3d mouse library', False)),
        ('BF_3DMOUSE', '3d mouse library base path', ''),
        ('BF_3DMOUSE_INC', '3d mouse library include path', ''),
        ('BF_3DMOUSE_LIB', '3d mouse library', ''),
        ('BF_3DMOUSE_LIBPATH', '3d mouse library path', ''),
        ('BF_3DMOUSE_LIB_STATIC', '3d mouse static library', ''),
        ('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', []),
        ('REL_CXXFLAGS', 'C++ only release flags', []),
        ('C_WARN', 'C warning flags', []),
        ('CC_WARN', 'Generic C and C++ warning flags', []),
        ('CXX_WARN', 'C++ only warning flags', []),
        ('LLIBS', 'Platform libs', []),
        ('PLATFORM_LINKFLAGS', 'Platform linkflags', []),
        ('MACOSX_ARCHITECTURE', 'python_arch.zip select', ''),
        ('MACOSX_SDK_CHECK', 'Detect available OS X SDK`s', ''),
        ('XCODE_CUR_VER', 'Detect XCode version', ''),
        ('MACOSX_DEPLOYMENT_TARGET', 'Detect OS X target version', ''),
        (BoolVariable('BF_PROFILE', 'Add profiling information if true',
                      False)),
        ('BF_PROFILE_CFLAGS', 'C only profiling flags', []),
        ('BF_PROFILE_CCFLAGS', 'C and C++ profiling flags', []),
        ('BF_PROFILE_CXXFLAGS', 'C++ only profiling flags', []),
        ('BF_PROFILE_LINKFLAGS', 'Profile linkflags', []),
        (BoolVariable('BF_DEBUG', 'Add debug flags if true', False)),
        ('BF_DEBUG_CFLAGS', 'C only debug flags', []),
        ('BF_DEBUG_CCFLAGS', 'C and C++ debug flags', []),
        ('BF_DEBUG_CXXFLAGS', 'C++ only debug flags', []),
        (BoolVariable('BF_BSC', 'Create .bsc files (msvc only)', False)),
        ('BF_BUILDDIR', 'Build dir', ''),
        ('BF_INSTALLDIR', 'Installation dir', ''),
        ('CC', 'C compiler to use', env['CC']),
        ('CXX', 'C++ compiler to use', env['CXX']),
        (BoolVariable('BF_BUILDINFO', 'Buildtime in splash if true', True)),
        (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('WITH_BF_PYTHON_INSTALL_NUMPY',
                      'install Python mumpy module', False)),
        (BoolVariable(
            'WITHOUT_BF_PYTHON_UNPACK',
            'dont remove and unpack Python modules everytime if true', False)),
        (BoolVariable(
            'WITHOUT_BF_OVERWRITE_INSTALL',
            'dont remove existing files before breating the new install directory (set to False when making packages for others)',
            False)),
        (BoolVariable('BF_FANCY', 'Enable fancy output if true', True)),
        (BoolVariable('BF_QUIET', 'Enable silent output if true', True)),
        (BoolVariable(
            'BF_LINE_OVERWRITE',
            'Enable overwriting of compile line in BF_QUIET mode if true',
            False)),
        (BoolVariable('WITH_BF_BINRELOC',
                      'Enable relocatable binary (linux only)', False)),
        (BoolVariable('WITH_BF_LZO', 'Enable fast LZO pointcache compression',
                      True)),
        (BoolVariable('WITH_BF_LZMA',
                      'Enable best LZMA pointcache compression', True)),
        (BoolVariable('WITH_BF_LIBMV',
                      'Enable libmv structure from motion library', True)),
        (BoolVariable('WITH_BF_COMPOSITOR',
                      'Enable the tile based nodal compositor', True)),
    )  # end of opts.AddOptions()

    localopts.AddVariables(
        ('BF_X264_CONFIG', 'configuration flags for x264', ''),
        ('BF_XVIDCORE_CONFIG', 'configuration flags for xvidcore', ''),
        #        (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_MSVS', 'Generate MSVS project files and solution', False),
        (BoolVariable('BF_UNIT_TEST', 'Build with unit test support.', False)),
        (BoolVariable(
            'BF_GHOST_DEBUG',
            'Make GHOST print events and info to stdout. (very verbose)',
            False)),
        (BoolVariable('WITH_BF_RAYOPTIMIZATION',
                      'Enable raytracer SSE/SIMD optimization.', False)),
        ('BF_RAYOPTIMIZATION_SSE_FLAGS', 'SSE flags', ''),
        (BoolVariable(
            'WITH_BF_CXX_GUARDEDALLOC',
            'Enable GuardedAlloc for C++ memory allocation tracking.', False)),
        ('BUILDBOT_BRANCH', 'Buildbot branch name', ''),
        (BoolVariable('WITH_BF_CYCLES', 'Build with the Cycles engine', True)),
        (BoolVariable('WITH_BF_CYCLES_CUDA_BINARIES',
                      'Build with precompiled CUDA binaries', False)),
        (BoolVariable(
            'WITH_BF_CYCLES_CUDA_THREADED_COMPILE',
            'Build several render kernels at once (using BF_NUMJOBS)', False)),
        ('BF_CYCLES_CUDA_NVCC', 'CUDA nvcc compiler path', ''),
        ('BF_CYCLES_CUDA_BINARIES_ARCH',
         'CUDA architectures to compile binaries for', []),
        (BoolVariable('WITH_BF_OIIO', 'Build with OpenImageIO', False)),
        (BoolVariable('WITH_BF_STATICOIIO', 'Staticly link to OpenImageIO',
                      False)),
        ('BF_OIIO', 'OIIO root path', ''),
        ('BF_OIIO_INC', 'OIIO include path', ''),
        ('BF_OIIO_LIB', 'OIIO library', ''),
        ('BF_OIIO_LIBPATH', 'OIIO library path', ''),
        ('BF_OIIO_LIB_STATIC', 'OIIO static library', ''),
        (BoolVariable('WITH_BF_OCIO', 'Build with OpenColorIO', False)),
        (BoolVariable('WITH_BF_STATICOCIO', 'Staticly link to OpenColorIO',
                      False)),
        ('BF_OCIO', 'OCIO root path', ''),
        ('BF_OCIO_INC', 'OCIO include path', ''),
        ('BF_OCIO_LIB', 'OCIO library', ''),
        ('BF_OCIO_LIBPATH', 'OCIO library path', ''),
        ('BF_OCIO_LIB_STATIC', 'OCIO static library', ''),
        (BoolVariable('WITH_BF_BOOST', 'Build with Boost', False)),
        (BoolVariable('WITH_BF_STATICBOOST', 'Staticly link to boost', False)),
        ('BF_BOOST', 'Boost root path', ''),
        ('BF_BOOST_INC', 'Boost include path', ''),
        ('BF_BOOST_LIB', 'Boost library', ''),
        ('BF_BOOST_LIB_INTERNATIONAL', 'Boost library', ''),
        ('BF_BOOST_LIBPATH', 'Boost library path', ''),
        ('BF_BOOST_LIB_STATIC', 'Boost static library', ''),
        (BoolVariable(
            'WITH_GHOST_XDND',
            'Build with drag-n-drop support on Linux platforms using XDND protocol',
            True)),
        (BoolVariable('WITH_BF_CYCLES_OSL', 'Build with OSL sypport in Cycles',
                      False)),
        (BoolVariable('WITH_BF_STATICOSL', 'Staticly link to OSL', False)),
        ('BF_OSL', 'OSL root path', ''),
        ('BF_OSL_INC', 'OSL include path', ''),
        ('BF_OSL_LIB', 'OSL library', ''),
        ('BF_OSL_LIBPATH', 'OSL library path', ''),
        ('BF_OSL_LIB_STATIC', 'OSL static library', ''),
        ('BF_OSL_COMPILER', 'OSL compiler', ''),
        (BoolVariable('WITH_BF_LLVM',
                      'Build with LLVM sypport (required for OSL)', False)),
        (BoolVariable('WITH_BF_STATICLLVM', 'Staticly link to LLVM', False)),
        ('BF_LLVM', 'LLVM root path', ''),
        ('BF_LLVM_LIB', 'LLVM library', ''),
        ('BF_LLVM_LIBPATH', 'LLVM library path', ''),
        ('BF_LLVM_LIB_STATIC', 'LLVM static library', ''),
        ('BF_PROGRAM_LINKFLAGS',
         'Link flags applied only to final binaries (blender and blenderplayer, not makesrna/makesdna)',
         ''))  # end of opts.AddOptions()

    return localopts
예제 #2
0
def read_opts(env, cfg, args):
    localopts = Variables.Variables(cfg, args)
    localopts.AddVariables(
        ('LCGDIR', 'location of cvs lib dir'),
        (BoolVariable('WITH_BF_PYTHON', 'Compile with python', True)),
        (BoolVariable('WITH_BF_PYTHON_SAFETY', 'Internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency)', False)),
        ('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_DLL', 'Python dll - used on Windows only', ''),
        ('BF_PYTHON_LIB_STATIC', 'Python static libraries', ''),
        ('BF_PYTHON_LIBPATH', 'Library path', ''),
        ('BF_PYTHON_LINKFLAGS', 'Python link flags', ''),
        (BoolVariable('WITH_BF_STATICPYTHON', 'Staticly link to python', False)),
        (BoolVariable('WITH_OSX_STATICPYTHON', 'Staticly link to python', True)),
        ('BF_PYTHON_ABI_FLAGS', 'Python ABI flags (suffix in library version: m, mu, etc)', ''),

        (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', ''),
        ('BF_OPENAL_LIB', 'Path to OpenAL library', ''),
        ('BF_OPENAL_LIB_STATIC', 'Path to OpenAL static library', ''),
        ('BF_OPENAL_LIBPATH', 'Path to OpenAL library', ''),
        (BoolVariable('WITH_BF_STATICOPENAL', 'Staticly link to openal', False)),

        (BoolVariable('WITH_BF_SDL', 'Use SDL if true', False)),
        ('BF_SDL', 'SDL base path', ''),
        ('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', ''),
        ('BF_LIBSAMPLERATE_LIB_STATIC', 'Path to libsamplerate static library', ''),
        (BoolVariable('WITH_BF_STATICLIBSAMPLERATE', 'Staticly link to libsamplerate', False)),

        (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_LIB_STATIC', 'Path to sndfile static library', ''),
        ('BF_SNDFILE_LIBPATH', 'sndfile library path', ''),
        (BoolVariable('WITH_BF_STATICSNDFILE', 'Staticly link to sndfile', False)),

        ('BF_PTHREADS', 'Pthreads base path', ''),
        ('BF_PTHREADS_INC', 'Pthreads include path', ''),
        ('BF_PTHREADS_LIB', 'Pthreads library', ''),
        ('BF_PTHREADS_LIBPATH', 'Pthreads library path', ''),

        (BoolVariable('WITH_BF_OPENEXR', 'Use OPENEXR if true', True)),
        (BoolVariable('WITH_BF_STATICOPENEXR', 'Staticly link to OpenEXR', False)),
        ('BF_OPENEXR', 'OPENEXR base path', ''),
        ('BF_OPENEXR_INC', 'OPENEXR include path', ''),
        ('BF_OPENEXR_LIB', 'OPENEXR library', ''),
        ('BF_OPENEXR_LIBPATH', 'OPENEXR library path', ''),
        ('BF_OPENEXR_LIB_STATIC', 'OPENEXR static library', ''),

        (BoolVariable('WITH_BF_DDS', 'Support DDS image format if true', True)),

        (BoolVariable('WITH_BF_CINEON', 'Support CINEON and DPX image formats if true', True)),

        (BoolVariable('WITH_BF_HDR', 'Support HDR image formats if true', True)),

        (BoolVariable('WITH_BF_FFMPEG', 'Use FFMPEG if true', False)),
        ('BF_FFMPEG', 'FFMPEG base path', ''),
        ('BF_FFMPEG_LIB', 'FFMPEG library', ''),
        ('BF_FFMPEG_DLL', 'FFMPEG dll libraries to be installed', ''),
        ('BF_FFMPEG_EXTRA', 'FFMPEG flags that must be preserved', ''),

        ('BF_FFMPEG_INC', 'FFMPEG includes', ''),
        ('BF_FFMPEG_LIBPATH', 'FFMPEG library path', ''),
        (BoolVariable('WITH_BF_STATICFFMPEG', 'Use static FFMPEG if true', False)),
        ('BF_FFMPEG_LIB_STATIC', 'Static FFMPEG libraries', ''),
        
        (BoolVariable('WITH_BF_OGG', 'Use OGG, THEORA, VORBIS in FFMPEG if true',
                    False)),
        ('BF_OGG', 'OGG base path', ''),
        ('BF_OGG_LIB', 'OGG library', ''),

        (BoolVariable('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', ''),

        (BoolVariable('WITH_BF_OPENJPEG', 'Use OPENJPEG if true', False)),
        ('BF_OPENJPEG', 'OPENJPEG base path', ''),
        ('BF_OPENJPEG_INC', 'OPENJPEG include path', ''),
        ('BF_OPENJPEG_LIB', 'OPENJPEG library', ''),
        ('BF_OPENJPEG_LIBPATH', 'OPENJPEG library path', ''),

        (BoolVariable('WITH_BF_REDCODE', 'Use REDCODE if true', False)),
        ('BF_REDCODE', 'REDCODE base path', ''),
        ('BF_REDCODE_INC', 'REDCODE include path', ''),
        ('BF_REDCODE_LIB', 'REDCODE library', ''),
        ('BF_REDCODE_LIBPATH', 'REDCODE library path', ''),

        (BoolVariable('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', ''),

        (BoolVariable('WITH_BF_TIFF', 'Use TIFF if true', True)),
        (BoolVariable('WITH_BF_STATICTIFF', 'Staticly link to TIFF', False)),
        ('BF_TIFF', 'TIFF base path', ''),
        ('BF_TIFF_INC', 'TIFF include path', ''),
        ('BF_TIFF_LIB', 'TIFF library', ''),
        ('BF_TIFF_LIBPATH', 'TIFF library path', ''),
        ('BF_TIFF_LIB_STATIC', 'TIFF static library', ''),

        (BoolVariable('WITH_BF_ZLIB', 'Use ZLib if true', True)),
        (BoolVariable('WITH_BF_STATICZLIB', 'Staticly link to ZLib', False)),
        ('BF_ZLIB', 'ZLib base path', ''),
        ('BF_ZLIB_INC', 'ZLib include path', ''),
        ('BF_ZLIB_LIB', 'ZLib library', ''),
        ('BF_ZLIB_LIBPATH', 'ZLib library path', ''),
        ('BF_ZLIB_LIB_STATIC', 'ZLib static library', ''),

        (BoolVariable('WITH_BF_INTERNATIONAL', 'Use Gettext if true', True)),

        ('BF_GETTEXT', 'gettext base path', ''),
        ('BF_GETTEXT_INC', 'gettext include path', ''),
        ('BF_GETTEXT_LIB', 'gettext library', ''),
        (BoolVariable('WITH_BF_GETTEXT_STATIC', 'Use static gettext library if true', False)),
        ('BF_GETTEXT_LIB_STATIC', 'static gettext library', ''),
        ('BF_GETTEXT_LIBPATH', 'gettext library path', ''),
        
        (BoolVariable('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', ''),
        
        (BoolVariable('WITH_BF_GAMEENGINE', 'Build with gameengine' , False)),

        (BoolVariable('WITH_BF_BULLET', 'Use Bullet if true', True)),
        (BoolVariable('WITH_BF_ELTOPO', 'Use Eltopo collision library if true', False)),
        
        ('BF_BULLET', 'Bullet base dir', ''),
        ('BF_BULLET_INC', 'Bullet include path', ''),
        ('BF_BULLET_LIB', 'Bullet library', ''),
        
        ('BF_WINTAB', 'WinTab base dir', ''),
        ('BF_WINTAB_INC', 'WinTab include dir', ''),
        ('BF_CXX', 'c++ base path for libstdc++, only used when static linking', ''),
        (BoolVariable('WITH_BF_STATICCXX', 'static link to stdc++', False)),
        ('BF_CXX_LIB_STATIC', 'static library path for stdc++', ''),

        (BoolVariable('WITH_BF_FREETYPE', 'Use FreeType2 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', ''),
        (BoolVariable('WITH_BF_FREETYPE_STATIC', 'Use Static Freetype if true', False)),
        ('BF_FREETYPE_LIB_STATIC', 'Static Freetype library', ''),

        (BoolVariable('WITH_BF_OPENMP', 'Use OpenMP if true', False)),
        ('BF_OPENMP', 'Base path to OpenMP (used when cross-compiling with older versions of WinGW)', ''),
        ('BF_OPENMP_INC', 'Path to OpenMP includes (used when cross-compiling with older versions of WinGW)', ''),
        ('BF_OPENMP_LIBPATH', 'Path to OpenMP libraries (used when cross-compiling with older versions of WinGW)', ''),
        (BoolVariable('WITH_GHOST_COCOA', 'Use Cocoa-framework if true', False)),
        (BoolVariable('WITH_GHOST_SDL', 'Enable building blender against SDL for windowing rather then the native APIs', False)),
        (BoolVariable('USE_QTKIT', 'Use QTKIT if true', False)),

        (BoolVariable('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', ''),
        
        (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_LIB_STATIC', 'FFTW3 static libraries', ''),
        ('BF_FFTW3_LIBPATH', 'FFTW3 library path', ''),
        (BoolVariable('WITH_BF_STATICFFTW3', 'Staticly link to FFTW3', False)),

        (BoolVariable('WITH_BF_STATICOPENGL', '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', ''),

        (BoolVariable('WITH_BF_COLLADA', 'Build COLLADA import/export module if true', False)),
        ('BF_COLLADA', 'COLLADA base path', ''),
        ('BF_COLLADA_INC', 'COLLADA include path', ''),
        ('BF_COLLADA_LIB', 'COLLADA library', ''),
        ('BF_OPENCOLLADA', 'OpenCollada base path', ''),
        ('BF_OPENCOLLADA_INC', 'OpenCollada base include path', ''),
        ('BF_OPENCOLLADA_LIB', 'OpenCollada library', ''),
        ('BF_OPENCOLLADA_LIBPATH', 'OpenCollada library path', ''),
        ('BF_PCRE', 'PCRE base path', ''),
        ('BF_PCRE_LIB', 'PCRE library', ''),
        ('BF_PCRE_LIBPATH', 'PCRE library path', ''),
        ('BF_EXPAT', 'Expat base path', ''),
        ('BF_EXPAT_LIB', 'Expat library', ''),
        ('BF_EXPAT_LIBPATH', 'Expat library path', ''),
        
        (BoolVariable('WITH_BF_JEMALLOC', 'Use jemalloc if true', False)),
        (BoolVariable('WITH_BF_STATICJEMALLOC', 'Staticly link to jemalloc', False)),
        ('BF_JEMALLOC', 'jemalloc base path', ''),
        ('BF_JEMALLOC_INC', 'jemalloc include path', ''),
        ('BF_JEMALLOC_LIB', 'jemalloc library', ''),
        ('BF_JEMALLOC_LIBPATH', 'jemalloc library path', ''),
        ('BF_JEMALLOC_LIB_STATIC', 'jemalloc static library', ''),

        (BoolVariable('WITH_BF_PLAYER', 'Build blenderplayer if true', False)),
        (BoolVariable('WITH_BF_NOBLENDER', 'Do not build blender if true', False)),

        (BoolVariable('WITH_BF_3DMOUSE', 'Build blender with support of 3D mouses', False)),
        (BoolVariable('WITH_BF_STATIC3DMOUSE', 'Staticly link to 3d mouse library', False)),
        ('BF_3DMOUSE', '3d mouse library base path', ''),
        ('BF_3DMOUSE_INC', '3d mouse library include path', ''),
        ('BF_3DMOUSE_LIB', '3d mouse library', ''),
        ('BF_3DMOUSE_LIBPATH', '3d mouse library path', ''),
        ('BF_3DMOUSE_LIB_STATIC', '3d mouse static library', ''),

        ('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', []),
        ('REL_CXXFLAGS', 'C++ only release flags', []),

        ('C_WARN', 'C warning flags', []),
        ('CC_WARN', 'Generic C and C++ warning flags', []),
        ('CXX_WARN', 'C++ only warning flags', []),

        ('LLIBS', 'Platform libs', []),
        ('PLATFORM_LINKFLAGS', 'Platform linkflags', []),
        ('MACOSX_ARCHITECTURE', 'python_arch.zip select', ''),
        ('MACOSX_SDK_CHECK', 'detect available OSX sdk`s', ''),
        ('XCODE_CUR_VER', 'detect XCode version', ''),

        (BoolVariable('BF_PROFILE', 'Add profiling information if true', False)),
        ('BF_PROFILE_CFLAGS', 'C only profiling flags', []),
        ('BF_PROFILE_CCFLAGS', 'C and C++ profiling flags', []),
        ('BF_PROFILE_CXXFLAGS', 'C++ only profiling flags', []),
        ('BF_PROFILE_LINKFLAGS', 'Profile linkflags', []),

        (BoolVariable('BF_DEBUG', 'Add debug flags if true', False)),
        ('BF_DEBUG_CFLAGS', 'C only debug flags', []),
        ('BF_DEBUG_CCFLAGS', 'C and C++ debug flags', []),
        ('BF_DEBUG_CXXFLAGS', 'C++ only debug flags', []),

        (BoolVariable('BF_BSC', 'Create .bsc files (msvc only)', False)),

        ('BF_BUILDDIR', 'Build dir', ''),
        ('BF_INSTALLDIR', 'Installation dir', ''),

        ('CC', 'C compiler to use', env['CC']),
        ('CXX', 'C++ compiler to use', env['CXX']),

        (BoolVariable('BF_BUILDINFO', 'Buildtime in splash if true', True)),

        (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('WITHOUT_BF_OVERWRITE_INSTALL', 'dont remove existing files before breating the new install directory (set to False when making packages for others)', False)),
        (BoolVariable('BF_FANCY', 'Enable fancy output if true', True)),
        (BoolVariable('BF_QUIET', 'Enable silent output if true', True)),
        (BoolVariable('BF_LINE_OVERWRITE', 'Enable overwriting of compile line in BF_QUIET mode if true', False)),
        (BoolVariable('WITH_BF_BINRELOC', 'Enable relocatable binary (linux only)', False)),
        
        (BoolVariable('WITH_BF_LZO', 'Enable fast LZO pointcache compression', True)),
        (BoolVariable('WITH_BF_LZMA', 'Enable best LZMA pointcache compression', True)),
        
        ('BF_X264_CONFIG', 'configuration flags for x264', ''),
        ('BF_XVIDCORE_CONFIG', 'configuration flags for xvidcore', ''),
#        (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_MSVS', 'Generate MSVS project files and solution', False),

        ('BF_VERSION', 'The root path for Unix (non-apple)', '2.5'),

        (BoolVariable('BF_UNIT_TEST', 'Build with unit test support.', False)),
        
        (BoolVariable('BF_GHOST_DEBUG', 'Make GHOST print events and info to stdout. (very verbose)', False)),
        
        (BoolVariable('WITH_BF_RAYOPTIMIZATION', 'Enable raytracer SSE/SIMD optimization.', False)),
        ('BF_RAYOPTIMIZATION_SSE_FLAGS', 'SSE flags', ''),
        (BoolVariable('WITH_BF_CXX_GUARDEDALLOC', 'Enable GuardedAlloc for C++ memory allocation tracking.', False)),

        ('BUILDBOT_BRANCH', 'Buildbot branch name', ''),
    ) # end of opts.AddOptions()

    return localopts