[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45922] trunk/blender: Add libMV and Scons support for MinGW-w64, patches by Caleb Joseph with slight modifications.

Antony Riakiotakis kalast at gmail.com
Tue Apr 24 14:57:59 CEST 2012


Revision: 45922
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45922
Author:   psy-fi
Date:     2012-04-24 12:57:58 +0000 (Tue, 24 Apr 2012)
Log Message:
-----------
Add libMV and Scons support for MinGW-w64, patches by Caleb Joseph with slight modifications.

Thanks!

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/SConstruct
    trunk/blender/build_files/scons/tools/Blender.py
    trunk/blender/build_files/scons/tools/btools.py
    trunk/blender/extern/bullet2/src/SConscript
    trunk/blender/extern/carve/SConscript
    trunk/blender/extern/carve/bundle.sh
    trunk/blender/extern/eltopo/SConscript
    trunk/blender/extern/libmv/SConscript
    trunk/blender/extern/libmv/bundle.sh
    trunk/blender/extern/libmv/libmv/numeric/numeric.h
    trunk/blender/extern/libmv/third_party/glog/src/windows/port.cc
    trunk/blender/extern/libmv/third_party/glog/src/windows/port.h
    trunk/blender/intern/SConscript
    trunk/blender/intern/audaspace/SConscript
    trunk/blender/intern/boolop/SConscript
    trunk/blender/intern/cycles/SConscript
    trunk/blender/intern/ghost/SConscript
    trunk/blender/intern/opennl/SConscript
    trunk/blender/intern/utfconv/SConscript
    trunk/blender/source/SConscript
    trunk/blender/source/blender/blenkernel/SConscript
    trunk/blender/source/blender/blenlib/SConscript
    trunk/blender/source/blender/blenpluginapi/SConscript
    trunk/blender/source/blender/editors/armature/SConscript
    trunk/blender/source/blender/editors/mesh/SConscript
    trunk/blender/source/blender/editors/object/SConscript
    trunk/blender/source/blender/editors/physics/SConscript
    trunk/blender/source/blender/editors/render/SConscript
    trunk/blender/source/blender/editors/screen/SConscript
    trunk/blender/source/blender/editors/sculpt_paint/SConscript
    trunk/blender/source/blender/editors/space_file/SConscript
    trunk/blender/source/blender/editors/space_image/SConscript
    trunk/blender/source/blender/editors/space_node/SConscript
    trunk/blender/source/blender/editors/space_sequencer/SConscript
    trunk/blender/source/blender/editors/space_view3d/SConscript
    trunk/blender/source/blender/gpu/SConscript
    trunk/blender/source/blender/imbuf/SConscript
    trunk/blender/source/blender/makesdna/intern/SConscript
    trunk/blender/source/blender/makesrna/SConscript
    trunk/blender/source/blender/makesrna/intern/SConscript
    trunk/blender/source/blender/nodes/SConscript
    trunk/blender/source/blender/python/SConscript
    trunk/blender/source/blender/render/SConscript
    trunk/blender/source/blender/windowmanager/SConscript
    trunk/blender/source/gameengine/Converter/SConscript
    trunk/blender/source/gameengine/Ketsji/SConscript
    trunk/blender/source/gameengine/VideoTexture/SConscript

Added Paths:
-----------
    trunk/blender/build_files/scons/config/win64-mingw-config.py
    trunk/blender/extern/bullet2/patches/
    trunk/blender/extern/bullet2/patches/mingw64_scons.patch
    trunk/blender/extern/carve/patches/mingw_w64.patch
    trunk/blender/extern/libmv/patches/mingw_w64_support.patch

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2012-04-24 12:38:03 UTC (rev 45921)
+++ trunk/blender/CMakeLists.txt	2012-04-24 12:57:58 UTC (rev 45922)
@@ -194,12 +194,7 @@
 option(WITH_IMAGE_FRAMESERVER   "Enable image FrameServer Support for rendering" ON)
 
 # Audio/Video format support
-if(MINGW)
-	set(PLATFORM_DEFAULT ON)
-else()
-	set(PLATFORM_DEFAULT OFF)
-endif()
-option(WITH_CODEC_FFMPEG        "Enable FFMPeg Support (http://ffmpeg.org)" ${PLATFORM_DEFAULT})
+option(WITH_CODEC_FFMPEG        "Enable FFMPeg Support (http://ffmpeg.org)" OFF)
 unset(PLATFORM_DEFAULT)
 
 option(WITH_CODEC_SNDFILE       "Enable libsndfile Support (http://www.mega-nerd.com/libsndfile)" OFF)
@@ -373,8 +368,8 @@
 		                    "line if youre a developer who wants to add support.")
 	endif()
 	
