Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2016-01-04 12:20:48 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-01-04 12:20:48 +0300
commit5d99cde8229a481363f1439ea4a4c2af851b1cb1 (patch)
tree76ebd7548ddb8eee0c7039e7f154ac982b57e80f /build_files
parent1eb5e0b6608b2c2bbc9813d9155ea379a5bc8ef4 (diff)
Remove SCons building system
While SCons building system was serving us really good for ages it's no longer having much attention by the developers and started to become quite a difficult task to maintain. What's even worse -- there started to be quite serious divergence between SCons and CMake which was only accumulating over the releases now. The fact that none of the active developers are really using SCons and that our main studio is also using CMake spotting bugs in the SCons builds became quite a difficult task and we aren't always spotting them in time. Meanwhile CMake became really mature building system which is available on every platform we support and arguably it's also easier and more robust to use. This commit includes: - Removal of actual SCons building system - Removal of SCons git submodule - Removal of documentation which is stored in the sources and covers SCons - Tweaks to the buildbot master to stop using SCons submodule (this change requires deploying to the server) - Tweaks to the install dependencies script to skip installing or mentioning SCons building system - Tweaks to various helper scripts to avoid mention of SCons folders/files as well Reviewers: mont29, dingto, dfelinto, lukastoenne, lukasstockner97, brecht, Severin, merwin, aligorith, psy-fi, campbellbarton, juicyfruit Reviewed By: campbellbarton, juicyfruit Differential Revision: https://developer.blender.org/D1680
Diffstat (limited to 'build_files')
-rwxr-xr-xbuild_files/build_environment/install_deps.sh94
-rw-r--r--build_files/buildbot/master.cfg6
-rw-r--r--build_files/cmake/macros.cmake2
-rw-r--r--build_files/scons/Modules/FindPython.py50
-rw-r--r--build_files/scons/Modules/FindSharedPtr.py42
-rw-r--r--build_files/scons/Modules/FindUnorderedMap.py38
-rw-r--r--build_files/scons/Modules/__init__.py0
-rw-r--r--build_files/scons/config/darwin-config.py271
-rw-r--r--build_files/scons/config/linux-config.py278
-rw-r--r--build_files/scons/config/win32-mingw-config.py229
-rw-r--r--build_files/scons/config/win32-vc-config.py264
-rw-r--r--build_files/scons/config/win64-mingw-config.py224
-rw-r--r--build_files/scons/config/win64-vc-config.py264
-rw-r--r--build_files/scons/tools/Blender.py1146
-rw-r--r--build_files/scons/tools/__init__.py0
-rw-r--r--build_files/scons/tools/bcolors.py16
-rw-r--r--build_files/scons/tools/btools.py918
-rw-r--r--build_files/scons/tools/crossmingw.py184
-rw-r--r--build_files/scons/tools/mstoolkit.py353
19 files changed, 6 insertions, 4373 deletions
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh
index e98a84f8888..b0c99f95082 100755
--- a/build_files/build_environment/install_deps.sh
+++ b/build_files/build_environment/install_deps.sh
@@ -674,7 +674,7 @@ DEPS_COMMON_INFO="\"COMMON DEPENDENCIES:
Those libraries should be available as packages in all recent distributions (optional ones are [between brackets]):
- * Basics of dev environment (cmake or scons, gcc, svn , git, ...).
+ * Basics of dev environment (cmake, gcc, svn , git, ...).
* libjpeg, libpng, libtiff, [libopenjpeg], [libopenal].
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
* libsqlite3, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp.
@@ -2126,7 +2126,7 @@ install_DEB() {
OGG_DEV="libogg-dev"
THEORA_DEV="libtheora-dev"
- _packages="gawk cmake cmake-curses-gui scons build-essential libjpeg-dev libpng-dev \
+ _packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev \
libfreetype6-dev libx11-dev \
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV \
@@ -2685,7 +2685,7 @@ install_RPM() {
OGG_DEV="libogg-devel"
THEORA_DEV="libtheora-devel"
- _packages="gcc gcc-c++ git make cmake scons libtiff-devel libjpeg-devel\
+ _packages="gcc gcc-c++ git make cmake libtiff-devel libjpeg-devel\
libpng-devel libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch \
@@ -3121,7 +3121,7 @@ install_ARCH() {
OGG_DEV="libogg"
THEORA_DEV="libtheora"
- _packages="base-devel git scons cmake \
+ _packages="base-devel git cmake \
libxi libxcursor libxrandr libxinerama glew libpng libtiff wget openal \
$OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl fftw \
libxml2 yaml-cpp tinyxml"
@@ -3782,92 +3782,6 @@ print_info() {
PRINT ""
PRINT "Or even simpler, just run (in your blender-source dir):"
PRINT " make -j$THREADS BUILD_CMAKE_ARGS=\"$_buildargs\""
-
- PRINT ""
- PRINT "If you're using SCons add this to your user-config:"
-
- PRINT "WITH_BF_SNDFILE = True"
-
- PRINT "BF_PYTHON_VERSION = '$PYTHON_VERSION_MIN'"
- if [ -d $INST/python-$PYTHON_VERSION_MIN ]; then
- PRINT "BF_PYTHON = '$INST/python-$PYTHON_VERSION_MIN'"
- PRINT "BF_PYTHON_ABI_FLAGS = 'm'"
- fi
-
- if [ "$OCIO_SKIP" = false ]; then
- PRINT "WITH_BF_OCIO = True"
- if [ -d $INST/ocio ]; then
- PRINT "BF_OCIO = '$INST/ocio'"
- fi
- fi
-
- if [ -d $INST/openexr ]; then
- PRINT "BF_OPENEXR = '$INST/openexr'"
-
- _ilm_libs_ext=""
- #~ version_ge $OPENEXR_VERSION "2.1.0"
- #~ if [ $? -eq 0 ]; then
- #~ _ilm_libs_ext=`echo $OPENEXR_VERSION | sed -r 's/([0-9]+)\.([0-9]+).*/-\1_\2/'`
- #~ fi
- PRINT "BF_OPENEXR_LIB = 'Half IlmImf$_ilm_libs_ext Iex$_ilm_libs_ext Imath$_ilm_libs_ext '"
- # BF_OPENEXR_LIB does not work, things like '-lIlmImf-2_1' do not suit ld.
- # For now, hack around!!!
- PRINT "BF_OPENEXR_LIB_STATIC = '\${BF_OPENEXR}/lib/libHalf.so \${BF_OPENEXR}/lib/libIlmImf$_ilm_libs_ext.so \${BF_OPENEXR}/lib/libIex$_ilm_libs_ext.so \${BF_OPENEXR}/lib/libImath$_ilm_libs_ext.so \${BF_OPENEXR}/lib/libIlmThread$_ilm_libs_ext.so'"
- PRINT "WITH_BF_STATICOPENEXR = True"
- fi
-
- if [ "$OIIO_SKIP" = false ]; then
- PRINT "WITH_BF_OIIO = True"
- if [ -d $INST/oiio ]; then
- PRINT "BF_OIIO = '$INST/oiio'"
- fi
- fi
-
- PRINT "WITH_BF_CYCLES = True"
-
- if [ -d $INST/osl ]; then
- PRINT "BF_OSL = '$INST/osl'"
- fi
-
- if [ "$OSD_SKIP" = false ]; then
- PRINT "WITH_BF_OPENSUBDIV = True"
- if [ -d $INST/osd ]; then
- PRINT "BF_OPENSUBDIV = '$INST/osd'"
- fi
- fi
-
- if [ "$BOOST_SKIP" = false ]; then
- PRINT "WITH_BF_BOOST = True"
- if [ -d $INST/boost ]; then
- PRINT "BF_BOOST = '$INST/boost'"
- fi
- fi
-
- if [ "$WITH_OPENCOLLADA" = true ]; then
- PRINT "WITH_BF_COLLADA = True"
- if [ -d $INST/opencollada ]; then
- PRINT "BF_OPENCOLLADA = '$INST/opencollada'"
- fi
- fi
-
- if [ "$FFMPEG_SKIP" = false ]; then
- _ffmpeg_list_sep=" "
- if [ -d $INST/ffmpeg ]; then
- PRINT "BF_FFMPEG = '$INST/ffmpeg'"
- fi
- PRINT "BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice `print_info_ffmpeglink`'"
- fi
-
- if [ "$WITH_ALL" = false ]; then
- PRINT "WITH_BF_3DMOUSE = False"
- # No libspacenav in official arch repos...
- elif [ "$DISTRO" = "ARCH" ]; then
- PRINT "WITH_BF_3DMOUSE = False"
- fi
-
- if [ "$WITH_OPENCOLLADA" = true ]; then
- PRINT "LLIBS = [\""xml2"\", \""expat"\"] + LLIBS"
- fi
}
#### "Main" ####
diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg
index 1f82f24a8e2..26b5716a185 100644
--- a/build_files/buildbot/master.cfg
+++ b/build_files/buildbot/master.cfg
@@ -94,7 +94,6 @@ all_repositories = {
r'git://git.blender.org/blender-translations.git': 'blender-translations',
r'git://git.blender.org/blender-addons.git': 'blender-addons',
r'git://git.blender.org/blender-addons-contrib.git': 'blender-addons-contrib',
- r'git://git.blender.org/scons.git': 'scons',
r'https://svn.blender.org/svnroot/bf-blender/': 'lib svn',
}
@@ -129,7 +128,6 @@ def schedule_force_build(name):
forcesched.CodebaseParameter(hide=True, codebase="blender-translations"),
forcesched.CodebaseParameter(hide=True, codebase="blender-addons"),
forcesched.CodebaseParameter(hide=True, codebase="blender-addons-contrib"),
- forcesched.CodebaseParameter(hide=True, codebase="scons"),
forcesched.CodebaseParameter(hide=True, codebase="lib svn")],
properties=[]))
@@ -145,7 +143,6 @@ def schedule_build(name, hour, minute=0):
"blender-translations": {"repository": "", "branch": "master"},
"blender-addons": {"repository": "", "branch": "master"},
"blender-addons-contrib": {"repository": "", "branch": "master"},
- "scons": {"repository": "", "branch": "master"},
"lib svn": {"repository": "", "branch": "trunk"}},
branch=current_branch,
builderNames=[name],
@@ -267,8 +264,7 @@ def generic_builder(id, libdir='', branch='', rsync=False):
for submodule in ('blender-translations',
'blender-addons',
- 'blender-addons-contrib',
- 'scons'):
+ 'blender-addons-contrib'):
f.addStep(git_submodule_step(submodule))
f.addStep(git_step(branch))
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 4ba15c72677..12b7e667fb1 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -1209,7 +1209,7 @@ macro(blender_project_hack_post)
# MINGW workaround for -ladvapi32 being included which surprisingly causes
# string formatting of floats, eg: printf("%.*f", 3, value). to crash blender
# with a meaningless stack trace. by overriding this flag we ensure we only
- # have libs we define and that cmake & scons builds match.
+ # have libs we define.
set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
mark_as_advanced(
diff --git a/build_files/scons/Modules/FindPython.py b/build_files/scons/Modules/FindPython.py
deleted file mode 100644
index 9f652b73585..00000000000
--- a/build_files/scons/Modules/FindPython.py
+++ /dev/null
@@ -1,50 +0,0 @@
-import os
-import platform
-
-def FindPython():
- all_abi_flags = ['m', 'mu', '']
-
- python = "/usr"
- abi_flags = "m" # Most common for linux distros
- version = "3.5"
-
- _arch = platform.uname()[4] + "-linux-gnu"
-
- # Determine ABI flags used on this system
- include = os.path.join(python, "include")
- for cur_flags in all_abi_flags:
- inc = os.path.join(include, "python" + version + cur_flags, "Python.h")
- if os.path.exists(inc):
- abi_flags = cur_flags
- break
-
- # Find config.h. In some distros, such as ubuntu 12.10 they are not in standard include dir.
- incconf = os.path.join(include, _arch, "python" + version + cur_flags)
- if not os.path.exists(os.path.join(incconf, "pyconfig.h")):
- incconf = ''
-
- # Determine whether python is in /usr/lib or /usr/lib64
- lib32 = os.path.join(python, "lib", "python" + version, "sysconfig.py")
- lib64 = os.path.join(python, "lib64", "python" + version, "sysconfig.py")
- if os.path.exists(lib32):
- libpath = "${BF_PYTHON}/lib"
- elif os.path.exists(lib64):
- libpath = "${BF_PYTHON}/lib64"
- else:
- # roll back to default value
- libpath = "${BF_PYTHON}/lib"
-
- libpath_arch = libpath
- _libpath_arch = os.path.join(python, "lib", _arch) # No lib64 stuff with recent deb-like distro afaik...
- _libs = ["libpython" + version + abi_flags + ext for ext in (".so", ".a")]
- for l in _libs:
- if not os.path.exists(os.path.join(libpath, l)) and os.path.exists(os.path.join(_libpath_arch, l)):
- libpath_arch = os.path.join(libpath, _arch)
- break
-
- return {"PYTHON": python,
- "VERSION": version,
- "LIBPATH": libpath,
- "LIBPATH_ARCH": libpath_arch,
- "ABI_FLAGS": abi_flags,
- "CONFIG": incconf}
diff --git a/build_files/scons/Modules/FindSharedPtr.py b/build_files/scons/Modules/FindSharedPtr.py
deleted file mode 100644
index ba53f55d563..00000000000
--- a/build_files/scons/Modules/FindSharedPtr.py
+++ /dev/null
@@ -1,42 +0,0 @@
-def FindSharedPtr(conf):
- """
- Detect shared_ptr availability
- """
-
- found = False
- namespace = None
- header = None
-
- if conf.CheckCXXHeader("memory"):
- # Finding the memory header doesn't mean that shared_ptr is in std
- # namespace.
- #
- # In particular, MSVC 2008 has shared_ptr declared in std::tr1. In
- # order to support this, we do an extra check to see which namespace
- # should be used.
-
- if conf.CheckType('std::shared_ptr<int>', language = 'C++', includes="#include <memory>"):
- print("-- Found shared_ptr in std namespace using <memory> header.")
- namespace = 'std'
- header = 'memory'
- elif conf.CheckType('std::tr1::shared_ptr<int>', language = 'C++', includes="#include <memory>"):
- print("-- Found shared_ptr in std::tr1 namespace using <memory> header..")
- namespace = 'std::tr1'
- header = 'memory'
-
- if not namespace and conf.CheckCXXHeader("tr1/memory"):
- # Further, gcc defines shared_ptr in std::tr1 namespace and
- # <tr1/memory> is to be included for this. And what makes things
- # even more tricky is that gcc does have <memory> header, so
- # all the checks above wouldn't find shared_ptr.
- if conf.CheckType('std::tr1::shared_ptr<int>', language = 'C++', includes="#include <tr1/memory>"):
- print("-- Found shared_ptr in std::tr1 namespace using <tr1/memory> header..")
- namespace = 'std::tr1'
- header = 'tr1/memory'
-
- if not namespace:
- print("-- Unable to find shared_ptrred_map>.")
-
- conf.env['WITH_SHARED_PTR_SUPPORT'] = namespace and header
- conf.env['SHARED_PTR_NAMESPACE'] = namespace
- conf.env['SHARED_PTR_HEADER'] = header
diff --git a/build_files/scons/Modules/FindUnorderedMap.py b/build_files/scons/Modules/FindUnorderedMap.py
deleted file mode 100644
index 34073c1b0b9..00000000000
--- a/build_files/scons/Modules/FindUnorderedMap.py
+++ /dev/null
@@ -1,38 +0,0 @@
-def FindUnorderedMap(conf):
- """
- Detect unordered_map availability
- """
-
- namespace = None
- header = None
-
- if conf.CheckCXXHeader("unordered_map"):
- # Even so we've found unordered_map header file it doesn't
- # mean unordered_map and unordered_set will be declared in
- # std namespace.
- #
- # Namely, MSVC 2008 have unordered_map header which declares
- # unordered_map class in std::tr1 namespace. In order to support
- # this, we do extra check to see which exactly namespace is
- # to be used.
-
- if conf.CheckType('std::unordered_map<int, int>', language = 'CXX', includes="#include <unordered_map>"):
- print("-- Found unordered_map/set in std namespace.")
- namespace = 'std'
- header = 'unordered_map'
- elif conf.CheckType('std::tr1::unordered_map<int, int>', language = 'CXX', includes="#include <unordered_map>"):
- print("-- Found unordered_map/set in std::tr1 namespace.")
- namespace = 'std::tr1'
- header = 'unordered_map'
- else:
- print("-- Found <unordered_map> but can not find neither std::unordered_map nor std::tr1::unordered_map.")
- elif conf.CheckCXXHeader("tr1/unordered_map"):
- print("-- Found unordered_map/set in std::tr1 namespace.")
- namespace = 'std::tr1'
- header = 'tr1/unordered_map'
- else:
- print("-- Unable to find <unordered_map> or <tr1/unordered_map>. ")
-
- conf.env['WITH_UNORDERED_MAP_SUPPORT'] = namespace and header
- conf.env['UNORDERED_MAP_NAMESPACE'] = namespace
- conf.env['UNORDERED_MAP_HEADER'] = header
diff --git a/build_files/scons/Modules/__init__.py b/build_files/scons/Modules/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/build_files/scons/Modules/__init__.py
+++ /dev/null
diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py
deleted file mode 100644
index 1ded9db0ec1..00000000000
--- a/build_files/scons/config/darwin-config.py
+++ /dev/null
@@ -1,271 +0,0 @@
-import commands
-
-#############################################################################
-################### Compiler & architecture settings ##################
-#############################################################################
-
-MACOSX_ARCHITECTURE = 'x86_64' # valid archs: ppc, i386, ppc64, x86_64
-MACOSX_SDK='' # set an sdk name like '10.7' or leave empty for automatic choosing highest available
-MACOSX_DEPLOYMENT_TARGET = '10.6'
-
-# gcc always defaults to the system standard compiler linked by a shim or symlink
-CC = 'gcc'
-CXX = 'g++'
-LCGDIR = '#../lib/darwin-9.x.universal'
-LIBDIR = '${LCGDIR}'
-
-#############################################################################
-################### Dependency settings ##################
-#############################################################################
-
-# enable ffmpeg support
-WITH_BF_FFMPEG = True
-BF_FFMPEG = LIBDIR + '/ffmpeg'
-BF_FFMPEG_INC = "${BF_FFMPEG}/include"
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avcodec avdevice avformat avutil mp3lame swscale x264 xvidcore theora theoradec theoraenc vorbis vorbisenc vorbisfile ogg bz2'
-#bz2 is a standard osx dynlib
-
-BF_PYTHON_VERSION = '3.5'
-WITH_OSX_STATICPYTHON = True
-
-# python 3.5 uses precompiled libraries in bf svn /lib by default
-BF_PYTHON = LIBDIR + '/python'
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}m'
-# BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}m'
-BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib/python${BF_PYTHON_VERSION}'
-# BF_PYTHON_LINKFLAGS = ['-u', '_PyMac_Error', '-framework', 'System']
-
-WITH_BF_OPENAL = True
-BF_OPENAL = LIBDIR + '/openal'
-
-WITH_BF_STATICOPENAL = False
-BF_OPENAL_INC = '${BF_OPENAL}/include' # only headers from libdir needed for proper use of framework !!!!
-#BF_OPENAL_LIB = 'openal'
-#BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
-# Warning, this static lib configuration is untested! users of this OS please confirm.
-#BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-
-# Warning, this static lib configuration is untested! users of this OS please confirm.
-BF_CXX = '/usr'
-WITH_BF_STATICCXX = False
-BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
-
-WITH_BF_AUDASPACE = True
-
-# we use simply jack framework
-WITH_BF_JACK = True
-BF_JACK = '/Library/Frameworks/Jackmp.framework'
-BF_JACK_INC = '${BF_JACK}/headers'
-#BF_JACK_LIB = 'jack' # not used due framework
-BF_JACK_LIBPATH = '${BF_JACK}'
-
-WITH_BF_SNDFILE = True
-BF_SNDFILE = LIBDIR + '/sndfile'
-BF_SNDFILE_INC = '${BF_SNDFILE}/include'
-BF_SNDFILE_LIB = 'sndfile FLAC ogg vorbis vorbisenc'
-BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib ${BF_FFMPEG}/lib' #ogg libs are stored in ffmpeg dir
-
-WITH_BF_SDL = True
-BF_SDL = LIBDIR + '/sdl' #$(shell sdl-config --prefix)
-BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
-BF_SDL_LIB = 'SDL2' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
-BF_SDL_LIBPATH = '${BF_SDL}/lib'
-
-WITH_BF_OPENEXR = True
-WITH_BF_STATICOPENEXR = False
-BF_OPENEXR = '${LCGDIR}/openexr'
-BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
-BF_OPENEXR_LIB = ' Iex Half IlmImf Imath IlmThread'
-BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-# Warning, this static lib configuration is untested! users of this OS please confirm.
-BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-
-WITH_BF_DDS = True
-
-WITH_BF_JPEG = True
-BF_JPEG = LIBDIR + '/jpeg'
-BF_JPEG_INC = '${BF_JPEG}/include'
-BF_JPEG_LIB = 'jpeg'
-BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-
-WITH_BF_OPENJPEG = True
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_PNG = True
-BF_PNG = LIBDIR + '/png'
-BF_PNG_INC = '${BF_PNG}/include'
-BF_PNG_LIB = 'png'
-BF_PNG_LIBPATH = '${BF_PNG}/lib'
-
-WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/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' # don't use this, it breaks -isysroot ${MACOSX_SDK}
-BF_ZLIB_LIB = 'z'
-
-WITH_BF_INTERNATIONAL = True
-
-WITH_BF_GAMEENGINE = True
-WITH_BF_PLAYER = True
-WITH_BF_OCEANSIM = True
-
-WITH_BF_BULLET = True
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-WITH_BF_FFTW3 = True
-BF_FFTW3 = LIBDIR + '/fftw3'
-BF_FFTW3_INC = '${BF_FFTW3}/include'
-BF_FFTW3_LIB = 'libfftw3'
-BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
-
-BF_FREETYPE = LIBDIR + '/freetype'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
-BF_FREETYPE_LIB = 'freetype'
-BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-
-WITH_BF_QUICKTIME = True
-
-WITH_BF_ICONV = True
-BF_ICONV = '/usr'
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv'
-#BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = True
-BF_OPENGL_LIB = 'GL GLU'
-BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
-BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL']
-
-#OpenCollada flags
-WITH_BF_COLLADA = True
-BF_COLLADA = '#source/blender/collada'
-BF_COLLADA_INC = '${BF_COLLADA}'
-BF_COLLADA_LIB = 'bf_collada'
-BF_OPENCOLLADA = LIBDIR + '/opencollada'
-BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include'
-BF_OPENCOLLADA_LIB = 'OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils OpenCOLLADAStreamWriter MathMLSolver GeneratedSaxParser xml2 buffer ftoa'
-BF_OPENCOLLADA_LIBPATH = LIBDIR + '/opencollada'
-BF_PCRE = LIBDIR + '/opencollada'
-BF_PCRE_LIB = 'pcre'
-BF_PCRE_LIBPATH = '${BF_PCRE}/lib'
-#BF_EXPAT = '/usr'
-#BF_EXPAT_LIB = 'expat'
-#BF_EXPAT_LIBPATH = '/usr/lib'
-
-# Cycles
-WITH_BF_CYCLES = True
-
-#OSL
-
-WITH_BF_CYCLES_OSL = True
-BF_OSL = LIBDIR + '/osl'
-BF_OSL_INC = '${BF_OSL}/include'
-# note oslexec would passed via program linkflags, which is needed to
-# make llvm happy with osl_allocate_closure_component
-#BF_OSL_LIB = 'oslcomp oslquery'
-BF_OSL_LIBPATH = '${BF_OSL}/lib'
-BF_OSL_COMPILER = '${BF_OSL}/bin/oslc'
-
-WITH_BF_LLVM = True
-BF_LLVM = LIBDIR + '/llvm'
-BF_LLVM_LIB = 'LLVMBitReader LLVMJIT LLVMipo LLVMVectorize LLVMBitWriter LLVMX86CodeGen LLVMX86Desc LLVMX86Info LLVMX86AsmPrinter ' + \
- 'LLVMX86Utils LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMInstCombine LLVMTransformUtils LLVMipa LLVMAnalysis LLVMExecutionEngine ' + \
- 'LLVMTarget LLVMMC LLVMCore LLVMSupport LLVMObject'
-BF_LLVM_LIBPATH = '${BF_LLVM}/lib'
-
-WITH_BF_OIIO = True
-BF_OIIO = LIBDIR + '/openimageio'
-BF_OIIO_INC = '${BF_OIIO}/include'
-BF_OIIO_LIB = 'OpenImageIO'
-BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
-
-WITH_BF_OCIO = True
-BF_OCIO = LIBDIR + '/opencolorio'
-BF_OCIO_INC = '${BF_OCIO}/include'
-BF_OCIO_LIB = 'OpenColorIO tinyxml yaml-cpp'
-BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
-
-WITH_BF_BOOST = True
-BF_BOOST = LIBDIR + '/boost'
-BF_BOOST_INC = '${BF_BOOST}/include'
-BF_BOOST_LIB = 'boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt boost_wave-mt'
-BF_BOOST_LIB_INTERNATIONAL = 'boost_locale-mt'
-BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
-
-WITH_BF_CYCLES_CUDA_BINARIES = False
-BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50', 'sm_52']
-
-#Freestyle
-WITH_BF_FREESTYLE = True
-
-#OpenMP ( will be checked for compiler support and turned off eventually )
-WITH_BF_OPENMP = True
-
-WITH_BF_OPENSUBDIV = False
-BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
-BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
-BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
-BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
-
-#Ray trace optimization
-WITH_BF_RAYOPTIMIZATION = True
-BF_RAYOPTIMIZATION_SSE_FLAGS = []
-
-# SpaceNavigator and related 3D mice, driver must be 3DxWare 10 Beta 4 (Mac OS X) or later !
-WITH_BF_3DMOUSE = True
-
-#############################################################################
-################### various compile settings and flags ##################
-#############################################################################
-
-BF_QUIET = '1' # suppress verbose output
-
-CFLAGS = []
-CXXFLAGS = []
-CCFLAGS = ['-pipe','-funsigned-char']
-CPPFLAGS = []
-
-PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Cocoa','-framework','Carbon','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','OpenAL']
-
-LLIBS = ['stdc++']
-
-REL_CFLAGS = []
-REL_CXXFLAGS = []
-REL_CCFLAGS = ['-O2']
-
-CC_WARN = ['-Wall']
-C_WARN = ['-Wno-char-subscripts', '-Wpointer-arith', '-Wcast-align', '-Wvla', '-Wno-unknown-pragmas', '-Wstrict-prototypes']
-CXX_WARN = ['-Wno-invalid-offsetof', '-Wno-sign-compare']
-
-##FIX_STUBS_WARNINGS = -Wno-unused
-
-##LOPTS = --dynamic
-##DYNLDFLAGS = -shared $(LDFLAGS)
-
-BF_PROFILE_CCFLAGS = ['-pg', '-g ']
-BF_PROFILE_LINKFLAGS = ['-pg']
-BF_PROFILE = False
-
-BF_DEBUG = False
-BF_DEBUG_CCFLAGS = ['-g']
-
-#############################################################################
-################### Output directories ##################
-#############################################################################
-
-BF_BUILDDIR='../build/darwin'
-BF_INSTALLDIR='../install/darwin'
diff --git a/build_files/scons/config/linux-config.py b/build_files/scons/config/linux-config.py
deleted file mode 100644
index 1990d6ece0a..00000000000
--- a/build_files/scons/config/linux-config.py
+++ /dev/null
@@ -1,278 +0,0 @@
-from FindPython import FindPython
-
-py = FindPython()
-
-BF_PYTHON_ABI_FLAGS = py['ABI_FLAGS']
-BF_PYTHON = py['PYTHON']
-BF_PYTHON_LIBPATH = py['LIBPATH']
-BF_PYTHON_LIBPATH_ARCH = py['LIBPATH_ARCH']
-BF_PYTHON_CONFIG = py['CONFIG']
-BF_PYTHON_VERSION = py['VERSION']
-WITH_BF_STATICPYTHON = False
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}${BF_PYTHON_ABI_FLAGS} ' + BF_PYTHON_CONFIG
-BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}${BF_PYTHON_ABI_FLAGS}' # BF_PYTHON+'/lib/python'+BF_PYTHON_VERSION+'/config/libpython'+BF_PYTHON_VERSION+'.a'
-BF_PYTHON_LINKFLAGS = ['-Xlinker', '-export-dynamic']
-BF_PYTHON_LIB_STATIC = '${BF_PYTHON_LIBPATH_ARCH}/libpython${BF_PYTHON_VERSION}${BF_PYTHON_ABI_FLAGS}.a'
-
-WITH_BF_OPENAL = True
-WITH_BF_STATICOPENAL = False
-BF_OPENAL = '/usr'
-BF_OPENAL_INC = '${BF_OPENAL}/include'
-BF_OPENAL_LIB = 'openal'
-BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-
-BF_CXX = '/usr'
-WITH_BF_STATICCXX = False
-BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
-
-WITH_BF_AUDASPACE = True
-
-WITH_BF_JACK = False
-BF_JACK = '/usr'
-BF_JACK_INC = '${BF_JACK}/include/jack'
-BF_JACK_LIB = 'jack'
-BF_JACK_LIBPATH = '${BF_JACK}/lib'
-
-WITH_BF_SNDFILE = False
-WITH_BF_STATICSNDFILE = False
-BF_SNDFILE = '/usr'
-BF_SNDFILE_INC = '${BF_SNDFILE}/include/sndfile'
-BF_SNDFILE_LIB = 'sndfile'
-BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
-BF_SNDFILE_LIB_STATIC = '${BF_SNDFILE}/lib/libsndfile.a ${BF_OGG}/lib/libvorbis.a ${BF_OGG}/lib/libFLAC.a ${BF_OGG}/lib/libvorbisenc.a ${BF_OGG}/lib/libogg.a'
-
-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_OPENEXR = True
-WITH_BF_STATICOPENEXR = False
-BF_OPENEXR = '/usr'
-# when compiling with your own openexr lib you might need to set...
-# BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR ${BF_OPENEXR}/include'
-
-BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR'
-BF_OPENEXR_LIB = 'Half IlmImf Iex Imath '
-BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-# BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-
-
-WITH_BF_DDS = True
-
-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_INTERNATIONAL = True
-
-WITH_BF_GAMEENGINE = True
-WITH_BF_PLAYER = True
-WITH_BF_OCEANSIM = True
-
-WITH_BF_BULLET = True
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-WITH_BF_ELTOPO = False
-BF_LAPACK = '/usr'
-BF_LAPACK_LIB = 'lapack3gf blas clapack'
-BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
-
-BF_FREETYPE = '/usr'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
-BF_FREETYPE_LIB = 'freetype'
-#BF_FREETYPE_LIB_STATIC = '${BF_FREETYPE}/lib/libfreetype.a'
-
-WITH_BF_ICONV = False
-BF_ICONV = "/usr"
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-WITH_BF_BINRELOC = True
-
-# enable ffmpeg support
-WITH_BF_FFMPEG = True
-BF_FFMPEG = '/usr'
-BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice'
-BF_FFMPEG_INC = '${BF_FFMPEG}/include'
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-#WITH_BF_STATICFFMPEG = True
-#BF_FFMPEG_LIB_STATIC = '${BF_FFMPEG_LIBPATH}/libavformat.a ${BF_FFMPEG_LIBPATH/libavcodec.a ${BF_FFMPEG_LIBPATH}/libswscale.a ${BF_FFMPEG_LIBPATH}/libavutil.a ${BF_FFMPEG_LIBPATH}/libavdevice.a'
-
-# enable ogg, vorbis and theora in ffmpeg
-WITH_BF_OGG = False
-BF_OGG = '/usr'
-BF_OGG_INC = '${BF_OGG}/include'
-BF_OGG_LIB = 'ogg vorbis vorbisenc theoraenc theoradec'
-
-WITH_BF_OPENJPEG = True
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_FFTW3 = False
-WITH_BF_STATICFFTW3 = False
-BF_FFTW3 = '/usr'
-BF_FFTW3_INC = '${BF_FFTW3}/include'
-BF_FFTW3_LIB = 'fftw3'
-BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
-BF_FFTW3_LIB_STATIC = '${BF_FFTW3_LIBPATH}/libfftw3.a'
-
-WITH_BF_REDCODE = False
-BF_REDCODE = '#extern/libredcode'
-BF_REDCODE_LIB = ''
-# BF_REDCODE_INC = '${BF_REDCODE}/include'
-BF_REDCODE_INC = '${BF_REDCODE}/../' #C files request "libredcode/format.h" which is in "#extern/libredcode/format.h", stupid but compiles for now.
-BF_REDCODE_LIBPATH='${BF_REDCODE}/lib'
-
-# Mesa Libs should go here if you're using them as well....
-WITH_BF_STATICOPENGL = False
-BF_OPENGL = '/usr'
-BF_OPENGL_INC = '${BF_OPENGL}/include'
-BF_OPENGL_LIB = 'GL GLU X11 Xi Xxf86vm'
-BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
-BF_OPENGL_LIB_STATIC = '${BF_OPENGL_LIBPATH}/libGL.a ${BF_OPENGL_LIBPATH}/libGLU.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a ${BF_OPENGL_LIBPATH}/libX11.a ${BF_OPENGL_LIBPATH}/libXi.a ${BF_OPENGL_LIBPATH}/libXext.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a'
-
-WITH_BF_COLLADA = False
-BF_COLLADA = '#source/blender/collada'
-BF_COLLADA_INC = '${BF_COLLADA}'
-BF_COLLADA_LIB = 'bf_collada'
-BF_OPENCOLLADA = '/usr'
-BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include/opencollada'
-BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre buffer ftoa'
-BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib/opencollada'
-BF_PCRE = ''
-BF_PCRE_LIB = 'pcre'
-BF_PCRE_LIBPATH = '/usr/lib'
-BF_EXPAT = '/usr'
-BF_EXPAT_LIB = 'expat'
-BF_EXPAT_LIBPATH = '/usr/lib'
-
-WITH_BF_JEMALLOC = False
-WITH_BF_STATICJEMALLOC = False
-BF_JEMALLOC = '/usr'
-BF_JEMALLOC_INC = '${BF_JEMALLOC}/include'
-BF_JEMALLOC_LIBPATH = '${BF_JEMALLOC}/lib'
-BF_JEMALLOC_LIB = 'jemalloc'
-BF_JEMALLOC_LIB_STATIC = '${BF_JEMALLOC_LIBPATH}/libjemalloc.a'
-
-WITH_BF_OIIO = False
-WITH_BF_STATICOIIO = False
-BF_OIIO = '/usr'
-BF_OIIO_INC = '${BF_OIIO}/include'
-BF_OIIO_LIB = 'OpenImageIO'
-BF_OIIO_LIB_STATIC = '${BF_OIIO_LIBPATH}/libOpenImageIO.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_JPEG}/lib/libjpeg.a'
-BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
-
-WITH_BF_OCIO = False
-WITH_BF_STATICOCIO = False
-BF_OCIO = '/usr'
-BF_OCIO_INC = '${BF_OCIO}/include'
-BF_OCIO_LIB = 'OpenColorIO yaml-cpp tinyxml'
-BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/libOpenColorIO.a ${BF_OCIO_LIBPATH}/libtinyxml.a ${BF_OCIO_LIBPATH}/libyaml-cpp.a'
-BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
-
-WITH_BF_BOOST = True
-WITH_BF_STATICBOOST = False
-BF_BOOST = '/usr'
-BF_BOOST_INC = '${BF_BOOST}/include'
-BF_BOOST_LIB = 'boost_filesystem boost_regex boost_system boost_thread boost_date_time'
-BF_BOOST_LIB_STATIC = '${BF_BOOST_LIBPATH}/libboost_filesystem.a ${BF_BOOST_LIBPATH}/libboost_date_time.a ' + \
- '${BF_BOOST_LIBPATH}/libboost_regex.a ${BF_BOOST_LIBPATH}/libboost_locale.a ${BF_BOOST_LIBPATH}/libboost_system.a ' + \
- '${BF_BOOST_LIBPATH}/libboost_thread.a'
-BF_BOOST_LIB_INTERNATIONAL = 'boost_locale'
-BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
-
-WITH_BF_CYCLES = WITH_BF_OIIO and WITH_BF_BOOST
-
-WITH_BF_CYCLES_CUDA_BINARIES = False
-BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50', 'sm_52']
-
-WITH_BF_OPENMP = True
-
-#Ray trace optimization
-WITH_BF_RAYOPTIMIZATION = True
-BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-pthread']
-
-#SpaceNavigator and friends
-WITH_BF_3DMOUSE = True
-WITH_BF_STATIC3DMOUSE = False
-BF_3DMOUSE = '/usr'
-BF_3DMOUSE_INC = '${BF_3DMOUSE}/include'
-BF_3DMOUSE_LIBPATH = '${BF_3DMOUSE}/lib'
-BF_3DMOUSE_LIB = 'spnav'
-BF_3DMOUSE_LIB_STATIC = '${BF_3DMOUSE_LIBPATH}/libspnav.a'
-
-#Freestyle
-WITH_BF_FREESTYLE = True
-
-WITH_BF_OPENSUBDIV = False
-WITH_BF_STATICOPENSUBDIV = False
-BF_OPENSUBDIV = '/usr'
-BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
-BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
-BF_OPENSUBDIV_LIB_STATIC = '${BF_OPENSUBDIV_LIBPATH}/libosdGPU.a ${BF_OPENSUBDIV_LIBPATH}/libosdCPU.a'
-BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
-
-##
-CC = 'gcc'
-CXX = 'g++'
-
-CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64','-D_LARGEFILE64_SOURCE']
-CFLAGS = ['-std=gnu89']
-CXXFLAGS = []
-
-CPPFLAGS = []
-# g++ 4.6, only needed for bullet
-CXXFLAGS += ['-fpermissive']
-if WITH_BF_FFMPEG:
- # libavutil needs UINT64_C()
- CXXFLAGS += ['-D__STDC_CONSTANT_MACROS', ]
-REL_CFLAGS = []
-REL_CXXFLAGS = []
-REL_CCFLAGS = ['-O2']
-
-C_WARN = ['-Wno-char-subscripts', '-Wvla', '-Wunused-parameter', '-Wstrict-prototypes', '-Werror=vla', '-Werror=implicit-function-declaration', '-Werror=return-type']
-CC_WARN = ['-Wall']
-CXX_WARN = ['-Wno-invalid-offsetof', '-Wno-sign-compare']
-
-LLIBS = ['util', 'c', 'm', 'dl', 'pthread']
-
-BF_PROFILE = False
-BF_PROFILE_CCFLAGS = ['-pg','-g']
-BF_PROFILE_LINKFLAGS = ['-pg']
-
-BF_DEBUG = False
-BF_DEBUG_CCFLAGS = ['-g']
-
-BF_BUILDDIR = '../build/linux'
-BF_INSTALLDIR='../install/linux'
-
-#Link against pthread
-PLATFORM_LINKFLAGS = ['-pthread']
-
-#Fix for LLVM conflict with Mesa llvmpipe, SDL dynload also requires symbols to be hidden.
-# TODO(sergey): Move this to SConstruct, so we can have this line depended on user config.
-PLATFORM_LINKFLAGS += ['-Wl,--version-script=source/creator/blender.map']
diff --git a/build_files/scons/config/win32-mingw-config.py b/build_files/scons/config/win32-mingw-config.py
deleted file mode 100644
index bb28deaade2..00000000000
--- a/build_files/scons/config/win32-mingw-config.py
+++ /dev/null
@@ -1,229 +0,0 @@
-LCGDIR = '#../lib/mingw32'
-LIBDIR = "${LCGDIR}"
-
-BF_PYTHON = LIBDIR + '/python'
-BF_PYTHON_VERSION = '3.5'
-WITH_BF_STATICPYTHON = False
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
-BF_PYTHON_BINARY = 'python'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}mw'
-BF_PYTHON_DLL = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}'
-BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-BF_PYTHON_LIB_STATIC = '${BF_PYTHON}/lib/libpython${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}.a'
-
-WITH_BF_OPENAL = True
-BF_OPENAL = LIBDIR + '/openal'
-BF_OPENAL_INC = '${BF_OPENAL}/include'
-BF_OPENAL_LIB = 'wrap_oal'
-BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
-
-WITH_BF_FFMPEG = True
-BF_FFMPEG_LIB = 'avformat-55 avcodec-55 avdevice-55 avutil-52 swscale-2'
-BF_FFMPEG_LIBPATH = LIBDIR + '/ffmpeg/lib'
-BF_FFMPEG_INC = LIBDIR + '/ffmpeg/include'
-BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-55.dll ${BF_FFMPEG_LIBPATH}/avcodec-55.dll ${BF_FFMPEG_LIBPATH}/avdevice-55.dll ${BF_FFMPEG_LIBPATH}/avutil-52.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll'
-
-WITH_BF_AUDASPACE = True
-
-WITH_BF_JACK = False
-BF_JACK = LIBDIR + '/jack'
-BF_JACK_INC = '${BF_JACK}/include'
-BF_JACK_LIB = 'libjack'
-BF_JACK_LIBPATH = '${BF_JACK}/lib'
-
-WITH_BF_SNDFILE = False
-BF_SNDFILE = LIBDIR + '/sndfile'
-BF_SNDFILE_INC = '${BF_SNDFILE}/include'
-BF_SNDFILE_LIB = 'libsndfile-1'
-BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
-
-WITH_BF_SDL = True
-BF_SDL = LIBDIR + '/sdl'
-BF_SDL_INC = '${BF_SDL}/include'
-BF_SDL_LIB = 'SDL'
-BF_SDL_LIBPATH = '${BF_SDL}/lib'
-
-BF_PTHREADS = LIBDIR + '/pthreads'
-BF_PTHREADS_INC = '${BF_PTHREADS}/include'
-BF_PTHREADS_LIB = 'pthreadGC2'
-BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
-
-WITH_BF_OPENEXR = True
-WITH_BF_STATICOPENEXR = False
-BF_OPENEXR = LIBDIR + '/openexr'
-BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
-BF_OPENEXR_LIB = 'Half IlmImf Imath IlmThread Iex'
-BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-# Warning, this static lib configuration is untested! users of this OS please confirm.
-BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-
-WITH_BF_DDS = True
-
-WITH_BF_JPEG = True
-BF_JPEG = LIBDIR + '/jpeg'
-BF_JPEG_INC = '${BF_JPEG}/include'
-BF_JPEG_LIB = 'liblibjpeg'
-BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-
-WITH_BF_PNG = True
-BF_PNG = LIBDIR + '/png'
-BF_PNG_INC = '${BF_PNG}/include'
-BF_PNG_LIB = 'png'
-BF_PNG_LIBPATH = '${BF_PNG}/lib'
-
-WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/tiff'
-BF_TIFF_INC = '${BF_TIFF}/include'
-BF_TIFF_LIB = 'tiff'
-BF_TIFF_LIBPATH = '${BF_TIFF}/lib'
-
-WITH_BF_ZLIB = True
-BF_ZLIB = LIBDIR + '/zlib'
-BF_ZLIB_INC = '${BF_ZLIB}/include'
-BF_ZLIB_LIB = 'z'
-BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-
-WITH_BF_INTERNATIONAL = True
-
-WITH_BF_OPENJPEG = True
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_FFTW3 = True
-BF_FFTW3 = LIBDIR + '/fftw3'
-BF_FFTW3_INC = '${BF_FFTW3}/include'
-BF_FFTW3_LIB = 'fftw3'
-BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
-
-WITH_BF_GAMEENGINE = True
-WITH_BF_PLAYER = True
-WITH_BF_OCEANSIM = True
-
-WITH_BF_BULLET = True
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-BF_WINTAB = LIBDIR + '/wintab'
-BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
-
-BF_FREETYPE = LIBDIR + '/freetype'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
-BF_FREETYPE_LIB = 'freetype'
-BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-
-WITH_BF_ICONV = False
-BF_ICONV = LIBDIR + "/iconv"
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-WITH_BF_REDCODE = False
-BF_REDCODE_INC = '#extern'
-
-# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = False
-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' ]
-
-WITH_BF_COLLADA = True
-BF_COLLADA = '#source/blender/collada'
-BF_COLLADA_INC = '${BF_COLLADA}'
-BF_COLLADA_LIB = 'bf_collada'
-
-BF_OPENCOLLADA = LIBDIR + '/opencollada'
-BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include/opencollada'
-BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre buffer ftoa xml'
-BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib/opencollada'
-
-#Cycles
-WITH_BF_CYCLES = True
-WITH_BF_CYCLES_CUDA_BINARIES = False
-BF_CYCLES_CUDA_NVCC = "" # Path to the NVIDIA CUDA compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50', 'sm_52']
-
-WITH_BF_OIIO = True
-BF_OIIO = LIBDIR + '/openimageio'
-BF_OIIO_INC = '${BF_OIIO}/include'
-BF_OIIO_LIB = 'OpenImageIO'
-BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
-
-WITH_BF_OCIO = True
-BF_OCIO = LIBDIR + '/opencolorio'
-BF_OCIO_INC = '${BF_OCIO}/include'
-BF_OCIO_LIB = 'OpenColorIO'
-BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
-
-WITH_BF_BOOST = True
-BF_BOOST = LIBDIR + '/boost'
-BF_BOOST_INC = '${BF_BOOST}/include'
-BF_BOOST_LIB = 'boost_date_time-mgw46-mt-s-1_49 boost_filesystem-mgw46-mt-s-1_49 boost_regex-mgw46-mt-s-1_49 boost_system-mgw46-mt-s-1_49 boost_thread-mgw46-mt-s-1_49'
-BF_BOOST_LIB_INTERNATIONAL = 'boost_locale-mgw46-mt-s-1_49'
-BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
-
-WITH_BF_OPENSUBDIV = False
-BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
-BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
-BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
-BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
-
-#Ray trace optimization
-WITH_BF_RAYOPTIMIZATION = True
-BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse']
-
-WITH_BF_IME = True
-
-WITH_BF_OPENMP = True
-
-#CUDA
-WITH_BF_CYCLES_CUDA_BINARIES = False
-#BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50']
-
-#Freestyle
-WITH_BF_FREESTYLE = True
-
-##
-CC = 'gcc'
-CXX = 'g++'
-
-CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ]
-CXXFLAGS = []
-
-CPPFLAGS = ['-DWIN32', '-DFREE_WINDOWS', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE64_SOURCE', '-DBOOST_ALL_NO_LIB', '-DBOOST_THREAD_USE_LIB', '-DGLEW_STATIC', '-DOPJ_STATIC']
-REL_CFLAGS = []
-REL_CXXFLAGS = []
-REL_CCFLAGS = ['-O2']
-
-C_WARN = ['-Wno-char-subscripts', '-Wvla', '-Wstrict-prototypes']
-
-CC_WARN = [ '-Wall' ]
-
-LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++','-lole32','-luuid', '-lwsock32', '-lpsapi', '-ldbghelp']
-
-if WITH_BF_IME:
- LLIBS.append('-limm32')
-
-PLATFORM_LINKFLAGS = ['-Xlinker', '--stack=2097152']
-
-## DISABLED, causes linking errors!
-## for re-distribution, so users dont need mingw installed
-# PLATFORM_LINKFLAGS += ["-static-libgcc", "-static-libstdc++"]
-
-BF_DEBUG = False
-BF_DEBUG_CCFLAGS= ['-g']
-
-BF_PROFILE_CCFLAGS = ['-pg', '-g']
-BF_PROFILE_LINKFLAGS = ['-pg']
-BF_PROFILE_FLAGS = BF_PROFILE_CCFLAGS
-BF_PROFILE = False
-
-BF_BUILDDIR = '..\\build\\win32-mingw'
-BF_INSTALLDIR='..\\install\\win32-mingw'
diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py
deleted file mode 100644
index 07d0dda05e5..00000000000
--- a/build_files/scons/config/win32-vc-config.py
+++ /dev/null
@@ -1,264 +0,0 @@
-import subprocess
-
-CL_OUT = subprocess.Popen(["cl.exe"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
-CL_STDOUT, CL_STDERR = CL_OUT.communicate()
-
-if "18.00." in CL_STDERR:
- VC_VERSION = '12.0'
- LCGDIR = '#../lib/windows_vc12'
-else:
- import sys
- print("Visual C version not supported {}\n".format(CL_STDERR))
- sys.exit(1)
-
-LIBDIR = '${LCGDIR}'
-
-WITH_BF_FFMPEG = True
-BF_FFMPEG = LIBDIR +'/ffmpeg'
-BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}/include/msvc'
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-55.lib avcodec-55.lib avdevice-55.lib avutil-52.lib swscale-2.lib'
-BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-55.dll ${BF_FFMPEG_LIBPATH}/avcodec-55.dll ${BF_FFMPEG_LIBPATH}/avdevice-55.dll ${BF_FFMPEG_LIBPATH}/avutil-52.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll'
-
-BF_PYTHON = LIBDIR + '/python'
-BF_PYTHON_VERSION = '3.5'
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
-BF_PYTHON_BINARY = 'python'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}'
-BF_PYTHON_DLL = '${BF_PYTHON_LIB}'
-BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-
-WITH_BF_PYTHON_INSTALL_NUMPY = True
-
-WITH_BF_OPENAL = True
-BF_OPENAL = LIBDIR + '/openal'
-BF_OPENAL_INC = '${BF_OPENAL}/include '
-BF_OPENAL_LIB = 'OpenAL32'
-BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
-
-WITH_BF_ICONV = True
-BF_ICONV = LIBDIR + '/iconv'
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-WITH_BF_AUDASPACE = True
-
-WITH_BF_JACK = False
-BF_JACK = LIBDIR + '/jack'
-BF_JACK_INC = '${BF_JACK}/include ${BF_FFMPEG}/include/msvc'
-BF_JACK_LIB = 'libjack'
-BF_JACK_LIBPATH = '${BF_JACK}/lib'
-
-WITH_BF_SNDFILE = True
-BF_SNDFILE = LIBDIR + '/sndfile'
-BF_SNDFILE_INC = '${BF_SNDFILE}/include'
-BF_SNDFILE_LIB = 'libsndfile-1'
-BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
-
-WITH_BF_SDL = True
-BF_SDL = LIBDIR + '/sdl'
-BF_SDL_INC = '${BF_SDL}/include'
-BF_SDL_LIB = 'SDL2.lib'
-BF_SDL_LIBPATH = '${BF_SDL}/lib'
-
-BF_PTHREADS = LIBDIR + '/pthreads'
-BF_PTHREADS_INC = '${BF_PTHREADS}/include'
-BF_PTHREADS_LIB = 'pthreadVC2'
-BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
-
-WITH_BF_OPENEXR = True
-WITH_BF_STATICOPENEXR = False
-BF_OPENEXR = LIBDIR + '/openexr'
-BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR '
-BF_OPENEXR_LIB = ' Iex-2_2 Half IlmImf-2_2 Imath-2_2 IlmThread-2_2 '
-BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-
-WITH_BF_DDS = True
-
-WITH_BF_JPEG = True
-BF_JPEG = LIBDIR + '/jpeg'
-BF_JPEG_INC = '${BF_JPEG}/include'
-BF_JPEG_LIB = 'libjpeg'
-BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-
-WITH_BF_PNG = True
-BF_PNG = LIBDIR + '/png'
-BF_PNG_INC = '${BF_PNG}/include'
-BF_PNG_LIB = 'libpng'
-BF_PNG_LIBPATH = '${BF_PNG}/lib'
-
-WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/tiff'
-BF_TIFF_INC = '${BF_TIFF}/include'
-BF_TIFF_LIB = 'libtiff'
-BF_TIFF_LIBPATH = '${BF_TIFF}/lib'
-
-WITH_BF_ZLIB = True
-BF_ZLIB = LIBDIR + '/zlib'
-BF_ZLIB_INC = '${BF_ZLIB}/include'
-BF_ZLIB_LIB = 'libz_st'
-BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-
-WITH_BF_INTERNATIONAL = True
-
-WITH_BF_GAMEENGINE = True
-WITH_BF_PLAYER = True
-WITH_BF_OCEANSIM = True
-
-WITH_BF_BULLET = True
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-WITH_BF_ELTOPO = False
-BF_LAPACK = LIBDIR + '/lapack'
-BF_LAPACK_LIB = 'libf2c clapack_nowrap BLAS_nowrap'
-BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
-
-BF_WINTAB = LIBDIR + '/wintab'
-BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
-
-WITH_BF_BINRELOC = False
-
-BF_WITH_FREETYPE = True
-BF_FREETYPE = LIBDIR + '/freetype'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
-BF_FREETYPE_LIB = 'freetype2ST'
-BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-
-WITH_BF_OPENJPEG = True
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_FFTW3 = True
-BF_FFTW3 = LIBDIR + '/fftw3'
-BF_FFTW3_INC = '${BF_FFTW3}/include'
-BF_FFTW3_LIB = 'libfftw'
-BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
-
-WITH_BF_REDCODE = False
-BF_REDCODE_INC = '#extern'
-
-WITH_BF_COLLADA = True
-BF_COLLADA = '#source/blender/collada'
-BF_COLLADA_INC = '${BF_COLLADA}'
-BF_COLLADA_LIB = 'bf_collada'
-
-BF_OPENCOLLADA = LIBDIR + '/opencollada'
-BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include/opencollada'
-BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser MathMLSolver xml pcre buffer ftoa'
-BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib/opencollada'
-
-WITH_BF_IME = True
-
-WITH_BF_3DMOUSE = True
-
-WITH_BF_OPENMP = True
-
-#Cycles
-WITH_BF_CYCLES = True
-
-WITH_BF_CYCLES_OSL = True
-WITH_BF_STATICOSL = True
-BF_OSL = '${LIBDIR}/osl'
-BF_OSL_INC = '${BF_OSL}/include'
-BF_OSL_LIBPATH = '${BF_OSL}/lib'
-BF_OSL_LIB_STATIC = '${BF_OSL_LIBPATH}/oslcomp.lib ${BF_OSL_LIBPATH}/oslexec.lib ${BF_OSL_LIBPATH}/oslquery.lib '
-BF_OSL_COMPILER = '${BF_OSL}/bin/oslc'
-
-WITH_BF_LLVM = True
-BF_LLVM = LIBDIR + '/llvm'
-BF_LLVM_LIB = 'LLVMBitReader LLVMJIT LLVMipo LLVMVectorize LLVMBitWriter LLVMX86CodeGen LLVMX86Desc LLVMX86Info LLVMX86AsmPrinter ' + \
- 'LLVMX86Utils LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMInstCombine LLVMTransformUtils LLVMipa LLVMAnalysis LLVMExecutionEngine ' + \
- 'LLVMTarget LLVMMC LLVMCore LLVMObject LLVMRuntimeDyld LLVMSupport'
-BF_LLVM_LIBPATH = '${BF_LLVM}/lib'
-
-WITH_BF_OIIO = True
-BF_OIIO = '${LIBDIR}/openimageio'
-BF_OIIO_INC = '${BF_OIIO}/include'
-BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
-BF_OIIO_LIB_STATIC = '${BF_OIIO_LIBPATH}/OpenImageIO.lib'
-WITH_BF_STATICOIIO = True
-
-WITH_BF_OCIO = True
-BF_OCIO = '${LIBDIR}/opencolorio'
-BF_OCIO_INC = '${BF_OCIO}/include'
-BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
-BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/OpenColorIO.lib'
-WITH_BF_STATICOCIO = True
-
-WITH_BF_BOOST = True
-BF_BOOST = '${LIBDIR}/boost'
-BF_BOOST_INC = '${BF_BOOST}/include'
-BF_BOOST_LIB = 'libboost_date_time-vc120-mt-s-1_55 libboost_filesystem-vc120-mt-s-1_55 libboost_regex-vc120-mt-s-1_55 libboost_system-vc120-mt-s-1_55 libboost_thread-vc120-mt-s-1_55 libboost_wave-vc120-mt-s-1_55'
-BF_BOOST_LIB_INTERNATIONAL = ' libboost_locale-vc120-mt-s-1_55'
-BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
-
-#CUDA
-WITH_BF_CYCLES_CUDA_BINARIES = False
-#BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50', 'sm_52']
-
-#Ray trace optimization
-WITH_BF_RAYOPTIMIZATION = True
-BF_RAYOPTIMIZATION_SSE_FLAGS = ['/arch:SSE']
-
-#Freestyle
-WITH_BF_FREESTYLE = True
-
-WITH_BF_OPENSUBDIV = True
-BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
-BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
-BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
-BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
-
-WITH_BF_STATICOPENGL = False
-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 = 'cl.exe'
-CXX = 'cl.exe'
-
-CCFLAGS = ['/nologo', '/J', '/W3', '/Gd', '/w34062', '/wd4018', '/wd4065', '/wd4127', '/wd4181', '/wd4200', '/wd4244', '/wd4267', '/wd4305', '/wd4800', '/we4013', '/we4431']
-CXXFLAGS = ['/EHsc']
-BGE_CXXFLAGS = ['/O2', '/Ob2', '/EHsc', '/GR', '/fp:fast', '/arch:SSE']
-
-if VC_VERSION == '12.0':
- CCFLAGS.append('/DOIIO_STATIC_BUILD') # OIIO api changed with 1.4 making this needed
-
-BF_DEBUG_CCFLAGS = ['/Zi', '/Ob0', '/Od', '/FR${TARGET}.sbr']
-
-CPPFLAGS = ['-DWIN32','-D_CONSOLE', '-D_LIB', '-D_CRT_SECURE_NO_DEPRECATE', '-DOPJ_STATIC']
-REL_CFLAGS = []
-REL_CXXFLAGS = []
-REL_CCFLAGS = ['-O2', '/Ob2']
-
-C_WARN = []
-CC_WARN = []
-CXX_WARN = []
-
-LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid', 'psapi', 'Dbghelp']
-
-if WITH_BF_IME:
- LLIBS.append('imm32')
-
-PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:IX86','/STACK:2097152','/INCREMENTAL:NO', '/LARGEADDRESSAWARE', '/NODEFAULTLIB:msvcrt.lib', '/NODEFAULTLIB:msvcmrt.lib', '/NODEFAULTLIB:msvcurt.lib', '/NODEFAULTLIB:msvcrtd.lib']
-
-# # Todo
-# BF_PROFILE_CCFLAGS = ['-pg', '-g ']
-# BF_PROFILE_LINKFLAGS = ['-pg']
-# BF_PROFILE = False
-
-BF_BSC=False
-
-BF_CYCLES_CUDA_ENV="C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd"
-BF_BUILDDIR = '..\\build\\win32-vc'
-BF_INSTALLDIR='..\\install\\win32-vc'
diff --git a/build_files/scons/config/win64-mingw-config.py b/build_files/scons/config/win64-mingw-config.py
deleted file mode 100644
index f5659a99ff5..00000000000
--- a/build_files/scons/config/win64-mingw-config.py
+++ /dev/null
@@ -1,224 +0,0 @@
-LCGDIR = '#../lib/mingw64'
-LIBDIR = "${LCGDIR}"
-
-BF_PYTHON = LIBDIR + '/python'
-BF_PYTHON_VERSION = '3.5'
-WITH_BF_STATICPYTHON = False
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
-BF_PYTHON_BINARY = 'python'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}mw'
-BF_PYTHON_DLL = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}'
-BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-
-WITH_BF_OPENAL = True
-BF_OPENAL = LIBDIR + '/openal'
-BF_OPENAL_INC = '${BF_OPENAL}/include'
-BF_OPENAL_LIB = 'wrap_oal'
-BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
-
-WITH_BF_FFMPEG = True
-BF_FFMPEG_LIB = 'avformat.dll avcodec.dll avdevice.dll avutil.dll swscale.dll swresample.dll'
-BF_FFMPEG_LIBPATH = LIBDIR + '/ffmpeg/lib'
-BF_FFMPEG_INC = LIBDIR + '/ffmpeg/include'
-BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-53.dll ${BF_FFMPEG_LIBPATH}/avcodec-53.dll ${BF_FFMPEG_LIBPATH}/avdevice-53.dll ${BF_FFMPEG_LIBPATH}/avutil-51.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll ${BF_FFMPEG_LIBPATH}/swresample-0.dll ${BF_FFMPEG_LIBPATH}/xvidcore.dll'
-
-WITH_BF_AUDASPACE = True
-
-WITH_BF_JACK = False
-BF_JACK = LIBDIR + '/jack'
-BF_JACK_INC = '${BF_JACK}/include'
-BF_JACK_LIB = 'libjack'
-BF_JACK_LIBPATH = '${BF_JACK}/lib'
-
-WITH_BF_SNDFILE = False
-BF_SNDFILE = LIBDIR + '/sndfile'
-BF_SNDFILE_INC = '${BF_SNDFILE}/include'
-BF_SNDFILE_LIB = 'libsndfile-1'
-BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
-
-WITH_BF_SDL = True
-BF_SDL = LIBDIR + '/sdl'
-BF_SDL_INC = '${BF_SDL}/include'
-BF_SDL_LIB = 'SDL'
-BF_SDL_LIBPATH = '${BF_SDL}/lib'
-
-BF_PTHREADS = '' # Part of MinGW-w64
-BF_PTHREADS_INC = ''
-BF_PTHREADS_LIB = ''
-BF_PTHREADS_LIBPATH = ''
-
-WITH_BF_OPENEXR = True
-WITH_BF_STATICOPENEXR = False
-BF_OPENEXR = LIBDIR + '/openexr'
-BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
-BF_OPENEXR_LIB = 'Half IlmImf Imath IlmThread Iex'
-BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-
-WITH_BF_DDS = True
-
-WITH_BF_JPEG = True
-BF_JPEG = LIBDIR + '/jpeg'
-BF_JPEG_INC = '${BF_JPEG}/include'
-BF_JPEG_LIB = 'jpeg'
-BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-
-WITH_BF_PNG = True
-BF_PNG = LIBDIR + '/png'
-BF_PNG_INC = '${BF_PNG}/include'
-BF_PNG_LIB = 'png'
-BF_PNG_LIBPATH = '${BF_PNG}/lib'
-
-WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/tiff'
-BF_TIFF_INC = '${BF_TIFF}/include'
-BF_TIFF_LIB = 'tiff'
-BF_TIFF_LIBPATH = '${BF_TIFF}/lib'
-
-WITH_BF_ZLIB = True
-BF_ZLIB = LIBDIR + '/zlib'
-BF_ZLIB_INC = '${BF_ZLIB}/include'
-BF_ZLIB_LIB = 'z'
-BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-
-WITH_BF_INTERNATIONAL = True
-
-WITH_BF_OPENJPEG = True
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_FFTW3 = True
-BF_FFTW3 = LIBDIR + '/fftw3'
-BF_FFTW3_INC = '${BF_FFTW3}/include'
-BF_FFTW3_LIB = 'fftw3'
-BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
-
-WITH_BF_GAMEENGINE = True
-WITH_BF_OCEANSIM = True
-WITH_BF_PLAYER = True
-WITH_BF_LIBMV = True
-
-WITH_BF_BULLET = True
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-BF_WINTAB = LIBDIR + '/wintab'
-BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
-
-# enable freetype2 support for text objects
-BF_FREETYPE = LIBDIR + '/freetype'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2/'
-BF_FREETYPE_LIB = 'freetype'
-BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-
-WITH_BF_ICONV = False
-BF_ICONV = LIBDIR + "/iconv"
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-WITH_BF_REDCODE = False
-BF_REDCODE_INC = '#extern'
-
-# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = False
-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' ]
-
-WITH_BF_COLLADA = True
-BF_COLLADA = '#source/blender/collada'
-BF_COLLADA_INC = '${BF_COLLADA}'
-BF_COLLADA_LIB = 'bf_collada'
-
-BF_OPENCOLLADA = LIBDIR + '/opencollada'
-BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include/opencollada'
-BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre buffer ftoa xml'
-BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib/opencollada'
-
-#Cycles
-WITH_BF_CYCLES = True
-WITH_BF_CYCLES_CUDA_BINARIES = False
-BF_CYCLES_CUDA_NVCC = "" # Path to the NVIDIA CUDA compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50', 'sm_52']
-
-WITH_BF_OIIO = True
-BF_OIIO = LIBDIR + '/openimageio'
-BF_OIIO_INC = '${BF_OIIO}/include'
-BF_OIIO_LIB = 'OpenImageIO'
-BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
-
-WITH_BF_OCIO = True
-BF_OCIO = LIBDIR + '/opencolorio'
-BF_OCIO_INC = '${BF_OCIO}/include'
-BF_OCIO_LIB = 'OpenColorIO'
-BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
-
-WITH_BF_BOOST = True
-BF_BOOST = LIBDIR + '/boost'
-BF_BOOST_INC = '${BF_BOOST}/include'
-BF_BOOST_LIB = 'boost_date_time-mgw47-mt-s-1_49 boost_date_time-mgw47-mt-sd-1_49 boost_filesystem-mgw47-mt-s-1_49 boost_filesystem-mgw47-mt-sd-1_49 boost_regex-mgw47-mt-s-1_49 boost_regex-mgw47-mt-sd-1_49 boost_system-mgw47-mt-s-1_49 boost_system-mgw47-mt-sd-1_49 boost_thread-mgw47-mt-s-1_49 boost_thread-mgw47-mt-sd-1_49'
-BF_BOOST_LIB_INTERNATIONAL = ' boost_locale-mgw47-mt-s-1_49 boost_locale-mgw47-mt-sd-1_49'
-BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
-
-WITH_BF_OPENSUBDIV = False
-BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
-BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
-BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
-BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
-
-#Ray trace optimization
-WITH_BF_RAYOPTIMIZATION = True
-BF_RAYOPTIMIZATION_SSE_FLAGS = ['-mmmx', '-msse', '-msse2']
-
-WITH_BF_IME = True
-
-WITH_BF_OPENMP = True
-
-#Freestyle
-WITH_BF_FREESTYLE = True
-
-##
-CC = 'gcc'
-CXX = 'g++'
-
-CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ]
-CXXFLAGS = [ '-fpermissive' ]
-
-CPPFLAGS = ['-DWIN32', '-DMS_WIN64', '-DFREE_WINDOWS', '-DFREE_WINDOWS64', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE64_SOURCE', '-DBOOST_ALL_NO_LIB', '-DBOOST_THREAD_USE_LIB', '-DGLEW_STATIC', '-DOPJ_STATIC']
-REL_CFLAGS = []
-REL_CXXFLAGS = []
-REL_CCFLAGS = ['-O2', '-ftree-vectorize']
-
-# NOTE: C_WARN seems to get ignored - at least -Wno-char-subscripts doesn't work!
-C_WARN = ['-Wno-char-subscripts', '-Wvla', '-Wstrict-prototypes']
-
-CC_WARN = [ '-Wall', '-Wno-char-subscripts' ]
-
-LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++','-lole32','-luuid', '-lwsock32', '-lpsapi', '-lpthread', '-ldbghelp']
-
-if WITH_BF_IME:
- LLIBS.append('-limm32')
-
-PLATFORM_LINKFLAGS = ['-Xlinker', '--stack=2097152']
-
-## DISABLED, causes linking errors!
-## for re-distribution, so users dont need mingw installed
-# PLATFORM_LINKFLAGS += ["-static-libgcc", "-static-libstdc++"]
-
-BF_DEBUG = False
-BF_DEBUG_CCFLAGS= ['-g']
-
-BF_PROFILE_CCFLAGS = ['-pg', '-g']
-BF_PROFILE_LINKFLAGS = ['-pg']
-BF_PROFILE_FLAGS = BF_PROFILE_CCFLAGS
-BF_PROFILE = False
-
-BF_BUILDDIR = '..\\build\\win64-mingw'
-BF_INSTALLDIR='..\\install\\win64-mingw'
diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py
deleted file mode 100644
index 3b4551565c6..00000000000
--- a/build_files/scons/config/win64-vc-config.py
+++ /dev/null
@@ -1,264 +0,0 @@
-import subprocess
-
-CL_OUT = subprocess.Popen(["cl.exe"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
-CL_STDOUT, CL_STDERR = CL_OUT.communicate()
-
-if "18.00." in CL_STDERR:
- VC_VERSION = '12.0'
- LCGDIR = '#../lib/win64_vc12'
-else:
- import sys
- print("Visual C version not supported {}\n".format(CL_STDERR))
- sys.exit(1)
-
-LIBDIR = '${LCGDIR}'
-
-WITH_BF_FFMPEG = True
-BF_FFMPEG = LIBDIR +'/ffmpeg'
-BF_FFMPEG_INC = '${BF_FFMPEG}/include ${BF_FFMPEG}/include/msvc '
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat-55.lib avcodec-55.lib avdevice-55.lib avutil-52.lib swscale-2.lib'
-BF_FFMPEG_DLL = '${BF_FFMPEG_LIBPATH}/avformat-55.dll ${BF_FFMPEG_LIBPATH}/avcodec-55.dll ${BF_FFMPEG_LIBPATH}/avdevice-55.dll ${BF_FFMPEG_LIBPATH}/avutil-52.dll ${BF_FFMPEG_LIBPATH}/swscale-2.dll'
-
-
-BF_PYTHON = LIBDIR + '/python'
-BF_PYTHON_VERSION = '3.5'
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
-BF_PYTHON_BINARY = 'python'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}'
-BF_PYTHON_DLL = '${BF_PYTHON_LIB}'
-BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-
-WITH_BF_PYTHON_INSTALL_NUMPY = True
-
-WITH_BF_OPENAL = True
-BF_OPENAL = LIBDIR + '/openal'
-BF_OPENAL_INC = '${BF_OPENAL}/include '
-BF_OPENAL_LIB = 'OpenAL32'
-BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
-
-WITH_BF_SNDFILE = True
-BF_SNDFILE = LIBDIR + '/sndfile'
-BF_SNDFILE_INC = '${BF_SNDFILE}/include'
-BF_SNDFILE_LIB = 'libsndfile-1'
-BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
-
-WITH_BF_ICONV = True
-BF_ICONV = LIBDIR + '/iconv'
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-WITH_BF_SDL = True
-BF_SDL = LIBDIR + '/sdl'
-BF_SDL_INC = '${BF_SDL}/include'
-BF_SDL_LIB = 'SDL2.lib'
-BF_SDL_LIBPATH = '${BF_SDL}/lib'
-
-WITH_BF_AUDASPACE = True
-
-WITH_BF_JACK = False
-
-BF_PTHREADS = LIBDIR + '/pthreads'
-BF_PTHREADS_INC = '${BF_PTHREADS}/include'
-BF_PTHREADS_LIB = 'pthreadVC2'
-BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
-
-WITH_BF_OPENEXR = True
-WITH_BF_STATICOPENEXR = False
-BF_OPENEXR = LIBDIR + '/openexr'
-BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR '
-BF_OPENEXR_LIB = ' Iex-2_2 Half IlmImf-2_2 Imath-2_2 IlmThread-2_2 '
-BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-
-WITH_BF_DDS = True
-
-WITH_BF_JPEG = True
-BF_JPEG = LIBDIR + '/jpeg'
-BF_JPEG_INC = '${BF_JPEG}/include'
-BF_JPEG_LIB = 'libjpeg'
-BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-
-WITH_BF_PNG = True
-BF_PNG = LIBDIR + '/png'
-BF_PNG_INC = '${BF_PNG}/include'
-BF_PNG_LIB = 'libpng'
-BF_PNG_LIBPATH = '${BF_PNG}/lib'
-
-WITH_BF_TIFF = True
-BF_TIFF = LIBDIR + '/tiff'
-BF_TIFF_INC = '${BF_TIFF}/include'
-BF_TIFF_LIB = 'libtiff'
-BF_TIFF_LIBPATH = '${BF_TIFF}/lib'
-
-WITH_BF_ZLIB = True
-BF_ZLIB = LIBDIR + '/zlib'
-BF_ZLIB_INC = '${BF_ZLIB}/include'
-BF_ZLIB_LIB = 'libz_st'
-BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-
-WITH_BF_INTERNATIONAL = True
-
-WITH_BF_GAMEENGINE = True
-WITH_BF_PLAYER = True
-WITH_BF_OCEANSIM = True
-
-WITH_BF_BULLET = True
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-WITH_BF_ELTOPO = False
-BF_LAPACK = LIBDIR + '/lapack'
-BF_LAPACK_LIB = 'libf2c clapack_nowrap BLAS_nowrap'
-BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
-
-BF_WINTAB = LIBDIR + '/wintab'
-BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
-
-WITH_BF_BINRELOC = False
-
-BF_WITH_FREETYPE = True
-BF_FREETYPE = LIBDIR + '/freetype'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
-BF_FREETYPE_LIB = 'freetype2ST'
-BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-
-WITH_BF_QUICKTIME = False
-BF_QUICKTIME = LIBDIR + '/QTDevWin'
-BF_QUICKTIME_INC = '${BF_QUICKTIME}/CIncludes'
-BF_QUICKTIME_LIB = 'qtmlClient'
-BF_QUICKTIME_LIBPATH = '${BF_QUICKTIME}/Libraries'
-
-WITH_BF_OPENJPEG = True
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_FFTW3 = True
-BF_FFTW3 = LIBDIR + '/fftw3'
-BF_FFTW3_INC = '${BF_FFTW3}/include'
-BF_FFTW3_LIB = 'libfftw'
-BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
-
-WITH_BF_REDCODE = False
-BF_REDCODE_INC = '#extern'
-
-WITH_BF_COLLADA = True
-BF_COLLADA = '#source/blender/collada'
-BF_COLLADA_INC = '${BF_COLLADA}'
-BF_COLLADA_LIB = 'bf_collada'
-
-BF_OPENCOLLADA = LIBDIR + '/opencollada'
-BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include/opencollada'
-BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser MathMLSolver xml pcre buffer ftoa'
-BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib/opencollada'
-
-WITH_BF_IME = True
-
-WITH_BF_3DMOUSE = True
-
-WITH_BF_OPENMP = True
-
-#Cycles
-WITH_BF_CYCLES = True
-
-WITH_BF_CYCLES_OSL = True
-WITH_BF_STATICOSL = True
-BF_OSL = '${LIBDIR}/osl'
-BF_OSL_INC = '${BF_OSL}/include'
-BF_OSL_LIBPATH = '${BF_OSL}/lib'
-BF_OSL_LIB_STATIC = '${BF_OSL_LIBPATH}/oslcomp.lib ${BF_OSL_LIBPATH}/oslexec.lib ${BF_OSL_LIBPATH}/oslquery.lib '
-BF_OSL_COMPILER = '${BF_OSL}/bin/oslc'
-
-WITH_BF_LLVM = True
-BF_LLVM = LIBDIR + '/llvm'
-BF_LLVM_LIB = 'LLVMBitReader LLVMJIT LLVMipo LLVMVectorize LLVMBitWriter LLVMX86CodeGen LLVMX86Desc LLVMX86Info LLVMX86AsmPrinter ' + \
- 'LLVMX86Utils LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMInstCombine LLVMTransformUtils LLVMipa LLVMAnalysis LLVMExecutionEngine ' + \
- 'LLVMTarget LLVMMC LLVMCore LLVMObject LLVMRuntimeDyld LLVMSupport'
-BF_LLVM_LIBPATH = '${BF_LLVM}/lib'
-
-WITH_BF_OIIO = True
-BF_OIIO = '${LIBDIR}/openimageio'
-BF_OIIO_INC = '${BF_OIIO}/include'
-BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
-BF_OIIO_LIB_STATIC = '${BF_OIIO_LIBPATH}/OpenImageIO.lib ${BF_OIIO_LIBPATH}/OpenImageIO_Util.lib'
-WITH_BF_STATICOIIO = True
-
-WITH_BF_OCIO = True
-BF_OCIO = '${LIBDIR}/opencolorio'
-BF_OCIO_INC = '${BF_OCIO}/include'
-BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
-BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/OpenColorIO.lib'
-WITH_BF_STATICOCIO = True
-
-WITH_BF_BOOST = True
-BF_BOOST = '${LIBDIR}/boost'
-BF_BOOST_INC = '${BF_BOOST}/include'
-BF_BOOST_LIB = 'libboost_date_time-vc120-mt-s-1_55 libboost_filesystem-vc120-mt-s-1_55 libboost_regex-vc120-mt-s-1_55 libboost_system-vc120-mt-s-1_55 libboost_thread-vc120-mt-s-1_55 libboost_wave-vc120-mt-s-1_55'
-BF_BOOST_LIB_INTERNATIONAL = ' libboost_locale-vc120-mt-s-1_55'
-BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
-
-#CUDA
-WITH_BF_CYCLES_CUDA_BINARIES = False
-#BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50', 'sm_52']
-
-#Ray trace optimization
-WITH_BF_RAYOPTIMIZATION = True
-# No need to manually specify SSE/SSE2 on x64 systems.
-BF_RAYOPTIMIZATION_SSE_FLAGS = ['']
-
-#Freestyle
-WITH_BF_FREESTYLE = True
-
-WITH_BF_OPENSUBDIV = True
-BF_OPENSUBDIV = LIBDIR + '/opensubdiv'
-BF_OPENSUBDIV_INC = '${BF_OPENSUBDIV}/include'
-BF_OPENSUBDIV_LIB = 'osdCPU osdGPU'
-BF_OPENSUBDIV_LIBPATH = '${BF_OPENSUBDIV}/lib'
-
-WITH_BF_STATICOPENGL = False
-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 = 'cl.exe'
-CXX = 'cl.exe'
-
-CFLAGS = []
-CCFLAGS = ['/nologo', '/J', '/W3', '/Gd', '/w34062', '/wd4018', '/wd4065', '/wd4127', '/wd4181', '/wd4200', '/wd4244', '/wd4267', '/wd4305', '/wd4800', '/we4013', '/we4431']
-
-# We want to support Vista level ABI for x64
-if VC_VERSION == '12.0':
- CCFLAGS.append('/D_WIN32_WINNT=0x600')
- CCFLAGS.append('/DOIIO_STATIC_BUILD') # OIIO api changed with 1.4 making this needed
-
-CXXFLAGS = ['/EHsc']
-BGE_CXXFLAGS = ['/O2', '/Ob2', '/EHsc', '/GR', '/fp:fast']
-
-BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr', '/Od', '/Ob0']
-
-CPPFLAGS = ['-DWIN32', '-D_CONSOLE', '-D_LIB', '-D_CRT_SECURE_NO_DEPRECATE', '-DOPJ_STATIC']
-REL_CFLAGS = []
-REL_CXXFLAGS = []
-REL_CCFLAGS = ['-O2', '/Ob2']
-
-C_WARN = []
-CC_WARN = []
-CXX_WARN = []
-
-LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid', 'psapi', 'Dbghelp']
-
-if WITH_BF_IME:
- LLIBS.append('imm32')
-
-PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:X64','/STACK:2097152','/OPT:NOREF','/INCREMENTAL:NO', '/NODEFAULTLIB:msvcrt.lib', '/NODEFAULTLIB:msvcmrt.lib', '/NODEFAULTLIB:msvcurt.lib', '/NODEFAULTLIB:msvcrtd.lib']
-
-BF_CYCLES_CUDA_ENV="C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd"
-BF_BUILDDIR = '..\\build\\win64-vc'
-BF_INSTALLDIR='..\\install\\win64-vc'
diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py
deleted file mode 100644
index d44c5caaec8..00000000000
--- a/build_files/scons/tools/Blender.py
+++ /dev/null
@@ -1,1146 +0,0 @@
-#!/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
-import string
-import ctypes as ct
-import glob
-import time
-import sys
-import tarfile
-import shutil
-import cStringIO
-import platform
-
-from SCons.Script.SConscript import SConsEnvironment
-import SCons.Action
-import SCons.Util
-import SCons.Builder
-import SCons.Subst
-import SCons.Tool
-import bcolors
-bc = bcolors.bcolors()
-import btools
-VERSION = btools.VERSION
-VERSION_RELEASE_CYCLE = btools.VERSION_RELEASE_CYCLE
-
-Split = SCons.Util.Split
-Action = SCons.Action.Action
-Builder = SCons.Builder.Builder
-GetBuildPath = SConsEnvironment.GetBuildPath
-
-# a few globals
-root_build_dir = ''
-doc_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
-resources = []
-allowed_bitnesses = {4 : 32, 8 : 64} # only expecting 32-bit or 64-bit
-bitness = allowed_bitnesses[ct.sizeof(ct.c_void_p)]
-
-##### LIB STUFF ##########
-
-possible_types = ['core'] # can be set in ie. SConstruct
-libs = {}
-vcp = []
-
-def getresources():
- return resources
-
-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(env, dict = None, libtype = None, libname = None, priority = 100):
- if not dict or not libtype or not libname:
- print "Passed wrong arg"
- env.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"
- env.Exit()
- else:
- print "Wrong type combinations for libtype and priority. Only str and int or list and list"
- env.Exit()
-
-def create_blender_liblist(lenv = None, libtype = None):
- if not lenv or not libtype:
- print "missing arg"
-
- lst = []
- if libtype in possible_types:
- curlib = libs[libtype]
- sortlist = curlib.keys()
- sortlist.sort()
- for sk in sortlist:
- v = curlib[sk]
- if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'):
- target = os.path.abspath(os.getcwd() + os.sep + root_build_dir + 'lib' + os.sep +lenv['LIBPREFIX'] + v + lenv['LIBSUFFIX'])
- else:
- target = os.path.abspath(root_build_dir + 'lib' + os.sep +lenv['LIBPREFIX'] + v + lenv['LIBSUFFIX'])
- lst.append(target)
-
- return lst
-
-## TODO: static linking
-def setup_staticlibs(lenv):
- statlibs = [
- #here libs for static linking
- ]
-
- libincs = []
-
- if lenv['WITH_BF_FFMPEG']:
- libincs += Split(lenv['BF_FFMPEG_LIBPATH'])
-
- libincs.extend([
- lenv['BF_OPENGL_LIBPATH'],
- lenv['BF_JPEG_LIBPATH'],
- lenv['BF_ZLIB_LIBPATH'],
- lenv['BF_PNG_LIBPATH'],
- lenv['BF_ICONV_LIBPATH']
- ])
-
- if lenv['WITH_BF_STATICJPEG']:
- statlibs += Split(lenv['BF_JPEG_LIB_STATIC'])
- if lenv['WITH_BF_STATICPNG']:
- statlibs += Split(lenv['BF_PNG_LIB_STATIC'])
-
- libincs += Split(lenv['BF_FREETYPE_LIBPATH'])
- if lenv['WITH_BF_PYTHON']:
- libincs += Split(lenv['BF_PYTHON_LIBPATH'])
- if lenv['WITH_BF_SDL'] and not lenv['WITH_BF_SDL_DYNLOAD']:
- libincs += Split(lenv['BF_SDL_LIBPATH'])
- if lenv['WITH_BF_JACK'] and not lenv['WITH_BF_JACK_DYNLOAD']:
- libincs += Split(lenv['BF_JACK_LIBPATH'])
- if lenv['WITH_BF_SNDFILE']:
- libincs += Split(lenv['BF_SNDFILE_LIBPATH'])
- if lenv['WITH_BF_TIFF']:
- libincs += Split(lenv['BF_TIFF_LIBPATH'])
- if lenv['WITH_BF_STATICTIFF']:
- statlibs += Split(lenv['BF_TIFF_LIB_STATIC'])
- if lenv['WITH_BF_FFTW3']:
- libincs += Split(lenv['BF_FFTW3_LIBPATH'])
- if lenv['WITH_BF_STATICFFTW3']:
- statlibs += Split(lenv['BF_FFTW3_LIB_STATIC'])
- '''
- if lenv['WITH_BF_ELTOPO']:
- libincs += Split(lenv['BF_LAPACK_LIBPATH'])
- if lenv['WITH_BF_STATICLAPACK']:
- statlibs += Split(lenv['BF_LAPACK_LIB_STATIC'])
- '''
- if lenv['WITH_BF_FFMPEG'] and lenv['WITH_BF_STATICFFMPEG']:
- statlibs += Split(lenv['BF_FFMPEG_LIB_STATIC'])
- if lenv['WITH_BF_INTERNATIONAL']:
- if lenv['WITH_BF_FREETYPE_STATIC']:
- statlibs += Split(lenv['BF_FREETYPE_LIB_STATIC'])
- if lenv['WITH_BF_OPENAL']:
- libincs += Split(lenv['BF_OPENAL_LIBPATH'])
- if lenv['WITH_BF_STATICOPENAL']:
- statlibs += Split(lenv['BF_OPENAL_LIB_STATIC'])
- if lenv['WITH_BF_STATICOPENGL']:
- statlibs += Split(lenv['BF_OPENGL_LIB_STATIC'])
- if lenv['WITH_BF_STATICCXX']:
- statlibs += Split(lenv['BF_CXX_LIB_STATIC'])
-
- if lenv['WITH_BF_PYTHON'] and lenv['WITH_BF_STATICPYTHON']:
- statlibs += Split(lenv['BF_PYTHON_LIB_STATIC'])
-
- if lenv['WITH_BF_SNDFILE'] and lenv['WITH_BF_STATICSNDFILE']:
- statlibs += Split(lenv['BF_SNDFILE_LIB_STATIC'])
-
- if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
- libincs += Split(lenv['BF_PTHREADS_LIBPATH'])
-
- if lenv['WITH_BF_COLLADA']:
- libincs += Split(lenv['BF_OPENCOLLADA_LIBPATH'])
- if lenv['OURPLATFORM'] not in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
- libincs += Split(lenv['BF_PCRE_LIBPATH'])
- libincs += Split(lenv['BF_EXPAT_LIBPATH'])
- if lenv['WITH_BF_STATICOPENCOLLADA']:
- statlibs += Split(lenv['BF_OPENCOLLADA_LIB_STATIC'])
-
- if lenv['WITH_BF_OPENMP']:
- if lenv['OURPLATFORM'] == 'linuxcross':
- libincs += Split(lenv['BF_OPENMP_LIBPATH'])
- if lenv['WITH_BF_STATICOPENMP']:
- statlibs += Split(lenv['BF_OPENMP_LIB_STATIC'])
-
- if lenv['WITH_BF_OIIO']:
- libincs += Split(lenv['BF_OIIO_LIBPATH'])
- if lenv['WITH_BF_STATICOIIO']:
- statlibs += Split(lenv['BF_OIIO_LIB_STATIC'])
- if lenv['WITH_BF_OPENEXR']:
- libincs += Split(lenv['BF_OPENEXR_LIBPATH'])
- if lenv['WITH_BF_STATICOPENEXR']:
- statlibs += Split(lenv['BF_OPENEXR_LIB_STATIC'])
- if lenv['WITH_BF_ZLIB'] and lenv['WITH_BF_STATICZLIB']:
- statlibs += Split(lenv['BF_ZLIB_LIB_STATIC'])
-
- if lenv['WITH_BF_OCIO']:
- libincs += Split(lenv['BF_OCIO_LIBPATH'])
- if lenv['WITH_BF_STATICOCIO']:
- statlibs += Split(lenv['BF_OCIO_LIB_STATIC'])
-
- if lenv['WITH_BF_CYCLES_OSL']:
- libincs += Split(lenv['BF_OSL_LIBPATH'])
- if lenv['WITH_BF_STATICOSL']:
- statlibs += Split(lenv['BF_OSL_LIB_STATIC'])
-
- if lenv['WITH_BF_BOOST']:
- libincs += Split(lenv['BF_BOOST_LIBPATH'])
- if lenv['WITH_BF_STATICBOOST']:
- statlibs += Split(lenv['BF_BOOST_LIB_STATIC'])
-
- if lenv['WITH_BF_LLVM']:
- libincs += Split(lenv['BF_LLVM_LIBPATH'])
- if lenv['WITH_BF_STATICLLVM']:
- statlibs += Split(lenv['BF_LLVM_LIB_STATIC'])
-
- if lenv['WITH_BF_JEMALLOC']:
- libincs += Split(lenv['BF_JEMALLOC_LIBPATH'])
- if lenv['WITH_BF_STATICJEMALLOC']:
- statlibs += Split(lenv['BF_JEMALLOC_LIB_STATIC'])
-
- if lenv['OURPLATFORM']=='linux':
- if lenv['WITH_BF_3DMOUSE']:
- libincs += Split(lenv['BF_3DMOUSE_LIBPATH'])
- if lenv['WITH_BF_STATIC3DMOUSE']:
- statlibs += Split(lenv['BF_3DMOUSE_LIB_STATIC'])
-
- if lenv['WITH_BF_OPENSUBDIV']:
- libincs += Split(lenv['BF_OPENSUBDIV_LIBPATH'])
- if lenv['WITH_BF_STATICOPENSUBDIV']:
- statlibs += Split(lenv['BF_OPENSUBDIV_LIB_STATIC'])
-
- # setting this last so any overriding of manually libs could be handled
- if lenv['OURPLATFORM'] not in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross', 'win64-mingw'):
- # We must remove any previous items defining this path, for same reason stated above!
- libincs = [e for e in libincs if SCons.Subst.scons_subst(e, lenv, gvars=lenv.Dictionary()) != "/usr/lib"]
- libincs.append('/usr/lib')
-
- # Hack to pass OSD libraries to linker before extern_{clew,cuew}
- # Here we only store library path, actual library name will be added in setup_syslibs()
- for syslib in create_blender_liblist(lenv, 'system'):
- libincs.append(os.path.dirname(syslib))
-
- return statlibs, libincs
-
-def setup_syslibs(lenv):
- syslibs = []
-
- if not lenv['WITH_BF_FREETYPE_STATIC']:
- syslibs += Split(lenv['BF_FREETYPE_LIB'])
- if lenv['WITH_BF_PYTHON'] and not lenv['WITH_BF_STATICPYTHON']:
- if lenv['BF_DEBUG'] and lenv['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw', 'win64-mingw'):
- syslibs.append(lenv['BF_PYTHON_LIB']+'_d')
- else:
- syslibs.append(lenv['BF_PYTHON_LIB'])
- if lenv['WITH_BF_OPENAL']:
- if not lenv['WITH_BF_STATICOPENAL']:
- syslibs += Split(lenv['BF_OPENAL_LIB'])
- if lenv['WITH_BF_OPENMP'] and lenv['CC'] != 'icc' and lenv['C_COMPILER_ID'] != 'clang' and not lenv['WITH_BF_STATICOPENMP']:
- if lenv['CC'] == 'cl.exe':
- syslibs += ['vcomp']
- else:
- syslibs += ['gomp']
- if lenv['WITH_BF_ICONV']:
- syslibs += Split(lenv['BF_ICONV_LIB'])
- if lenv['WITH_BF_OIIO']:
- if not lenv['WITH_BF_STATICOIIO']:
- syslibs += Split(lenv['BF_OIIO_LIB'])
-
- if lenv['WITH_BF_OCIO']:
- if not lenv['WITH_BF_STATICOCIO']:
- syslibs += Split(lenv['BF_OCIO_LIB'])
-
- if lenv['WITH_BF_OPENEXR'] and not lenv['WITH_BF_STATICOPENEXR']:
- syslibs += Split(lenv['BF_OPENEXR_LIB'])
- if lenv['WITH_BF_ZLIB'] and not lenv['WITH_BF_STATICZLIB']:
- syslibs += Split(lenv['BF_ZLIB_LIB'])
- if lenv['WITH_BF_TIFF'] and not lenv['WITH_BF_STATICTIFF']:
- syslibs += Split(lenv['BF_TIFF_LIB'])
- if lenv['WITH_BF_FFMPEG'] and not lenv['WITH_BF_STATICFFMPEG']:
- syslibs += Split(lenv['BF_FFMPEG_LIB'])
- if lenv['WITH_BF_OGG']:
- syslibs += Split(lenv['BF_OGG_LIB'])
- if lenv['WITH_BF_JACK'] and not lenv['WITH_BF_JACK_DYNLOAD']:
- syslibs += Split(lenv['BF_JACK_LIB'])
- if lenv['WITH_BF_SNDFILE'] and not lenv['WITH_BF_STATICSNDFILE']:
- syslibs += Split(lenv['BF_SNDFILE_LIB'])
- if lenv['WITH_BF_FFTW3'] and not lenv['WITH_BF_STATICFFTW3']:
- syslibs += Split(lenv['BF_FFTW3_LIB'])
- '''
- if lenv['WITH_BF_ELTOPO']:
- syslibs += Split(lenv['BF_LAPACK_LIB'])
- '''
- if lenv['WITH_BF_SDL'] and not lenv['WITH_BF_SDL_DYNLOAD']:
- syslibs += Split(lenv['BF_SDL_LIB'])
- if not lenv['WITH_BF_STATICOPENGL']:
- syslibs += Split(lenv['BF_OPENGL_LIB'])
- if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw','linuxcross', 'win64-vc', 'win64-mingw'):
- syslibs += Split(lenv['BF_PTHREADS_LIB'])
- if lenv['WITH_BF_COLLADA'] and not lenv['WITH_BF_STATICOPENCOLLADA']:
- syslibs.append(lenv['BF_PCRE_LIB'])
- if lenv['BF_DEBUG'] and (lenv['OURPLATFORM'] != 'linux'):
- syslibs += [colladalib+'_d' for colladalib in Split(lenv['BF_OPENCOLLADA_LIB'])]
- else:
- syslibs += Split(lenv['BF_OPENCOLLADA_LIB'])
- syslibs.append(lenv['BF_EXPAT_LIB'])
-
- if lenv['WITH_BF_JEMALLOC']:
- if not lenv['WITH_BF_STATICJEMALLOC']:
- syslibs += Split(lenv['BF_JEMALLOC_LIB'])
-
- if lenv['OURPLATFORM']=='linux':
- if lenv['WITH_BF_3DMOUSE']:
- if not lenv['WITH_BF_STATIC3DMOUSE']:
- syslibs += Split(lenv['BF_3DMOUSE_LIB'])
-
- if lenv['WITH_BF_CYCLES_OSL'] and not lenv['WITH_BF_STATICOSL']:
- syslibs += Split(lenv['BF_OSL_LIB'])
-
- if lenv['WITH_BF_BOOST'] and not lenv['WITH_BF_STATICBOOST']:
- syslibs += Split(lenv['BF_BOOST_LIB'])
-
- if lenv['WITH_BF_INTERNATIONAL']:
- syslibs += Split(lenv['BF_BOOST_LIB_INTERNATIONAL'])
-
- if lenv['WITH_BF_LLVM'] and not lenv['WITH_BF_STATICLLVM']:
- syslibs += Split(lenv['BF_LLVM_LIB'])
-
- if not lenv['WITH_BF_STATICJPEG']:
- syslibs += Split(lenv['BF_JPEG_LIB'])
-
- if not lenv['WITH_BF_STATICPNG']:
- syslibs += Split(lenv['BF_PNG_LIB'])
-
- if lenv['WITH_BF_OPENSUBDIV']:
- if not lenv['WITH_BF_STATICOPENSUBDIV']:
- if lenv['BF_DEBUG'] and lenv['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw', 'win64-mingw'):
- syslibs += [osdlib+'_d' for osdlib in Split(lenv['BF_OPENSUBDIV_LIB'])]
- else:
- syslibs += Split(lenv['BF_OPENSUBDIV_LIB'])
-
- # Hack to pass OSD libraries to linker before extern_{clew,cuew}
- for syslib in create_blender_liblist(lenv, 'system'):
- syslibs.append(os.path.basename(syslib))
-
- syslibs += 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
- curlib = libs[t]
- sortlist = curlib.keys()
- sortlist.sort()
-
- for sk in sortlist:
- v = curlib[sk]
- #for p,v in sorted(libs[t].iteritems()):
- print "\t\t",new_priority, v
- new_priority += 5
-
-# emits the necessary file objects for creator.c, to be used in creating
-# the final blender executable
-def creator(env):
- sources = ['creator.c']# + Blender.buildinfo(env, "dynamic") + Blender.resources
-
- incs = ['#/intern/guardedalloc', '#/source/blender/blenlib', '#/source/blender/blenkernel', '#/source/blender/depsgraph', '#/source/blender/editors/include', '#/source/blender/blenloader', '#/source/blender/imbuf', '#/source/blender/renderconverter', '#/source/blender/render/extern/include', '#/source/blender/windowmanager', '#/source/blender/makesdna', '#/source/blender/makesrna', '#/source/gameengine/BlenderRoutines', '#/extern/glew/include', '#/source/blender/gpu', env['BF_OPENGL_INC']]
-
- defs = []
-
- if env['WITH_BF_BINRELOC']:
- incs.append('#/extern/binreloc/include')
- defs.append('WITH_BINRELOC')
-
- if env['WITH_BF_SDL']:
- if env['WITH_BF_SDL_DYNLOAD']:
- defs.append('WITH_SDL_DYNLOAD')
- incs.append('#/extern/sdlew/include')
- defs.append('WITH_SDL')
-
- if env['WITH_BF_LIBMV']:
- incs.append('#/extern/libmv')
- defs.append('WITH_LIBMV')
-
- if env['WITH_BF_CYCLES'] and env['WITH_BF_CYCLES_LOGGING']:
- incs.append('#/intern/cycles/blender')
- defs.append('WITH_CYCLES_LOGGING')
-
- if env['WITH_BF_FFMPEG']:
- defs.append('WITH_FFMPEG')
-
- if env['WITH_BF_PYTHON']:
- incs.append('#/source/blender/python')
- defs.append('WITH_PYTHON')
- if env['BF_DEBUG']:
- defs.append('_DEBUG')
-
- if env['WITH_BF_FREESTYLE']:
- incs.append('#/source/blender/freestyle')
- defs.append('WITH_FREESTYLE')
-
- if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
- incs.append(env['BF_PTHREADS_INC'])
- incs.append('#/intern/utfconv')
-
- env.Append(CPPDEFINES=defs)
- env.Append(CPPPATH=incs)
- obj = [env.Object(root_build_dir+'source/creator/creator/creator', ['#source/creator/creator.c'])]
-
- return obj
-
-## TODO: see if this can be made in an emitter
-def buildinfo(lenv, build_type):
- """
- Generate a buildinfo object
- """
- import subprocess
-
- build_date = time.strftime ("%Y-%m-%d")
- build_time = time.strftime ("%H:%M:%S")
-
- if os.path.isdir(os.path.abspath('.git')):
- try:
- build_commit_timestamp = btools.get_command_output(args=['git', 'log', '-1', '--format=%ct']).strip()
- except OSError:
- build_commit_timestamp = None
- if not build_commit_timestamp:
- # Git command not found
- build_hash = 'unknown'
- build_commit_timestamp = '0'
- build_branch = 'unknown'
- else:
- no_upstream = False
-
- try :
- build_hash = btools.get_command_output(['git', 'rev-parse', '--short', '@{u}'], stderr=subprocess.STDOUT).strip()
- except subprocess.CalledProcessError:
- # assume branch has no upstream configured
- build_hash = btools.get_command_output(['git', 'rev-parse', '--short', 'HEAD']).strip()
- no_upstream = True
-
- build_branch = btools.get_command_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).strip()
-
- if build_branch == 'HEAD':
- master_check = btools.get_command_output(['git', 'branch', '--list', 'master', '--contains', build_hash]).strip()
- if master_check == 'master':
- build_branch = 'master'
- else:
- head_hash = btools.get_command_output(['git', 'rev-parse', 'HEAD']).strip()
- tag_hashes = btools.get_command_output(['git', 'show-ref', '--tags', '-d'])
- if tag_hashes.find(head_hash) != -1:
- build_branch = 'master'
-
- if not no_upstream:
- older_commits = btools.get_command_output(['git', 'log', '--oneline', 'HEAD..@{u}']).strip()
- if older_commits:
- build_hash = btools.get_command_output(['git', 'rev-parse', '--short', 'HEAD']).strip()
-
- # ## Check for local modifications
- has_local_changes = False
-
- # Update GIT index before getting dirty files
- os.system('git update-index -q --refresh')
- changed_files = btools.get_command_output(['git', 'diff-index', '--name-only', 'HEAD', '--']).strip()
-
- if changed_files:
- has_local_changes = True
- elif no_upstream == False:
- unpushed_log = btools.get_command_output(['git', 'log', '--oneline', '@{u}..']).strip()
- has_local_changes = unpushed_log != ''
-
- if build_branch.startswith('blender-v'):
- build_branch = 'master'
-
- if has_local_changes:
- build_branch += ' (modified)'
- else:
- build_hash = 'unknown'
- build_commit_timestamp = '0'
- build_branch = 'unknown'
-
- if lenv['BF_DEBUG']:
- build_type = "Debug"
- build_cflags = ' '.join(lenv['CFLAGS'] + lenv['CCFLAGS'] + lenv['BF_DEBUG_CCFLAGS'] + lenv['CPPFLAGS'])
- build_cxxflags = ' '.join(lenv['CCFLAGS'] + lenv['CXXFLAGS'] + lenv['CPPFLAGS'])
- else:
- build_type = "Release"
- build_cflags = ' '.join(lenv['CFLAGS'] + lenv['CCFLAGS'] + lenv['REL_CFLAGS'] + lenv['REL_CCFLAGS'] + lenv['CPPFLAGS'])
- build_cxxflags = ' '.join(lenv['CCFLAGS'] + lenv['CXXFLAGS'] + lenv['REL_CXXFLAGS'] + lenv['REL_CCFLAGS'] + lenv['CPPFLAGS'])
-
- build_linkflags = ' '.join(lenv['PLATFORM_LINKFLAGS'])
-
- obj = []
- if lenv['BF_BUILDINFO']:
- lenv.Append (CPPDEFINES = ['BUILD_TIME=\\"%s\\"'%(build_time),
- 'BUILD_DATE=\\"%s\\"'%(build_date),
- 'BUILD_TYPE=\\"%s\\"'%(build_type),
- 'BUILD_HASH=\\"%s\\"'%(build_hash),
- 'BUILD_COMMIT_TIMESTAMP=%s'%(build_commit_timestamp),
- 'BUILD_BRANCH=\\"%s\\"'%(build_branch),
- 'WITH_BUILDINFO',
- 'BUILD_PLATFORM=\\"%s:%s\\"'%(platform.system(), platform.architecture()[0]),
- 'BUILD_CFLAGS=\\"%s\\"'%(build_cflags),
- 'BUILD_CXXFLAGS=\\"%s\\"'%(build_cxxflags),
- 'BUILD_LINKFLAGS=\\"%s\\"'%(build_linkflags),
- 'BUILD_SYSTEM=\\"SCons\\"'
- ])
-
- lenv.Append (CPPPATH = [root_build_dir+'source/blender/blenkernel'])
-
- obj = [lenv.Object (root_build_dir+'source/creator/%s_buildinfo'%build_type, ['#source/creator/buildinfo.c'])]
-
- return obj
-
-##### END LIB STUFF ############
-
-##### ACTION STUFF #############
-
-def my_print_cmd_line(self, s, target, source, env):
- sys.stdout.write(' ' * 70 + '\r')
- sys.stdout.flush()
- sys.stdout.write(s + "\r")
- sys.stdout.flush()
-
-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)
- static_ob.add_action('.cc', mycppaction)
- shared_ob.add_action('.c', myshcaction)
- shared_ob.add_action('.cc', 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
- if env['BF_LINE_OVERWRITE']:
- SCons.Action._ActionAction.print_cmd_line = my_print_cmd_line
-
-def untar_pybundle(from_tar,to_dir,exclude_re):
- tar= tarfile.open(from_tar, mode='r')
- exclude_re= list(exclude_re) #single re object or list of re objects
- debug= 0 #list files instead of unpacking
- good= []
- if debug: print '\nFiles not being unpacked:\n'
- for name in tar.getnames():
- is_bad= 0
- for r in exclude_re:
- if r.match(name):
- is_bad=1
- if debug: print name
- break
- if not is_bad:
- good.append(tar.getmember(name))
- if debug:
- print '\nFiles being unpacked:\n'
- for g in good:
- print g
- else:
- tar.extractall(to_dir, good)
-
-def my_winpybundle_print(target, source, env):
- pass
-
-def WinPyBundle(target=None, source=None, env=None):
- import re
- py_tar = env.subst(env['LCGDIR']).lstrip("#")
- if env['BF_DEBUG']:
- py_tar+= '/release/python' + env['BF_PYTHON_VERSION'].replace('.','') + '_d.tar.gz'
- else:
- py_tar+= '/release/python' + env['BF_PYTHON_VERSION'].replace('.','') + '.tar.gz'
-
- py_target = env.subst(env['BF_INSTALLDIR']).lstrip("#")
- py_target = os.path.join(py_target, VERSION, 'python')
- def printexception(func,path,ex):
- if os.path.exists(path): #do not report if path does not exist. eg on a fresh build.
- print str(func) + ' failed on ' + str(path)
- print "Trying to remove existing py bundle."
- shutil.rmtree(py_target, False, printexception)
- exclude_re=[re.compile('.*/test'),
- re.compile('^test'),
- re.compile('^distutils'),
- re.compile('^idlelib'),
- re.compile('^lib2to3'),
- re.compile('^tkinter'),
- re.compile('^_tkinter_d.pyd'),
- re.compile('^turtledemo'),
- re.compile('^turtle.py'),
- ]
-
- print "Unpacking '" + py_tar + "' to '" + py_target + "'"
- untar_pybundle(py_tar,py_target,exclude_re)
-
- # -------------
- # Extract Numpy
- if env['WITH_BF_PYTHON_INSTALL_NUMPY']:
- py_tar = env.subst(env['LCGDIR']).lstrip("#")
- py_tar += '/release/python' + env['BF_PYTHON_VERSION'].replace('.','') + '_numpy_1.9.tar.gz'
-
- py_target = env.subst(env['BF_INSTALLDIR']).lstrip("#")
- py_target = os.path.join(py_target, VERSION, 'python', 'lib', 'site-packages')
- # rmtree handled above
- # files are cleaned up in their archive
- exclude_re = []
- print("Unpacking '" + py_tar + "' to '" + py_target + "'")
- untar_pybundle(py_tar, py_target, exclude_re)
-
- # --------------------
- # Copy 'site-packages'
- py_dir = env.subst(env['LCGDIR']).lstrip("#")
- py_dir += '/release/site-packages'
- # grr, we have to do one by one because the dir exists
- for f in os.listdir(py_dir):
- if f == '.svn':
- continue
- fn_src = os.path.join(py_dir, f)
- fn_dst = os.path.join(py_target, f)
-
- shutil.rmtree(fn_dst, False, printexception)
- shutil.copytree(fn_src, fn_dst)
-
-
-
-def my_appit_print(target, source, env):
- a = '%s' % (target[0])
- d, f = os.path.split(a)
- return "making bundle for " + f
-
-def AppIt(target=None, source=None, env=None):
- import shutil
- import commands
- import os.path
-
-
- a = '%s' % (target[0])
- builddir, b = os.path.split(a)
- libdir = env['LCGDIR'][1:]
- osxarch = env['MACOSX_ARCHITECTURE']
- installdir = env['BF_INSTALLDIR']
- print("compiled architecture: %s"%(osxarch))
- print("Installing to %s"%(installdir))
- # TODO, use tar.
- python_zip = 'python_' + osxarch + '.zip' # set specific python_arch.zip
- if env['WITH_OSX_STATICPYTHON']:
- print("unzipping to app-bundle: %s"%(python_zip))
- else:
- print("dynamic build - make sure to have python3.x-framework installed")
- bldroot = env.Dir('.').abspath
- binary = env['BINARYKIND']
-
- sourcedir = bldroot + '/release/darwin/%s.app' % binary
- sourceinfo = bldroot + "/release/darwin/%s.app/Contents/Info.plist"%binary
- targetinfo = installdir +'/' + "%s.app/Contents/Info.plist"%binary
- cmd = installdir + '/' +'%s.app'%binary
-
- if os.path.isdir(cmd):
- shutil.rmtree(cmd)
- shutil.copytree(sourcedir, cmd)
- cmd = "cat %s | sed s/\$\{MACOSX_BUNDLE_SHORT_VERSION_STRING\}/%s/ | "%(sourceinfo,VERSION)
- cmd += "sed s/\$\{MACOSX_BUNDLE_LONG_VERSION_STRING\}/%s,\ %s/g > %s"%(VERSION,time.strftime("%Y-%b-%d"),targetinfo)
- commands.getoutput(cmd)
- cmd = 'cp %s/%s %s/%s.app/Contents/MacOS/%s'%(builddir, binary,installdir, binary, binary)
- commands.getoutput(cmd)
- cmd = 'mkdir %s/%s.app/Contents/Resources/%s/'%(installdir, binary, VERSION)
- commands.getoutput(cmd)
- cmd = installdir + '/%s.app/Contents/MacOS/%s'%(binary,VERSION)
-
- # blenderplayer doesn't need all the files
- if binary == 'blender':
- cmd = 'mkdir %s/%s.app/Contents/Resources/%s/datafiles'%(installdir, binary, VERSION)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/release/datafiles/fonts %s/%s.app/Contents/Resources/%s/datafiles/'%(bldroot,installdir,binary,VERSION)
- commands.getoutput(cmd)
- mo_dir = os.path.join(builddir[:-4], "locale")
- for f in os.listdir(mo_dir):
- cmd = 'ditto %s/%s %s/%s.app/Contents/Resources/%s/datafiles/locale/%s/LC_MESSAGES/blender.mo'%(mo_dir, f, installdir, binary, VERSION, f[:-3])
- commands.getoutput(cmd)
- cmd = 'cp %s/release/datafiles/locale/languages %s/%s.app/Contents/Resources/%s/datafiles/locale/'%(bldroot, installdir, binary, VERSION)
- commands.getoutput(cmd)
-
- if env['WITH_BF_OCIO']:
- cmd = 'cp -R %s/release/datafiles/colormanagement %s/%s.app/Contents/Resources/%s/datafiles/'%(bldroot,installdir,binary,VERSION)
- commands.getoutput(cmd)
-
- cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/Resources/%s/'%(bldroot,installdir,binary,VERSION)
- commands.getoutput(cmd)
-
- if VERSION_RELEASE_CYCLE == "release":
- cmd = 'rm -rf %s/%s.app/Contents/Resources/%s/scripts/addons_contrib'%(installdir,binary,VERSION)
- commands.getoutput(cmd)
-
- if env['WITH_BF_CYCLES']:
- croot = '%s/intern/cycles' % (bldroot)
- cinstalldir = '%s/%s.app/Contents/Resources/%s/scripts/addons/cycles' % (installdir,binary,VERSION)
-
- cmd = 'mkdir %s' % (cinstalldir)
- commands.getoutput(cmd)
- cmd = 'mkdir %s/kernel' % (cinstalldir)
- commands.getoutput(cmd)
- cmd = 'mkdir %s/lib' % (cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/blender/addon/*.py %s/' % (croot, cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/doc/license %s/license' % (croot, cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/kernel/*.h %s/kernel/*.cl %s/kernel/*.cu %s/kernel/' % (croot, croot, croot, cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/kernel/svm %s/kernel/closure %s/kernel/geom %s/kernel/split %s/kernel/kernels %s/util/util_color.h %s/util/util_half.h %s/util/util_math.h %s/util/util_math_fast.h %s/util/util_transform.h %s/util/util_types.h %s/util/util_atomic.h %s/kernel/' % (croot, croot, croot, croot, croot, croot, croot, croot, croot, croot, croot, croot, cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/../intern/cycles/kernel/*.cubin %s/lib/' % (builddir, cinstalldir)
- commands.getoutput(cmd)
-
- if env['WITH_BF_CYCLES_OSL']:
- cmd = 'mkdir %s/shader' % (cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/kernel/shaders/*.h %s/shader' % (croot, cinstalldir)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/../intern/cycles/kernel/shaders/*.oso %s/shader' % (builddir, cinstalldir)
- commands.getoutput(cmd)
-
- if env['WITH_OSX_STATICPYTHON']:
- cmd = 'mkdir %s/%s.app/Contents/Resources/%s/python/'%(installdir,binary, VERSION)
- commands.getoutput(cmd)
- cmd = 'unzip -q %s/release/%s -d %s/%s.app/Contents/Resources/%s/python/'%(libdir,python_zip,installdir,binary,VERSION)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/release/site-packages/ %s/%s.app/Contents/Resources/%s/python/lib/python%s/site-packages/'%(libdir,installdir,binary,VERSION,env['BF_PYTHON_VERSION'])
- commands.getoutput(cmd)
- cmd = 'cp -r %s/python/bin -d %s/%s.app/Contents/Resources/%s/python/'%(libdir,installdir,binary,VERSION)
- commands.getoutput(cmd)
-
- cmd = 'chmod +x %s/%s.app/Contents/MacOS/%s'%(installdir,binary, binary)
- commands.getoutput(cmd)
- cmd = 'find %s/%s.app -name .svn -prune -exec rm -rf {} \;'%(installdir, binary)
- commands.getoutput(cmd)
- cmd = 'find %s/%s.app -name .DS_Store -exec rm -rf {} \;'%(installdir, binary)
- commands.getoutput(cmd)
- cmd = 'find %s/%s.app -name __MACOSX -exec rm -rf {} \;'%(installdir, binary)
- commands.getoutput(cmd)
- cmd = 'SetFile -d "%s)" -m "%s)" %s/%s.app'%(time.strftime("%m/%d/%Y %H:%M"),time.strftime("%m/%d/%Y %H:%M"),installdir,binary) # give the bundles actual creation/modification date
- commands.getoutput(cmd)
- if env['WITH_BF_OPENMP']:
- if env['C_COMPILER_ID'] == 'gcc' and env['CCVERSION'] >= '4.6.1': # for correct errorhandling with gcc >= 4.6.1 we need the gcc.dylib and gomp.dylib to link, thus distribute in app-bundle
- print "Bundling libgcc and libgomp"
- instname = env['BF_CXX']
- cmd = 'ditto --arch %s %s/lib/libgcc_s.1.dylib %s/%s.app/Contents/Resources/lib/'%(osxarch, instname, installdir, binary) # copy libgcc
- commands.getoutput(cmd)
- cmd = 'install_name_tool -id @executable_path/../Resources/lib/libgcc_s.1.dylib %s/%s.app/Contents/Resources/lib/libgcc_s.1.dylib'%(installdir, binary) # change id of libgcc
- commands.getoutput(cmd)
- cmd = 'ditto --arch %s %s/lib/libgomp.1.dylib %s/%s.app/Contents/Resources/lib/'%(osxarch, instname, installdir, binary) # copy libgomp
- commands.getoutput(cmd)
- cmd = 'install_name_tool -id @executable_path/../Resources/lib/libgomp.1.dylib %s/%s.app/Contents/Resources/lib/libgomp.1.dylib'%(installdir, binary) # change id of libgomp
- commands.getoutput(cmd)
- cmd = 'install_name_tool -change %s/lib/libgcc_s.1.dylib @executable_path/../Resources/lib/libgcc_s.1.dylib %s/%s.app/Contents/Resources/lib/libgomp.1.dylib'%(instname, installdir, binary) # change ref to libgcc
- commands.getoutput(cmd)
- cmd = 'install_name_tool -change %s/lib/libgcc_s.1.dylib @executable_path/../Resources/lib/libgcc_s.1.dylib %s/%s.app/Contents/MacOS/%s'%(instname, installdir, binary, binary) # change ref to libgcc ( blender )
- commands.getoutput(cmd)
- cmd = 'install_name_tool -change %s/lib/libgomp.1.dylib @executable_path/../Resources/lib/libgomp.1.dylib %s/%s.app/Contents/MacOS/%s'%(instname, installdir, binary, binary) # change ref to libgomp ( blender )
- commands.getoutput(cmd)
- if env['C_COMPILER_ID'] == 'clang' and env['CCVERSION'] >= '3.4':
- print "Bundling libiomp5"
- instname = env['LCGDIR'][1:] # made libiomp5 part of blender libs
- cmd = 'ditto --arch %s %s/openmp/lib/libiomp5.dylib %s/%s.app/Contents/Resources/lib/'%(osxarch, instname, installdir, binary) # copy libiomp5
- commands.getoutput(cmd)
- cmd = 'cp %s/openmp/LICENSE.txt %s/LICENSE-libiomp5.txt'%(instname, installdir) # copy libiomp5 license
- commands.getoutput(cmd)
-
-# extract copy system python, be sure to update other build systems
-# when making changes to the files that are copied.
-def my_unixpybundle_print(target, source, env):
- pass
-
-def UnixPyBundle(target=None, source=None, env=None):
- # Any Unix except osx
- #-- VERSION/python/lib/python3.1
-
- import commands
-
- def run(cmd):
- print 'Install command:', cmd
- commands.getoutput(cmd)
-
- dir = os.path.join(env['BF_INSTALLDIR'], VERSION)
-
- lib = env['BF_PYTHON_LIBPATH'].split(os.sep)[-1]
- target_lib = "lib64" if lib == "lib64" else "lib"
-
- py_src = env.subst( env['BF_PYTHON_LIBPATH'] + '/python'+env['BF_PYTHON_VERSION'] )
- py_target = env.subst( dir + '/python/' + target_lib + '/python'+env['BF_PYTHON_VERSION'] )
- py_target_bin = env.subst(dir + '/python/bin')
-
- # This is a bit weak, but dont install if its been installed before, makes rebuilds quite slow.
- if os.path.exists(py_target):
- print 'Using existing python from:'
- print '\t"%s"' % py_target
- print '\t(skipping copy)\n'
- return
-
- # Copied from source/creator/CMakeLists.txt, keep in sync.
- print 'Install python from:'
- print '\t"%s" into...' % py_src
- print '\t"%s"\n' % py_target
-
- run("rm -rf '%s'" % py_target)
- try:
- os.makedirs(os.path.dirname(py_target)) # the final part is copied
- except:
- pass
-
- # install the executable
- run("rm -rf '%s'" % py_target_bin)
- os.makedirs(py_target_bin)
- run("cp '%s' '%s'" % (env.subst(env['BF_PYTHON_BINARY']), py_target_bin))
-
- run("cp -R '%s' '%s'" % (py_src, os.path.dirname(py_target)))
- run("rm -rf '%s/distutils'" % py_target)
- run("rm -rf '%s/lib2to3'" % py_target)
- run("rm -rf '%s/config'" % py_target)
-
- for f in os.listdir(py_target):
- if f.startswith("config-"):
- run("rm -rf '%s/%s'" % (py_target, f))
-
- run("rm -rf '%s/site-packages'" % py_target)
- run("mkdir '%s/site-packages'" % py_target) # python needs it.'
- run("rm -rf '%s/idlelib'" % py_target)
- run("rm -rf '%s/tkinter'" % py_target)
- run("rm -rf '%s/turtledemo'" % py_target)
- run("rm -r '%s/turtle.py'" % py_target)
- run("rm -f '%s/lib-dynload/_tkinter.so'" % py_target)
-
- if env['WITH_BF_PYTHON_INSTALL_NUMPY']:
- numpy_src = py_src + "/site-packages/numpy"
- numpy_target = py_target + "/site-packages/numpy"
-
- if os.path.exists(numpy_src):
- print 'Install numpy from:'
- print '\t"%s" into...' % numpy_src
- print '\t"%s"\n' % numpy_target
-
- run("cp -R '%s' '%s'" % (numpy_src, os.path.dirname(numpy_target)))
- run("rm -rf '%s/distutils'" % numpy_target)
- run("rm -rf '%s/oldnumeric'" % numpy_target)
- run("rm -rf '%s/doc'" % numpy_target)
- run("rm -rf '%s/tests'" % numpy_target)
- run("rm -rf '%s/f2py'" % numpy_target)
- run("find '%s' -type d -name 'include' -prune -exec rm -rf {} ';'" % numpy_target)
- run("find '%s' -type d -name '*.h' -prune -exec rm -rf {} ';'" % numpy_target)
- run("find '%s' -type d -name '*.a' -prune -exec rm -rf {} ';'" % numpy_target)
- else:
- print 'Failed to find numpy at %s, skipping copying' % numpy_src
- del numpy_src, numpy_target
-
- if env['WITH_BF_PYTHON_INSTALL_REQUESTS']:
- requests_src = py_src + "/site-packages/requests"
- requests_target = py_target + "/site-packages/requests"
- if os.path.exists(requests_src):
- run("cp -R '%s' '%s'" % (requests_src, os.path.dirname(requests_target)))
- run("find '%s' -type d -name '*.pem -prune -exec rm -rf {} ';'" % requests_target)
- else:
- print('Failed to find requests at %s, skipping copying' % requests_src)
- del requests_src, requests_target
-
- run("find '%s' -type d -name 'test' -prune -exec rm -rf {} ';'" % py_target)
- run("find '%s' -type d -name '__pycache__' -exec rm -rf {} ';'" % py_target)
- run("find '%s' -name '*.py[co]' -exec rm -rf {} ';'" % py_target)
- run("find '%s' -name '*.so' -exec strip -s {} ';'" % py_target)
-
-#### END ACTION STUFF #########
-
-def bsc(env, target, source):
-
- bd = os.path.dirname(target[0].abspath)
- bscfile = '\"'+target[0].abspath+'\"'
- bscpathcollect = '\"'+bd + os.sep + '*.sbr\"'
- bscpathtmp = '\"'+bd + os.sep + 'bscmake.tmp\"'
-
- os.system('dir /b/s '+bscpathcollect+' >'+bscpathtmp)
-
- myfile = open(bscpathtmp[1:-1], 'r')
- lines = myfile.readlines()
- myfile.close()
-
- newfile = open(bscpathtmp[1:-1], 'w')
- for l in lines:
- newfile.write('\"'+l[:-1]+'\"\n')
- newfile.close()
-
- os.system('bscmake /nologo /n /o'+bscfile+' @'+bscpathtmp)
- os.system('del '+bscpathtmp)
-
-class BlenderEnvironment(SConsEnvironment):
-
- PyBundleActionAdded = False
-
- def BlenderRes(self=None, libname=None, source=None, libtype=['core'], priority=[100]):
- global libs
- if not self or not libname or not source:
- print bc.FAIL+'Cannot continue. Missing argument for BlenderRes '+libname+bc.ENDC
- self.Exit()
- if self['OURPLATFORM'] not in ('win32-vc','win32-mingw','linuxcross', 'win64-vc', 'win64-mingw'):
- print bc.FAIL+'BlenderRes is for windows only!'+bc.END
- self.Exit()
-
- print bc.HEADER+'Configuring resource '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC
- lenv = self.Clone()
- if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'):
- res = lenv.RES('#'+root_build_dir+'lib/'+libname, source)
- else:
- res = lenv.RES(root_build_dir+'lib/'+libname, source)
-
-
- SConsEnvironment.Default(self, res)
- resources.append(res)
-
- def BlenderLib(self=None, libname=None, sources=None, includes=[], defines=[], libtype='common', priority = 100, compileflags=None, cc_compileflags=None, cxx_compileflags=None, cc_compilerchange=None, cxx_compilerchange=None):
- global vcp
-
- # sanity check
- # run once in a while to check we dont have duplicates
- if 0:
- for name, dirs in (("source", sources), ("include", includes)):
- files_clean = [os.path.normpath(f) for f in dirs]
- files_clean_set = set(files_clean)
- if len(files_clean) != len(files_clean_set):
- for f in sorted(files_clean_set):
- if f != '.' and files_clean.count(f) > 1:
- raise Exception("Found duplicate %s %r" % (name, f))
- del name, dirs, files_clean, files_clean_set, f
- # end sanity check
-
- if not self or not libname or not sources:
- print bc.FAIL+'Cannot continue. Missing argument for BuildBlenderLib '+libname+bc.ENDC
- self.Exit()
-
- def list_substring(quickie, libname):
- for q in quickie:
- if q in libname:
- return True
- return False
-
- if list_substring(quickie, libname) or len(quickie)==0:
- if list_substring(quickdebug, libname):
- print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname +bc.ENDC+bc.OKBLUE+ " (debug mode)" + bc.ENDC
- else:
- print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname + bc.ENDC
- lenv = self.Clone()
- lenv.Append(CPPPATH=includes)
- lenv.Append(CPPDEFINES=defines)
- if lenv['BF_DEBUG'] or (libname in quickdebug):
- lenv.Append(CFLAGS = lenv['BF_DEBUG_CFLAGS'])
- lenv.Append(CCFLAGS = lenv['BF_DEBUG_CCFLAGS'])
- lenv.Append(CXXFLAGS = lenv['BF_DEBUG_CXXFLAGS'])
- else:
- lenv.Append(CFLAGS = lenv['REL_CFLAGS'])
- lenv.Append(CCFLAGS = lenv['REL_CCFLAGS'])
- lenv.Append(CXXFLAGS = lenv['REL_CXXFLAGS'])
- if lenv['BF_PROFILE']:
- lenv.Append(CFLAGS = lenv['BF_PROFILE_CFLAGS'])
- lenv.Append(CCFLAGS = lenv['BF_PROFILE_CCFLAGS'])
- lenv.Append(CXXFLAGS = lenv['BF_PROFILE_CXXFLAGS'])
- if compileflags:
- lenv.Replace(CFLAGS = compileflags)
- if cc_compileflags:
- lenv.Replace(CCFLAGS = cc_compileflags)
- if cxx_compileflags:
- lenv.Replace(CXXFLAGS = cxx_compileflags)
- if cc_compilerchange:
- lenv.Replace(CC = cc_compilerchange)
- if cxx_compilerchange:
- lenv.Replace(CXX = cxx_compilerchange)
- lenv.Append(CFLAGS = lenv['C_WARN'])
- lenv.Append(CCFLAGS = lenv['CC_WARN'])
- lenv.Append(CXXFLAGS = lenv['CXX_WARN'])
-
- if lenv['OURPLATFORM'] == 'win64-vc':
- lenv.Append(LINKFLAGS = ['/MACHINE:X64'])
-
- if lenv['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
- if lenv['BF_DEBUG']:
- lenv.Append(CCFLAGS = ['/MTd'])
- else:
- lenv.Append(CCFLAGS = ['/MT'])
-
- targetdir = root_build_dir+'lib/' + libname
- if not (root_build_dir[0]==os.sep or root_build_dir[1]==':'):
- targetdir = '#'+targetdir
- lib = lenv.Library(target= targetdir, source=sources)
- SConsEnvironment.Default(self, lib) # we add to default target, because this way we get some kind of progress info during build
- if self['BF_MSVS'] and self['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
- #if targetdir[0] == '#':
- # targetdir = targetdir[1:-1]
- print "! ",targetdir+ '.vcproj' # + self['MSVSPROJECTSUFFIX']
- vcproject = self.MSVSProject(target = targetdir + '.vcproj', # + self['MSVSPROJECTSUFFIX'],
- srcs = sources,
- buildtarget = lib,
- variant = 'Release',
- auto_build_solution=0)
- vcp.append(vcproject)
- SConsEnvironment.Default(self, vcproject)
- 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(self, libs, libtype, libname, priority)
-
- def BlenderProg(self=None, builddir=None, progname=None, sources=None, libs=None, libpath=None, binarykind=''):
- global vcp
- print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
- lenv = self.Clone()
- lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
- lenv.Append(LINKFLAGS = lenv['BF_PROGRAM_LINKFLAGS'])
- if lenv['OURPLATFORM'] in ('win32-mingw', 'win64-mingw', 'linuxcross', 'cygwin', 'linux'):
- lenv.Replace(LINK = '$CXX')
- if lenv['OURPLATFORM'] in ('win32-vc', 'cygwin', 'win64-vc'):
- if lenv['BF_DEBUG']:
- lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb','/NODEFAULTLIB:libcmt'])
- if lenv['OURPLATFORM']=='linux':
- if lenv['WITH_BF_PYTHON']:
- lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
- if lenv['OURPLATFORM']=='sunos5':
- if lenv['WITH_BF_PYTHON']:
- lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
- if lenv['CXX'].endswith('CC'):
- lenv.Replace(LINK = '$CXX')
- if lenv['OURPLATFORM']=='darwin':
- if lenv['WITH_BF_PYTHON']:
- lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
- lenv.Append(LINKFLAGS = lenv['BF_OPENGL_LINKFLAGS'])
- if lenv['BF_PROFILE']:
- lenv.Append(LINKFLAGS = lenv['BF_PROFILE_LINKFLAGS'])
- if root_build_dir[0]==os.sep or root_build_dir[1]==':':
- lenv.Append(LIBPATH=root_build_dir + '/lib')
- 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)
- if lenv['BF_DEBUG'] and lenv['OURPLATFORM'] in ('win32-vc', 'win64-vc') and lenv['BF_BSC']:
- f = lenv.File(progname + '.bsc', builddir)
- brs = lenv.Command(f, prog, [bsc])
- SConsEnvironment.Default(self, brs)
- SConsEnvironment.Default(self, prog)
- if self['BF_MSVS'] and self['OURPLATFORM'] in ('win32-vc', 'win64-vc') and progname == 'blender':
- print "! ",builddir + "/" + progname + '.sln'
- sln = self.MSVSProject(target = builddir + "/" + progname + '.sln',
- projects= vcp,
- variant = 'Release')
- SConsEnvironment.Default(self, sln)
- program_list.append(prog)
- if lenv['OURPLATFORM']=='darwin':
- lenv['BINARYKIND'] = binarykind
- lenv.AddPostAction(prog,Action(AppIt,strfunction=my_appit_print))
- elif os.sep == '/' and lenv['OURPLATFORM'] != 'linuxcross': # any unix (except cross-compilation)
- if lenv['WITH_BF_PYTHON']:
- if (not lenv['WITHOUT_BF_INSTALL'] and
- not lenv['WITHOUT_BF_PYTHON_INSTALL'] and
- not lenv['WITHOUT_BF_PYTHON_UNPACK'] and
- not BlenderEnvironment.PyBundleActionAdded):
- lenv.AddPostAction(prog,Action(UnixPyBundle,strfunction=my_unixpybundle_print))
- BlenderEnvironment.PyBundleActionAdded = True
- elif lenv['OURPLATFORM'].startswith('win') or lenv['OURPLATFORM'] == 'linuxcross': # windows or cross-compilation
- if lenv['WITH_BF_PYTHON']:
- if (not lenv['WITHOUT_BF_PYTHON_INSTALL'] and
- not lenv['WITHOUT_BF_PYTHON_UNPACK'] and
- not BlenderEnvironment.PyBundleActionAdded):
- lenv.AddPostAction(prog,Action(WinPyBundle,strfunction=my_winpybundle_print))
- BlenderEnvironment.PyBundleActionAdded = True
- return prog
-
- 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
diff --git a/build_files/scons/tools/__init__.py b/build_files/scons/tools/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/build_files/scons/tools/__init__.py
+++ /dev/null
diff --git a/build_files/scons/tools/bcolors.py b/build_files/scons/tools/bcolors.py
deleted file mode 100644
index b01bb781524..00000000000
--- a/build_files/scons/tools/bcolors.py
+++ /dev/null
@@ -1,16 +0,0 @@
-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 = ''
-
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py
deleted file mode 100644
index 0b85940d024..00000000000
--- a/build_files/scons/tools/btools.py
+++ /dev/null
@@ -1,918 +0,0 @@
-import os
-import os.path
-import SCons.Options
-
-import SCons.Variables
-try:
- import subprocess
-except ImportError:
- pass
-import string
-import shutil
-import sys
-
-Variables = SCons.Variables
-BoolVariable = SCons.Variables.BoolVariable
-
-def get_command_output(*popenargs, **kwargs):
- if hasattr(subprocess, "check_output"):
- return subprocess.check_output(*popenargs, **kwargs)
- if 'stdout' in kwargs:
- raise ValueError('stdout argument not allowed, it will be overridden.')
- process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
- output, unused_err = process.communicate()
- retcode = process.poll()
- if retcode:
- cmd = kwargs.get("args")
- if cmd is None:
- cmd = popenargs[0]
- raise subprocess.CalledProcessError(retcode, cmd)
- return output
-
-def get_version():
- import re
-
- fname = os.path.join(os.path.dirname(__file__), "..", "..", "..", "source", "blender", "blenkernel", "BKE_blender.h")
- ver_base = None
- ver_char = None
- ver_cycle = None
-
- re_ver = re.compile("^#\s*define\s+BLENDER_VERSION\s+([0-9]+)")
- re_ver_char = re.compile("^#\s*define\s+BLENDER_VERSION_CHAR\s*(\S*)") # optional arg
- re_ver_cycle = re.compile("^#\s*define\s+BLENDER_VERSION_CYCLE\s*(\S*)") # optional arg
-
- for l in open(fname, "r"):
- match = re_ver.match(l)
- if match:
- ver = int(match.group(1))
- ver_base = "%d.%d" % (ver / 100, ver % 100)
-
- match = re_ver_char.match(l)
- if match:
- ver_char = match.group(1)
- if ver_char == "BLENDER_CHAR_VERSION":
- ver_char = ""
-
- match = re_ver_cycle.match(l)
- if match:
- ver_cycle = match.group(1)
- if ver_cycle == "BLENDER_CYCLE_VERSION":
- ver_cycle = ""
-
- if (ver_base is not None) and (ver_char is not None) and (ver_cycle is not None):
- # eg '2.56a-beta'
- if ver_cycle != "release":
- ver_display = "%s%s-%s" % (ver_base, ver_char, ver_cycle)
- else:
- ver_display = "%s%s" % (ver_base, ver_char)
-
- return ver_base, ver_display, ver_cycle
-
- raise Exception("%s: missing version string" % fname)
-
-def get_hash():
- try:
- build_hash = get_command_output(['git', 'rev-parse', '--short', 'HEAD']).strip()
- except OSError:
- build_hash = None
- print("WARNING: could not use git to retrieve current Blender repository hash...")
- except subprocess.CalledProcessError as e:
- build_hash = None
- print("WARNING: git errored while retrieving current Blender repository hash (%d)..." % e.returncode)
- if build_hash == '' or build_hash == None:
- build_hash = 'UNKNOWN'
-
- return build_hash
-
-
-def checkEndian():
- return sys.byteorder
-
-
-# This is used in creating the local config directories
-VERSION, VERSION_DISPLAY, VERSION_RELEASE_CYCLE = get_version()
-HASH = get_hash()
-ENDIAN = checkEndian()
-
-
-def print_arguments(args, bc):
- if len(args):
- for k,v in args.iteritems():
- if type(v)==list:
- v = ' '.join(v)
- 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 = [
- 'WITH_BF_FREESTYLE', 'WITH_BF_PYTHON', 'WITH_BF_PYTHON_SAFETY', 'WITH_BF_PYTHON_SECURITY', 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'BF_PYTHON_LIBPATH_ARCH', 'WITH_BF_STATICPYTHON', 'WITH_OSX_STATICPYTHON', 'BF_PYTHON_LIB_STATIC', 'BF_PYTHON_DLL', 'BF_PYTHON_ABI_FLAGS',
- 'WITH_BF_AUDASPACE', 'BF_AUDASPACE_C_INC', 'BF_AUDASPACE_PY_INC', 'BF_AUDASPACE_DEF',
- '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', 'WITH_BF_SDL_DYNLOAD',
- 'WITH_BF_JACK', 'BF_JACK', 'BF_JACK_INC', 'BF_JACK_LIB', 'BF_JACK_LIBPATH', 'WITH_BF_JACK_DYNLOAD',
- 'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH', 'WITH_BF_STATICSNDFILE', 'BF_SNDFILE_LIB_STATIC',
- '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', 'WITH_BF_CINEON', 'WITH_BF_HDR',
- 'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG', 'BF_FFMPEG_INC', 'BF_FFMPEG_DLL',
- 'WITH_BF_STATICFFMPEG', 'BF_FFMPEG_LIB_STATIC',
- 'WITH_BF_OGG', 'BF_OGG', 'BF_OGG_LIB',
- 'WITH_BF_FRAMESERVER',
- 'WITH_BF_COMPOSITOR',
- 'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH', 'WITH_BF_STATICJPEG', 'BF_JPEG_LIB_STATIC',
- 'WITH_BF_OPENJPEG', 'BF_OPENJPEG', 'BF_OPENJPEG_INC', 'BF_OPENJPEG_LIB', 'BF_OPENJPEG_LIBPATH',
- 'WITH_BF_REDCODE', 'BF_REDCODE', 'BF_REDCODE_INC', 'BF_REDCODE_LIB', 'BF_REDCODE_LIBPATH',
- 'WITH_BF_PNG', 'BF_PNG', 'BF_PNG_INC', 'BF_PNG_LIB', 'BF_PNG_LIBPATH', 'WITH_BF_STATICPNG', 'BF_PNG_LIB_STATIC',
- 'WITH_BF_TIFF', 'BF_TIFF', 'BF_TIFF_INC', 'BF_TIFF_LIB', 'BF_TIFF_LIBPATH', 'WITH_BF_STATICTIFF', 'BF_TIFF_LIB_STATIC',
- 'WITH_BF_ZLIB', 'BF_ZLIB', 'BF_ZLIB_INC', 'BF_ZLIB_LIB', 'BF_ZLIB_LIBPATH', 'WITH_BF_STATICZLIB', 'BF_ZLIB_LIB_STATIC',
- 'WITH_BF_INTERNATIONAL',
- 'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',
- 'WITH_BF_GAMEENGINE',
- 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
- # 'WITH_BF_ELTOPO', # now only available in a branch
- 'BF_LAPACK', 'BF_LAPACK_LIB', 'BF_LAPACK_LIBPATH', 'BF_LAPACK_LIB_STATIC',
- 'BF_WINTAB', 'BF_WINTAB_INC',
- 'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH', 'BF_FREETYPE_LIB_STATIC', 'WITH_BF_FREETYPE_STATIC',
- '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_STATICFFTW3', 'BF_FFTW3_LIB_STATIC',
- 'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC',
- 'WITH_BF_EGL', 'WITH_BF_GLEW_ES', 'BF_GLEW_INC', 'WITH_BF_GL_PROFILE_CORE', 'WITH_BF_GL_PROFILE_COMPAT', 'WITH_BF_GL_PROFILE_ES20',
- 'WITH_BF_GLEW_MX', 'WITH_BF_GL_EGL', 'WITH_BF_GL_ANGLE',
-
- 'WITH_BF_COLLADA', 'BF_COLLADA', 'BF_COLLADA_INC', 'BF_COLLADA_LIB', 'BF_OPENCOLLADA', 'BF_OPENCOLLADA_INC', 'BF_OPENCOLLADA_LIB', 'BF_OPENCOLLADA_LIBPATH', 'BF_PCRE', 'BF_PCRE_LIB', 'BF_PCRE_LIBPATH', 'BF_EXPAT', 'BF_EXPAT_LIB', 'BF_EXPAT_LIBPATH',
- 'WITH_BF_STATICOPENCOLLADA', 'BF_OPENCOLLADA_LIB_STATIC',
- 'WITH_BF_PLAYER',
- 'WITH_BF_NOBLENDER',
- 'WITH_BF_BINRELOC',
- 'WITH_BF_LZO', 'WITH_BF_LZMA',
- 'LCGDIR',
- 'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC',
- 'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
- 'WITHOUT_BF_INSTALL',
- 'WITHOUT_BF_PYTHON_INSTALL', 'WITHOUT_BF_PYTHON_UNPACK',
- 'WITH_BF_PYTHON_INSTALL_NUMPY', 'WITH_BF_PYTHON_INSTALL_REQUESTS',
- 'WITHOUT_BF_OVERWRITE_INSTALL',
- 'WITH_BF_OPENMP', 'BF_OPENMP', 'BF_OPENMP_LIBPATH', 'WITH_BF_STATICOPENMP', 'BF_OPENMP_STATIC_STATIC',
- 'WITH_GHOST_SDL',
- 'WITH_GHOST_XDND',
- 'WITH_X11_XINPUT',
- 'WITH_X11_XF86VMODE',
- 'BF_GHOST_DEBUG',
- 'BF_FANCY', 'BF_QUIET', 'BF_LINE_OVERWRITE',
- 'BF_X264_CONFIG',
- 'BF_XVIDCORE_CONFIG',
- 'WITH_BF_DOCS',
- 'BF_NUMJOBS',
- 'BF_MSVS',
- 'WITH_BF_RAYOPTIMIZATION',
- 'BF_RAYOPTIMIZATION_SSE_FLAGS',
- 'WITH_BF_FLUID',
- 'WITH_BF_BOOLEAN',
- 'WITH_BF_REMESH',
- 'WITH_BF_OCEANSIM',
- 'WITH_BF_SMOKE',
- 'WITH_BF_CXX_GUARDEDALLOC',
- 'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
- 'BUILDBOT_BRANCH',
- 'WITH_BF_IME',
- 'WITH_BF_3DMOUSE', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC',
- 'WITH_BF_CYCLES', 'WITH_BF_CYCLES_CUDA_BINARIES', 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC', 'WITH_BF_CYCLES_CUDA_THREADED_COMPILE', 'BF_CYCLES_CUDA_ENV',
- 'WITH_BF_OIIO', 'WITH_BF_STATICOIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIB_STATIC', 'BF_OIIO_LIBPATH',
- 'WITH_BF_OCIO', 'WITH_BF_STATICOCIO', 'BF_OCIO', 'BF_OCIO_INC', 'BF_OCIO_LIB', 'BF_OCIO_LIB_STATIC', 'BF_OCIO_LIBPATH',
- 'WITH_BF_BOOST', 'WITH_BF_STATICBOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIB_INTERNATIONAL', 'BF_BOOST_LIB_STATIC', 'BF_BOOST_LIBPATH',
- 'WITH_BF_LIBMV', 'WITH_BF_LIBMV_SCHUR_SPECIALIZATIONS',
- 'WITH_BF_CYCLES_OSL', 'WITH_BF_STATICOSL', 'BF_OSL', 'BF_OSL_INC', 'BF_OSL_LIB', 'BF_OSL_LIBPATH', 'BF_OSL_LIB_STATIC', 'BF_OSL_COMPILER',
- 'WITH_BF_LLVM', 'WITH_BF_STATICLLVM', 'BF_LLVM', 'BF_LLVM_LIB', 'BF_LLVM_LIBPATH', 'BF_LLVM_LIB_STATIC', 'BF_PROGRAM_LINKFLAGS',
- 'WITH_BF_OPENSUBDIV', 'WITH_BF_STATICOPENSUBDIV', 'BF_OPENSUBDIV', 'BF_OPENSUBDIV_INC', 'BF_OPENSUBDIV_LIB', 'BF_OPENSUBDIV_LIBPATH', 'BF_OPENSUBDIV_LIB_STATIC'
- ]
-
- # Have options here that scons expects to be lists
- opts_list_split = [
- 'BF_PYTHON_LINKFLAGS',
- 'BF_OPENGL_LINKFLAGS',
- 'BF_GL_DEFINITIONS',
- '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',
- 'LLIBS', 'PLATFORM_LINKFLAGS', 'MACOSX_ARCHITECTURE', 'MACOSX_SDK', 'XCODE_CUR_VER', 'C_COMPILER_ID',
- 'BF_CYCLES_CUDA_BINARIES_ARCH', 'BF_PROGRAM_LINKFLAGS', 'MACOSX_DEPLOYMENT_TARGET',
- 'WITH_BF_CYCLES_DEBUG', 'WITH_BF_CYCLES_LOGGING',
- 'WITH_BF_CPP11', 'WITH_BF_LEGACY_DEPSGRAPH',
- ]
-
-
- 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_LINE_OVERWRITE',
- 'BF_BSC', 'BF_CONFIG',
- 'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG',
- 'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG',
- 'BF_UNIT_TEST', 'BF_BITNESS', 'MSVS_VERSION']
-
- okdict = {}
-
- for k,v in args.iteritems():
- if (k in opts_list) or (k in arg_list):
- okdict[k] = v
- elif k in opts_list_split:
- okdict[k] = v.split() # "" have already been stripped
- 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', 'blenderlite', 'release',
- 'everything', 'clean', 'install-bin', 'install', 'nsis','buildslave',
- 'cudakernels']
- 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 OurSpawn:
- def ourspawn(self, sh, escape, cmd, args, env):
- newargs = " ".join(args[1:])
- cmdline = cmd + " " + newargs
- startupinfo = subprocess.STARTUPINFO()
- proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False, env=env)
- data, err = proc.communicate()
- rv = proc.wait()
- if err:
- print(err)
- return rv
-
-def SetupSpawn( env ):
- buf = OurSpawn()
- env['SPAWN'] = buf.ourspawn
-
-
-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_AUDASPACE', 'Build with audaspace if true', True)),
- ('BF_AUDASPACE_C_INC', 'audaspace-c include path', ''),
- ('BF_AUDASPACE_PY_INC', 'audaspace-py include path', ''),
- ('BF_AUDASPACE_DEF', 'audaspace defines', ''),
-
- (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_SDL_DYNLOAD', 'Enable runtime dynamic SDL libraries loading (works only on Linux)', 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_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_SDL', 'Enable building blender against SDL for windowing rather then the native APIs', False)),
- (BoolVariable('WITH_X11_XINPUT', 'Enable X11 Xinput (tablet support and unicode input)', True)),
- (BoolVariable('WITH_X11_XF86VMODE', 'Enable X11 video mode switching', True)),
- ('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_GLEW_MX', '', False)),
- (BoolVariable('WITH_BF_GLEW_ES', '', False)),
- (BoolVariable('WITH_BF_GL_EGL', '', False)),
- (BoolVariable('WITH_BF_GL_PROFILE_COMPAT', '', True)),
- (BoolVariable('WITH_BF_GL_PROFILE_CORE', '', False)),
- (BoolVariable('WITH_BF_GL_PROFILE_ES20', '', False)),
- (BoolVariable('WITH_BF_GL_ANGLE', '', False)),
- ('BF_GL_DEFINITIONS', '', []),
- ('BF_GLEW_INC', '', ''),
- ) # end of opts.AddVariables()
-
- localopts.AddVariables(
- (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_IME', 'Enable Input Method Editor (IME) for complex Asian character input', 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', 'Set OS X SDK', ''),
- ('XCODE_CUR_VER', 'Detect XCode version', ''),
- ('MACOSX_DEPLOYMENT_TARGET', 'Detect OS X target version', ''),
- ('C_COMPILER_ID', 'Detect the resolved compiler', ''),
-
- (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 numpy module', False)),
- (BoolVariable('WITH_BF_PYTHON_INSTALL_REQUESTS', 'install Python requests 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_LIBMV_SCHUR_SPECIALIZATIONS', 'Enable fixed-size schur specializations', 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_ENV', 'preset environement nvcc will execute in', ''),
- ('BF_CYCLES_CUDA_BINARIES_ARCH', 'CUDA architectures to compile binaries for', []),
- (BoolVariable('WITH_BF_CYCLES_DEBUG', 'Build Cycles engine with extra debugging capabilities', False)),
- (BoolVariable('WITH_BF_CYCLES_LOGGING', 'Build Cycles engine with logging support', True)),
-
- (BoolVariable('WITH_BF_OIIO', 'Build with OpenImageIO', False)),
- (BoolVariable('WITH_BF_STATICOIIO', 'Statically 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)', ''),
-
- (BoolVariable('WITH_BF_OPENSUBDIV', 'Build with OpenSubdiv library', False)),
- (BoolVariable('WITH_BF_STATICOPENSUBDIV', 'Staticly link to OpenColorIO', False)),
- ('BF_OPENSUBDIV', 'OpenSubdiv root path', ''),
- ('BF_OPENSUBDIV_INC', 'OpenSubdiv include path', ''),
- ('BF_OPENSUBDIV_LIB', 'OpenSubdiv library', ''),
- ('BF_OPENSUBDIV_LIBPATH', 'OpenSubdiv library path', ''),
- ('BF_OPENSUBDIV_LIB_STATIC', 'OpenSubdiv static library', ''),
-
- (BoolVariable('WITH_BF_CPP11', '"Build with C++11 standard enabled, for development use only!', False)),
-
- (BoolVariable('WITH_BF_LEGACY_DEPSGRAPH', 'Build Blender with legacy dependency graph', True)),
- ) # end of opts.AddOptions()
-
- return localopts
-
-def buildbot_zip(src, dest, package_name, extension):
- import zipfile
- ln = len(src)+1 # one extra to remove leading os.sep when cleaning root for package_root
- flist = list()
-
- # create list of tuples containing file and archive name
- for root, dirs, files in os.walk(src):
- package_root = os.path.join(package_name, root[ln:])
- flist.extend([(os.path.join(root, file), os.path.join(package_root, file)) for file in files])
-
- if extension == '.zip':
- package = zipfile.ZipFile(dest, 'w', zipfile.ZIP_DEFLATED)
- package.comment = package_name + ' is a zip-file containing the Blender software. Visit http://www.blender.org for more information.'
- for entry in flist:
- package.write(entry[0], entry[1])
- package.close()
- else:
- import tarfile
- package = tarfile.open(dest, 'w:bz2')
- for entry in flist:
- package.add(entry[0], entry[1], recursive=False)
- package.close()
- bb_zip_name = os.path.normpath(src + os.sep + '..' + os.sep + 'buildbot_upload.zip')
- print("creating %s" % (bb_zip_name))
- bb_zip = zipfile.ZipFile(bb_zip_name, 'w', zipfile.ZIP_DEFLATED)
- print("writing %s to %s" % (dest, bb_zip_name))
- bb_zip.write(dest, os.path.split(dest)[1])
- bb_zip.close()
- print("removing unneeded packed file %s (to keep install directory clean)" % (dest))
- os.remove(dest)
- print("done.")
-
-def buildslave_print(target, source, env):
- return "Running buildslave target"
-
-def buildslave(target=None, source=None, env=None):
- """
- Builder for buildbot integration. Used by buildslaves of http://builder.blender.org only.
- """
-
- if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw', 'darwin', 'win64-mingw'):
- extension = '.zip'
- else:
- extension = '.tar.bz2'
-
- if env['OURPLATFORM'] == 'win32-mingw':
- platform = 'mingw32'
- elif env['OURPLATFORM'] == 'win64-mingw':
- platform = 'mingw64'
- else:
- platform = env['OURPLATFORM'].split('-')[0]
-
- if platform == 'linux':
- import platform
-
- if "glibc27" in env['BF_INSTALLDIR']:
- glibc = "glibc27"
- elif "glibc211" in env['BF_INSTALLDIR']:
- glibc = "glibc211"
-
- bitness = platform.architecture()[0]
- if bitness == '64bit':
- platform = 'linux-' + glibc + '-x86_64'
- elif bitness == '32bit':
- platform = 'linux-' + glibc + '-i686'
- if platform == 'darwin':
- platform = 'OSX-' + env['MACOSX_DEPLOYMENT_TARGET'] + '-' + env['MACOSX_ARCHITECTURE']
-
-
- branch = env['BUILDBOT_BRANCH']
-
- outdir = os.path.abspath(env['BF_INSTALLDIR'])
- package_name = 'blender-' + VERSION+'-'+HASH + '-' + platform
- if branch != '':
- package_name = branch + '-' + package_name
- package_dir = os.path.normpath(outdir + os.sep + '..' + os.sep + package_name)
- package_archive = os.path.normpath(outdir + os.sep + '..' + os.sep + package_name + extension)
-
- try:
- if os.path.exists(package_archive):
- os.remove(package_archive)
- if os.path.exists(package_dir):
- shutil.rmtree(package_dir)
- except Exception, ex:
- sys.stderr.write('Failed to clean up old package files: ' + str(ex) + '\n')
- return 1
-
- buildbot_zip(outdir, package_archive, package_name, extension)
-
- return 0
-
-def NSIS_print(target, source, env):
- return "Creating NSIS installer for Blender"
-
-def NSIS_Installer(target=None, source=None, env=None):
- print "="*35
-
- if env['OURPLATFORM'] not in ('win32-vc', 'win32-mingw', 'win64-vc', 'win64-mingw'):
- print "NSIS installer is only available on Windows."
- exit()
- if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'):
- bitness = '32'
- elif env['OURPLATFORM'] in ('win64-vc', 'win64-mingw'):
- bitness = '64'
-
- start_dir = os.getcwd()
- rel_dir = os.path.join(start_dir,'release','windows','installer')
- install_base_dir = start_dir + os.sep
-
- bf_installdir = os.path.join(os.getcwd(),env['BF_INSTALLDIR'])
- bf_installdir = os.path.normpath(bf_installdir)
-
- doneroot = False
- rootdirconts = []
- datafiles = ''
- deldatafiles = ''
- deldatadirs = ''
- l = len(bf_installdir)
-
- for dp,dn,df in os.walk(bf_installdir):
- # install
- if not doneroot:
- for f in df:
- rootdirconts.append(os.path.join(dp,f))
- doneroot = True
- else:
- if len(df)>0:
- datafiles += "\n" +r'SetOutPath $INSTDIR'+dp[l:]+"\n\n"
-
- for f in df:
- outfile = os.path.join(dp,f)
- datafiles += ' File '+outfile + "\n"
-
- # uninstall
- deldir = dp[l+1:]
-
- if len(deldir)>0:
- deldatadirs = "RMDir $INSTDIR\\" + deldir + "\n" + deldatadirs
- deldatadirs = "RMDir /r $INSTDIR\\" + deldir + "\\__pycache__\n" + deldatadirs
-
- for f in df:
- deldatafiles += 'Delete \"$INSTDIR\\' + os.path.join(deldir, f) + "\"\n"
-
- #### change to suit install dir ####
- inst_dir = install_base_dir + env['BF_INSTALLDIR']
-
- os.chdir(rel_dir)
-
- ns = open("00.sconsblender.nsi","r")
-
- ns_cnt = str(ns.read())
- ns.close()
-
- # var replacements
- ns_cnt = string.replace(ns_cnt, "[DISTDIR]", os.path.normpath(inst_dir+os.sep))
- ns_cnt = string.replace(ns_cnt, "[VERSION]", VERSION_DISPLAY)
- ns_cnt = string.replace(ns_cnt, "[SHORTVERSION]", VERSION)
- ns_cnt = string.replace(ns_cnt, "[RELDIR]", os.path.normpath(rel_dir))
- ns_cnt = string.replace(ns_cnt, "[BITNESS]", bitness)
-
- # do root
- rootlist = []
- for rootitem in rootdirconts:
- rootlist.append("File \"" + rootitem + "\"")
- rootstring = string.join(rootlist, "\n ")
- rootstring = rootstring
- rootstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[ROOTDIRCONTS]", rootstring)
-
-
- # do delete items
- delrootlist = []
- for rootitem in rootdirconts:
- delrootlist.append("Delete $INSTDIR\\" + rootitem[l+1:])
- delrootstring = string.join(delrootlist, "\n ")
- delrootstring += "\n"
- ns_cnt = string.replace(ns_cnt, "[DELROOTDIRCONTS]", delrootstring)
-
- ns_cnt = string.replace(ns_cnt, "[DODATAFILES]", datafiles)
- ns_cnt = string.replace(ns_cnt, "[DELDATAFILES]", deldatafiles)
- ns_cnt = string.replace(ns_cnt, "[DELDATADIRS]", deldatadirs)
-
- tmpnsi = os.path.normpath(install_base_dir+os.sep+env['BF_BUILDDIR']+os.sep+"00.blender_tmp.nsi")
- new_nsis = open(tmpnsi, 'w')
- new_nsis.write(ns_cnt)
- new_nsis.close()
- print "NSIS Installer script created"
-
- os.chdir(start_dir)
- print "Launching 'makensis'"
-
- cmdline = "makensis " + "\""+tmpnsi+"\""
-
- startupinfo = subprocess.STARTUPINFO()
- #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
- proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, startupinfo=startupinfo, shell = True)
- data, err = proc.communicate()
- rv = proc.wait()
-
- if rv != 0:
- print
- print data.strip().split("\n")[-1]
- return rv
-
-def cudakernels_print(target, source, env):
- return "Running cudakernels target"
-
-def cudakernels(target=None, source=None, env=None):
- """
- Builder for cuda kernels compilation. Used by release build environment only
- """
-
- # Currently nothing to do, everything is handled by a dependency resolver
-
- pass
-
-def check_environ():
- problematic_envvars = ""
- for i in os.environ:
- try:
- os.environ[i].decode('ascii')
- except UnicodeDecodeError:
- problematic_envvars = problematic_envvars + "%s = %s\n" % (i, os.environ[i])
- if len(problematic_envvars)>0:
- print("================\n\n")
- print("@@ ABORTING BUILD @@\n")
- print("PROBLEM DETECTED WITH ENVIRONMENT")
- print("---------------------------------\n\n")
- print("A problem with one or more environment variable was found")
- print("Their value contain non-ascii characters. Check the below")
- print("list and override them locally to be ASCII-clean by doing")
- print("'set VARNAME=cleanvalue' on the command-line prior to")
- print("starting the build process:\n")
- print(problematic_envvars)
- return False
- else:
- return True
diff --git a/build_files/scons/tools/crossmingw.py b/build_files/scons/tools/crossmingw.py
deleted file mode 100644
index f97fdf3c15e..00000000000
--- a/build_files/scons/tools/crossmingw.py
+++ /dev/null
@@ -1,184 +0,0 @@
-"""SCons.Tool.gcc
-
-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, 2005, 2006, 2007, 2008, 2009 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__ = "src/engine/SCons/Tool/mingw.py 4043 2009/02/23 09:06:45 scons"
-
-import os
-import os.path
-import string
-
-import SCons.Action
-import SCons.Builder
-import SCons.Defaults
-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-
- i686-pc-mingw32-
-""")
-
-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'])
-
- dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
- if dll: cmd.extend(['-o', dll])
-
- cmd.extend(['$SOURCES', '$SHLINKFLAGS', '$_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, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
- insert_def = env.subst("$WINDOWS_INSERT_DEF")
- if not insert_def in ['', '0', 0] and 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, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
- def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
- if not def_source and not def_target:
- target.append(env.ReplaceIxes(dll,
- 'SHLIBPREFIX', 'SHLIBSUFFIX',
- 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX'))
-
- return (target, source)
-
-
-shlib_action = SCons.Action.Action(shlib_generator, generator=1)
-
-res_action = SCons.Action.Action('$RCCOM', '$RCCOMSTR')
-
-res_builder = SCons.Builder.Builder(action=res_action, suffix='.o',
- source_scanner=SCons.Tool.SourceFileScanner)
-SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
-
-def generate(env):
- mingw = find(env)
- if mingw:
- dir = os.path.dirname(mingw)
- env.PrependENVPath('PATH', dir )
-
-
- # Most of mingw is the same as gcc and friends...
- gnu_tools = ['gcc', 'g++', 'gnulink', 'ar', 'gas', 'm4']
- for tool in gnu_tools:
- SCons.Tool.Tool(tool)(env)
-
- #... but a few things differ:
- env['CC'] = mingw + 'gcc'
- env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
- env['CXX'] = mingw + 'g++'
- env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS')
- env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -shared')
- env['SHLINKCOM'] = shlib_action
- env['LDMODULECOM'] = shlib_action
- env.Append(SHLIBEMITTER = [shlib_emitter])
- env['RANLIB'] = mingw + 'ranlib'
- env['LINK'] = mingw + 'gcc'
- env['AS'] = mingw + 'as'
- env['AR'] = mingw + 'ar'
-
- env['WIN32DEFPREFIX'] = ''
- env['WIN32DEFSUFFIX'] = '.def'
- env['WINDOWSDEFPREFIX'] = '${WIN32DEFPREFIX}'
- env['WINDOWSDEFSUFFIX'] = '${WIN32DEFSUFFIX}'
-
- env['SHOBJSUFFIX'] = '.o'
- env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
-
- env['RC'] = mingw + 'windres'
- env['RCFLAGS'] = SCons.Util.CLVar('')
- env['RCINCFLAGS'] = '$( ${_concat(RCINCPREFIX, CPPPATH, RCINCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
- env['RCINCPREFIX'] = '--include-dir '
- env['RCINCSUFFIX'] = ''
- env['RCCOM'] = '$RC $_CPPDEFFLAGS $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)
-
-# Local Variables:
-# tab-width:4
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/build_files/scons/tools/mstoolkit.py b/build_files/scons/tools/mstoolkit.py
deleted file mode 100644
index 68e8c4b6475..00000000000
--- a/build_files/scons/tools/mstoolkit.py
+++ /dev/null
@@ -1,353 +0,0 @@
-"""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')