[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26526] trunk/blender: this restores building on mingw with Collada support, also it restores cross compiling, thanks to Sergey Sharybin for the patch.

Tom Musgrove LetterRip at gmail.com
Mon Feb 1 19:39:41 CET 2010


Revision: 26526
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26526
Author:   letterrip
Date:     2010-02-01 19:39:41 +0100 (Mon, 01 Feb 2010)

Log Message:
-----------
this restores building on mingw with Collada support, also it restores cross compiling, thanks to Sergey Sharybin for the patch.  Note that the icons for linux cross might not be committed here, if not i'll add them in another commit

Modified Paths:
--------------
    trunk/blender/SConstruct
    trunk/blender/config/linuxcross-config.py
    trunk/blender/config/win32-mingw-config.py
    trunk/blender/extern/ffmpeg/SConscript
    trunk/blender/extern/x264/SConscript
    trunk/blender/intern/elbeem/SConscript
    trunk/blender/intern/smoke/SConscript
    trunk/blender/source/SConscript
    trunk/blender/source/blender/blenfont/SConscript
    trunk/blender/source/blender/blenlib/SConscript
    trunk/blender/source/blender/makesdna/intern/SConscript
    trunk/blender/source/blender/render/SConscript
    trunk/blender/source/icons/SConscript
    trunk/blender/tools/Blender.py
    trunk/blender/tools/btools.py
    trunk/blender/tools/crossmingw.py

Modified: trunk/blender/SConstruct
===================================================================
--- trunk/blender/SConstruct	2010-02-01 18:38:33 UTC (rev 26525)
+++ trunk/blender/SConstruct	2010-02-01 18:39:41 UTC (rev 26526)
@@ -169,8 +169,10 @@
 	env.Tool('crossmingw', ['tools'])
 	# todo: determine proper libs/includes etc.
 	# Needed for gui programs, console programs should do without it
-	env.Append(LINKFLAGS=['-mwindows'])
 
+	# Now we don't need this option to have console window
+	# env.Append(LINKFLAGS=['-mwindows'])
+
 userconfig = B.arguments.get('BF_CONFIG', 'user-config.py')
 # first read platform config. B.arguments will override
 optfiles = [configfile]
@@ -524,7 +526,11 @@
 # TODO - add more libs, for now this lets blenderlite run
 if env['OURPLATFORM']=='linuxcross':
 	dir=env['BF_INSTALLDIR']
-	source = ['../lib/windows/pthreads/lib/pthreadGC2.dll']
+	source = []
+
+	if env['WITH_BF_OPENMP']:
+		source += ['../lib/windows/pthreads/lib/pthreadGC2.dll']
+
 	scriptinstall.append(env.Install(dir=dir, source=source))
 
 #-- plugins
@@ -577,49 +583,66 @@
 else:
 		allinstall = [blenderinstall, dotblenderinstall, scriptinstall, plugininstall, textinstall]
 
-if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc'):
+if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'):
 	dllsources = []
 
-	if env['OURPLATFORM'] != 'win64-vc':
-		if env['OURPLATFORM'] != 'win32-mingw':
-			# For MinGW static linking will be used
-			dllsources += ['${LCGDIR}/gettext/lib/gnu_gettext.dll']		
-		
-		dllsources += ['${BF_PNG_LIBPATH}/libpng.dll',
-				'${BF_ZLIB_LIBPATH}/zlib.dll',
-				'${BF_TIFF_LIBPATH}/${BF_TIFF_LIB}.dll']
-	dllsources += ['${BF_PTHREADS_LIBPATH}/${BF_PTHREADS_LIB}.dll']
+	if not env['OURPLATFORM'] in ('win32-mingw', 'win64-vc', 'linuxcross'):
+		# For MinGW and linuxcross static linking will be used
+		dllsources += ['${LCGDIR}/gettext/lib/gnu_gettext.dll']
+
+	dllsources += ['${BF_PNG_LIBPATH}/libpng.dll',
+			'${BF_ZLIB_LIBPATH}/zlib.dll',
+			'${BF_TIFF_LIBPATH}/${BF_TIFF_LIB}.dll']
+
+	if env['OURPLATFORM'] != 'linuxcross':
+		# pthreads library is already added
+		dllsources += ['${BF_PTHREADS_LIBPATH}/${BF_PTHREADS_LIB}.dll']
+
 	if env['WITH_BF_SDL']:
 		if env['OURPLATFORM'] == 'win64-vc':
 			pass # we link statically already to SDL on win64
 		else:
 			dllsources.append('${BF_SDL_LIBPATH}/SDL.dll')
+
 	if env['WITH_BF_PYTHON']:
 		if env['BF_DEBUG']:
 			dllsources.append('${BF_PYTHON_LIBPATH}/${BF_PYTHON_DLL}_d.dll')
 		else:
 			dllsources.append('${BF_PYTHON_LIBPATH}/${BF_PYTHON_DLL}.dll')
+
 	if env['WITH_BF_ICONV']:
 		if env['OURPLATFORM'] == 'win64-vc':
 			pass # we link statically to iconv on win64