-	if((WITH_MINGW64) AND (WITH_OPENCOLLADA OR WITH_LIBMV OR WITH_CODEC_FFMPEG))
-		message(FATAL_ERROR "MINGW64 still doesn't support: WITH_OPENCOLLADA/WITH_LIBMV/WITH_CODEC_FFMPEG")
+	if((WITH_MINGW64) AND (WITH_OPENCOLLADA OR WITH_CODEC_FFMPEG))
+		message(FATAL_ERROR "MINGW64 still doesn't support: WITH_OPENCOLLADA/WITH_CODEC_FFMPEG")
 	endif()
 endif()
 
@@ -1015,7 +1010,7 @@
 			#Yes, the point for MinGW64 is moar optimization by default :)
 			set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -mmmx -msse -msse2 -O3")
 			set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
-			set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lsetupapi -lpthread")
+			set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lpthread")
 			
 			add_definitions(-DFREE_WINDOWS64 -DMS_WIN64)
 		endif()

Modified: trunk/blender/SConstruct
===================================================================
--- trunk/blender/SConstruct	2012-04-24 12:38:03 UTC (rev 45921)
+++ trunk/blender/SConstruct	2012-04-24 12:57:58 UTC (rev 45922)
@@ -170,7 +170,7 @@
     if env['CC'] in ['cl', 'cl.exe']:
         platform = 'win64-vc' if bitness == 64 else 'win32-vc'
     elif env['CC'] in ['gcc']:
-        platform = 'win32-mingw'
+        platform = 'win64-mingw' if bitness == 64 else 'win32-mingw'
 
 env.SConscriptChdir(0)
 
@@ -782,6 +782,34 @@
     windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
     allinstall += windlls
 
+if env['OURPLATFORM'] == 'win64-mingw':
+    dllsources = []
+    
+    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_FFMPEG']:
+        dllsources += env['BF_FFMPEG_DLL'].split()
+
+    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_SDL']:
+        dllsources.append('${LCGDIR}/sdl/lib/SDL.dll')
+	
+    dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb64.dll')
+    dllsources.append('#source/icons/blender.exe.manifest')
+
+    windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
+    allinstall += windlls
+
 installtarget = env.Alias('install', allinstall)
 bininstalltarget = env.Alias('install-bin', blenderinstall)
 

Added: trunk/blender/build_files/scons/config/win64-mingw-config.py
===================================================================
--- trunk/blender/build_files/scons/config/win64-mingw-config.py	                        (rev 0)
+++ trunk/blender/build_files/scons/config/win64-mingw-config.py	2012-04-24 12:57:58 UTC (rev 45922)
@@ -0,0 +1,207 @@
+LCGDIR = '#../lib/mingw64'
+LIBDIR = "${LCGDIR}"
+
+BF_PYTHON = LIBDIR + '/python'
+BF_PYTHON_VERSION = '3.2'
+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 = 'python32'
+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 = False # TODO: FFmpeg gives linking errors, need to compile with MinGW-w64?
+BF_FFMPEG_LIB = 'avformat-53 avcodec-53 avdevice-53 avutil-51 swscale-2'
+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'
+
+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
+
+BF_GETTEXT = LIBDIR + '/gettext'
+BF_GETTEXT_INC = '${BF_GETTEXT}/include'
+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 = 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_QUICKTIME = False
+
+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_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 = False # TODO: Compile Collada with MinGW-w64
+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 = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver expat pcre buffer ftoa'
+BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib'
+
+#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_13', 'sm_20', 'sm_21']
+
+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_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_LIBPATH = BF_BOOST + '/lib'
+
+#Ray trace optimization
+WITH_BF_RAYOPTIMIZATION = True
+BF_RAYOPTIMIZATION_SSE_FLAGS = ['-mmmx', '-msse', '-msse2', '-ftree-vectorize']
+
+WITH_BF_OPENMP = 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', '-D_SSIZE_T_']
+REL_CFLAGS = ['-O3', '-mmmx', '-msse', '-msse2']
+REL_CXXFLAGS = ['-O3', '-mmmx', '-msse', '-msse2']
+REL_CCFLAGS = ['-DNDEBUG',  '-O3', '-mmmx', '-msse', '-msse2']
+
+C_WARN = ['-Wno-char-subscripts', '-Wdeclaration-after-statement', '-Wstrict-prototypes']
+
+CC_WARN = [ '-Wall' ]
+
+LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++','-lole32','-luuid', '-lwsock32', '-lpsapi', '-lpthread']
+
+PLATFORM_LINKFLAGS = ['-Xlinker', '--stack=2097152']
+
+## DISABLED, causes linking errors!
+## for re-distrobution, so users dont need mingw installed
+# PLATFORM_LINKFLAGS += ["-static-libgcc", "-static-libstdc++"]
+
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS= ['-g', '-D_DEBUG']
+
+BF_PROFILE_CCFLAGS = ['-pg', '-g']
+BF_PROFILE_LINKFLAGS = ['-pg']

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list