利用者:Juicyfruit/Windows Library Building

提供: wiki
移動先: 案内検索

PREREQUESTS

building blender on windows 7 x64 (MSVC2012/MSVC2013):

git - > http://msysgit.github.io/ (add git to path for building later)

perl -> http://www.perl.org/get.html for compiling python / openssl (get x64 version )

subversion -> http://sourceforge.net/projects/tortoisesvn ( add command line tools)

Visual Studio 2012 or 2013

Library Version Binary URL Homepage
gettext
boost
ffmpeg
fftw3
freetype 2.5.2 http://martijnberger.nl/file/freetype_win64_vc12.7z http://www.freetype.org/index.html
iconv
jpeg
lapack
lcms
llvm
openal
opencollada
opencolorio
openexr / ilmbase 2.1.0 http://martijnberger.nl/file/openexr_win64_vc12.7z http://openexr.com/
openimageio 1.3.9 n/a https://github.com/OpenImageIO/oiio
osl
png
pthreads
python 3.3.3 http://martijnberger.nl/file/python_win64_vc11.7z http://martijnberger.nl/file/python_win64_vc12.7z http://www.python.org/
samplerate
sdl
sndfile
thumbhandler
tiff
wintab
zlib 1.2.8 1.2.8 http://www.zlib.net/


Python

I follow this guide roughly: http://wiki.python.org/moin/VS2012

I extract python to C:\dev\python\python-3.3.3

run: Tools\buildbot\external-common.bat

edit Tools\buildbot\external-amd64.bat and add at the bottom:


if not exist tcltk64\bin\tcl85.dll (
    cd tcl-8.5.11.0\win
    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=0 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all
    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=0 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install
    cd ..\..
)

if not exist tcltk64\bin\tk85.dll (
    cd tk-8.5.11.0\win    
    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=0 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 clean
    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=0 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 all
    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=0 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 install
    cd ..\..
)

run: Tools\buildbot\external-amd64.bat

compile ssl

move *.lib from out32dll to out64 (need to check why)

change python-3.3.3\PCBuild\_msi.vcxproj:

replace all fci.lib with cabinet.lib (fci.lib is not available anymore, upstream python also done this fix)

change PC\pyconfig.h

#ifdef _MSVC < 1600
#define hypot _hypot
#endif

open PCBuild\PCbuild.sln with visual studio 2013/2012 and convert solution. then build

pthreads

patch

diff -ur a/pthreads.2/Makefile b/pthreads.2/Makefile
--- pthreads.2/Makefile	Sun May 27 14:18:10 2012
+++ lib/win64/pthreads/pthreads.2/Makefile	Wed Dec 11 21:07:05 2013
@@ -26,7 +26,7 @@
 
 CC	= cl
 CPPFLAGS = /I. /DHAVE_PTW32_CONFIG_H
-XCFLAGS = /W3 /MD /nologo
+XCFLAGS = /W3 /MT /nologo 
 CFLAGS	= /O2 /Ob2 $(XCFLAGS)
 CFLAGSD	= /Z7 $(XCFLAGS)
 
@@ -476,10 +476,10 @@
 	copy semaphore.h $(HDRDEST)
 
 $(DLLS): $(DLL_OBJS)
-	$(CC) /LDd /Zi /nologo $(DLL_OBJS) /link /implib:$*.lib $(XLIBS) /out:$@
+	$(CC) /LDd /Zi /nologo /NODEFAULTLIB:msvcr $(DLL_OBJS) /link /implib:$*.lib $(XLIBS) /out:$@
 
 $(INLINED_STAMPS): $(DLL_INLINED_OBJS)
-	$(CC) /LDd /Zi /nologo $(DLL_INLINED_OBJS) /link /implib:$*.lib $(XLIBS) /out:$*.dll
+	$(CC) /LDd /Zi /nologo /NODEFAULTLIB:msvcr $(DLL_INLINED_OBJS) /link /implib:$*.lib $(XLIBS) /out:$*.dll
 
 $(STATIC_STAMPS): $(DLL_INLINED_OBJS)
 	if exist $*.lib del $*.lib

nmake VC

freetype

@Echo off

cd freetype-2.5.2

set LIBDIR=%CD%\..\..

:: create build directory
mkdir build\windows
cd build\windows

cmake -G "NMake Makefiles" ..\..\ ^
 -DCMAKE_INSTALL_PREFIX=%LIBDIR%\freetype ^
 -DCMAKE_CXX_FLAGS_DEBUG="/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" ^
 -DCMAKE_CXX_FLAGS_MINSIZEREL="/MT /O1 /Ob1 /D NDEBUG" ^
 -DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /D NDEBUG" ^
 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT /Zi /O2 /Ob1 /D NDEBUG" ^
 -DCMAKE_RELEASE_POSTFIX:STRING="2ST" ^
 -DCMAKE_DEBUG_POSTFIX:STRING="2ST_d" ^
 -DCMAKE_BUILD_TYPE=Release
 
nmake
nmake install

cd ..\..

:: create build directory
mkdir build\windows_debug
cd build\windows_debug

cmake -G "NMake Makefiles" ..\..\ ^
 -DCMAKE_INSTALL_PREFIX=%LIBDIR%\freetype ^
 -DCMAKE_CXX_FLAGS_DEBUG="/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" ^
 -DCMAKE_CXX_FLAGS_MINSIZEREL="/MT /O1 /Ob1 /D NDEBUG" ^
 -DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /D NDEBUG" ^
 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT /Zi /O2 /Ob1 /D NDEBUG" ^
 -DCMAKE_RELEASE_POSTFIX:STRING="2ST" ^
 -DCMAKE_DEBUG_POSTFIX:STRING="2ST_d" ^
 -DCMAKE_BUILD_TYPE=Debug
 
 nmake
 nmake install

jpeg

NOT a C++ lib

run nmake -f makefile.vc setup-v10 then set machine type to x64, release optimization to O2 and /MT

png

NOT a C++ lib copied from previous version

tiff

NOT a C++ lib copied from previous version