-		elif env['OURPLATFORM'] != 'win32-mingw':
-			#gettext for MinGW is compiled staticly
+		elif not env['OURPLATFORM'] in ('win32-mingw', 'linuxcross'):
+			#gettext for MinGW and cross-compilation is compiled staticly
 			dllsources += ['${BF_ICONV_LIBPATH}/iconv.dll']
+
 	if env['WITH_BF_OPENAL']:
 		dllsources.append('${LCGDIR}/openal/lib/OpenAL32.dll')
 		dllsources.append('${LCGDIR}/openal/lib/wrap_oal.dll')
+
 	if env['WITH_BF_SNDFILE']:
 		dllsources.append('${LCGDIR}/sndfile/lib/libsndfile-1.dll')
+
 	if env['WITH_BF_FFMPEG']:
-		dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-52.dll',
-						'${LCGDIR}/ffmpeg/lib/avformat-52.dll',
-						'${LCGDIR}/ffmpeg/lib/avdevice-52.dll',
-						'${LCGDIR}/ffmpeg/lib/avutil-50.dll',
-						'${LCGDIR}/ffmpeg/lib/swscale-0.dll',
-						'${LCGDIR}/ffmpeg/lib/libfaac-0.dll',
-						'${LCGDIR}/ffmpeg/lib/libfaad-2.dll',
-						'${LCGDIR}/ffmpeg/lib/libmp3lame-0.dll',
-						'${LCGDIR}/ffmpeg/lib/libx264-67.dll']
+		dllsources += ['${BF_FFMPEG_LIBPATH}/avcodec-52.dll',
+					'${BF_FFMPEG_LIBPATH}/avformat-52.dll',
+					'${BF_FFMPEG_LIBPATH}/avdevice-52.dll',
+					'${BF_FFMPEG_LIBPATH}/avutil-50.dll',
+					'${BF_FFMPEG_LIBPATH}/swscale-0.dll']
+
+		if env['OURPLATFORM'] != 'linuxcross':
+			#
+			# TODO: Does it mean we haven't got support of this codecs if
+			#       we're using cross-compilation?
+			#       Or in case of native compilation this libraries are
+			#       unneccessary to?
+			#
+			dllsources += ['${LCGDIR}/ffmpeg/lib/libfaac-0.dll',
+							'${LCGDIR}/ffmpeg/lib/libfaad-2.dll',
+							'${LCGDIR}/ffmpeg/lib/libmp3lame-0.dll',
+							'${LCGDIR}/ffmpeg/lib/libx264-67.dll']
+
 	if env['WITH_BF_JACK']:
 		dllsources += ['${LCGDIR}/jack/lib/libjack.dll']
 	windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)

Modified: trunk/blender/config/linuxcross-config.py
===================================================================
--- trunk/blender/config/linuxcross-config.py	2010-02-01 18:38:33 UTC (rev 26525)
+++ trunk/blender/config/linuxcross-config.py	2010-02-01 18:39:41 UTC (rev 26526)
@@ -5,14 +5,15 @@
 BF_PYTHON_VERSION = '3.1'
 BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
 BF_PYTHON_BINARY = 'python'
-BF_PYTHON_LIB = 'python25'
+BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION[0]}${BF_PYTHON_VERSION[2]}mw'
+BF_PYTHON_DLL = 'python31'
 BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
 
 WITH_BF_OPENAL = True
 WITH_BF_STATICOPENAL = False
 BF_OPENAL = LIBDIR + '/openal'
 BF_OPENAL_INC = '${BF_OPENAL}/include'
-BF_OPENAL_LIB = 'openal_static'
+BF_OPENAL_LIB = 'OpenAL32 wrap_oal'
 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'
@@ -33,6 +34,18 @@
 BF_SDL_LIB = 'SDL'
 BF_SDL_LIBPATH = '${BF_SDL}/lib'
 
+WITH_BF_JACK = False
+BF_JACK = LIBDIR + '/jack'
+BF_JACK_INC = '${BF_JACK}/include'
+BF_JACK_LIB = 'jack'
+BF_JACK_LIBPATH = '${BF_JACK}/lib'
+
+WITH_BF_SNDFILE = False
+BF_SNDFILE = LIBDIR + '/sndfile'
+BF_SNDFILE_INC = '${BF_SNDFILE}/include'
+BF_SNDFILE_LIB = 'sndfile-1'
+BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
+
 BF_PTHREADS = LIBDIR + '/pthreads'
 BF_PTHREADS_INC = '${BF_PTHREADS}/include'
 BF_PTHREADS_LIB = 'pthreadGC2'
@@ -61,8 +74,11 @@
 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 = 'libtiff'
+BF_TIFF_LIBPATH = '${BF_TIFF}/lib'
 
 WITH_BF_ZLIB = True
 BF_ZLIB = LIBDIR + '/zlib'
@@ -72,12 +88,12 @@
 
 WITH_BF_INTERNATIONAL = True
 
-BF_GETTEXT = LIBDIR + '/gettext'
+BF_GETTEXT = LIBDIR + '/gcc/gettext'
 BF_GETTEXT_INC = '${BF_GETTEXT}/include'
-BF_GETTEXT_LIB = 'gnu_gettext'
+BF_GETTEXT_LIB = 'intl'
 BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
 
-WITH_BF_GAMEENGINE = False
+WITH_BF_GAMEENGINE = True
 WITH_BF_PLAYER = False
 
 WITH_BF_BULLET = True
@@ -89,6 +105,7 @@
 BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
 
 # enable freetype2 support for text objects
+BF_WITH_FREETYPE = True
 BF_FREETYPE = LIBDIR + '/gcc/freetype'
 BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
 BF_FREETYPE_LIB = 'freetype'
@@ -99,11 +116,35 @@
 BF_QUICKTIME_INC = '${BF_QUICKTIME}/include'
 
 WITH_BF_ICONV = False
-BF_ICONV = LIBDIR + "/iconv"
+BF_ICONV = LIBDIR + "/gcc/iconv"
 BF_ICONV_INC = '${BF_ICONV}/include'
 BF_ICONV_LIB = 'iconv'
 BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
 
+WITH_BF_BINRELOC = False
+
+# enable ffmpeg  support
+WITH_BF_FFMPEG = True  # -DWITH_FFMPEG
+BF_FFMPEG = LIBDIR + '/ffmpeg'
+BF_FFMPEG_LIB = 'avformat-52 avcodec-52 avdevice-52 avutil-50 swscale-0'
+BF_FFMPEG_INC = '${BF_FFMPEG}/include'
+BF_FFMPEG_LIBPATH = '${BF_FFMPEG}/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 = False
+BF_FFTW3 = LIBDIR + '/gcc/fftw3'
+BF_FFTW3_INC = '${BF_FFTW3}/include'
+BF_FFTW3_LIB = 'fftw3'
+BF_FFTW3_LIBPATH = '${BF_FFTW3}/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'
@@ -114,24 +155,42 @@
              '${BF_OPENGL}/lib/libXmu.a', '${BF_OPENGL}/lib/libXext.a',
              '${BF_OPENGL}/lib/libX11.a', '${BF_OPENGL}/lib/libXi.a' ]
 
+WITH_BF_OPENMP = True
+BF_OPENMP = LIBDIR + '/gcc/gomp'
+BF_OPENMP_INC = '${BF_OPENMP}/include'
+BF_OPENMP_LIBPATH = '${BF_OPENMP}/lib'
+
+WITH_BF_COLLADA = False
+BF_COLLADA = '#source/blender/collada'
+BF_COLLADA_INC = '${BF_COLLADA}'
+BF_COLLADA_LIB = 'bf_collada'
+
+BF_OPENCOLLADA = LIBDIR + '/gcc/opencollada'
+BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include'
+BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa'
+BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib ${BF_ICONV_LIBPATH}'
+
+#Ray trace optimization
+WITH_BF_RAYOPTIMIZATION = False
+BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse']
+
 CC = 'i586-mingw32msvc-gcc'
 CXX = 'i586-mingw32msvc-g++'
 
 CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ]
 
 CPPFLAGS = ['-DWIN32', '-DFREE_WINDOWS']
-CXXFLAGS = ['-pipe', '-mwindows', '-funsigned-char', '-fno-strict-aliasing' ]
+CXXFLAGS = ['-pipe', '-funsigned-char', '-fno-strict-aliasing' ]
 REL_CFLAGS = [ '-O2' ]
 REL_CCFLAGS = [ '-O2' ]
 C_WARN = [ '-Wall' , '-Wno-char-subscripts', '-Wdeclaration-after-statement' ]
 
 CC_WARN = [ '-Wall' ]
 
+LLIBS = [ '-ldxguid', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++', '-luuid', '-lole32'] #'-lutil', '-lc', '-lm', '-ldl', '-lpthread' ]
 
-LLIBS = [ '-ldxguid', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz'] #'-lutil', '-lc', '-lm', '-ldl', '-lpthread' ]
-
 BF_DEBUG = False
-BF_DEBUG_CCFLAGS= []
+BF_DEBUG_CCFLAGS = ['-g']
 
 BF_PROFILE = False
 BF_PROFILE_CCFLAGS = ['-pg','-g']

Modified: trunk/blender/config/win32-mingw-config.py
===================================================================
--- trunk/blender/config/win32-mingw-config.py	2010-02-01 18:38:33 UTC (rev 26525)
+++ trunk/blender/config/win32-mingw-config.py	2010-02-01 18:39:41 UTC (rev 26526)
@@ -90,6 +90,12 @@
 BF_GETTEXT_LIB = 'intl'
 BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/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 = False
 BF_FFTW3 = LIBDIR + '/gcc/fftw3'
 BF_FFTW3_INC = '${BF_FFTW3}/include'
@@ -123,6 +129,9 @@
 BF_ICONV_LIB = 'iconv'
 BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
 
+WITH_BF_REDCODE = False

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list