[Bf-committers] External libs builder for Windows [v2013.01.18]

Chad Fraleigh chadf at triularity.org
Sun Jan 20 02:18:37 CET 2013


On Sat, Jan 19, 2013 at 2:21 PM, Thomas Dinges <blender at dingto.org> wrote:
> Hi,
> What does that mean for the current x32/x64 MSVC 2008 libs? (VC 2008 is
> what we use for official releases).
> Will they stay the same, but if we have to upgrade a library we can use
> your script?

They could be.. at least when updated (no reason to necessarily go
replace them all with recompiled ones that are equivalent just for the
sake of doing so).


> I don't really see the benefit here (yet). It's not the same situation
> as on Linux imo.
> We don't update libs that often on Windows and if I have to rebuild one
> lib or two in weeks/months I rather do it manually with full control,
> rather than with a script (which sounds like a big hack if I get you
> right).

The problem with manual is it is not as reliable. For example for some
of the [svn-ed] libs there is a readme file that described how to
build it, which was useful.. on the other hand some things were
obviously missing because when I followed only those instructions I
got errors in some cases without doing more work. With a script
everything is effectively documented (maybe not user friendly docs,
but everything is there). And there is no need to even know how to use
the Visual Studio GUI (just install it and bring up a VS configured
prompt). The hacks that need to be done will still be there, only they
would have to all be done manually if not scripted (either by editing
files or changing various project config options).

It also forces that there is a build for VS2010 (and eventually
VS2012) for those developers that use those and things, like having no
python 3.3 for VS2010 for awhile, shouldn't happen (just because the
one compiling that lib manually only did it for VS2008). In some cases
(too bad not most) changing versions of a lib is just dropping in the
new tar/zip for the source and changing the version tag in the
makefile. In fact I remembered recently seeing a security advisory for
freetype prior 2.4.11 (the blender win32 svn binary is still 2.4.4),
so I _just_ downloaded the 2.4.11 tar (2.4.10 is what they had when I
started this builder), changed the version line in the makefile and
compiled and installed (in the builder install tree) 2008/32, 2010/32,
2010/64 with one nmake run in each VS command prompt. If done manually
it would have required extracting the compressed tar (maybe not
obvious for some windows only developers), creating a new x64 platform
(as it only comes with Win32) in Visual Studio, selecting the correct
configuration (from the multiple choices in freetype), compile, then
find and copy all the include, lib, and license files to the right
place and ideally create a version file).. and this is if the
developer already has experience with this lib's specific build needs.

NOTE to anyone that didn't read between the lines in the previous
paragraph: freetype*.lib needs to be updated for security fixes!!!
(via scripted or manual)

At minimum it has these problems:

<2.4.11  http://portaudit.FreeBSD.org/1ae613c3-5728-11e2-9483-14dae938ec40.html
<2.4.9   http://portaudit.FreeBSD.org/462e2d6c-8017-11e1-a571-bcaec565249c.html
<2.4.7   http://portaudit.FreeBSD.org/54075e39-04ac-11e1-a94e-bcaec565249c.html
<2.4.6   http://portaudit.FreeBSD.org/5d374b01-c3ee-11e0-8aa5-485d60cb5385.html

freetype/freetype.h will have its version, e.g.:

#define FREETYPE_MAJOR  2
#define FREETYPE_MINOR  4
#define FREETYPE_PATCH  4        <-- Ugg < 11 !


In the end the scripts are for the same reasons that linux has build
scripts for their package source distros. Yes, those linux packages
could all be compiled manually by the various authors/venders and then
distributed in binary packages for use by the masses.. and in the
cases where the few (well, few relative to the entire user base) want
to compile something themselves, then it is up to them to reinvent the
compile wheel. Maybe blender doesn't have as many needed libs, but it
is the same principle.

Soo.. there's my 2 cents (give or take $5). =)

-Chad

> Regards,
> Thomas
>
> Am 19.01.2013 06:47, schrieb Chad Fraleigh:
>> After some more work, a few breaks to avoid insanity fighting with
>> some of the VS and cmake configs, and a lot of hacking of the various
>> build scripts/projects (the patches it has to do is a mess!), I got
>> farther. Now I'm able to build all the following libs under
>> VS2008/32-bit, VS2010/32-bit, VS2010+SDK7.1/32-bit, and
>> VS2010+SDK7.1/64-bit:
>>
>>       boost
>>       freetype
>>       ilmbase
>>       jpeg
>>       lcms
>>       llvm
>>       openal
>>       opencollada
>>       opencolorio
>>       openexr
>>       openimageio
>>       png
>>       pthreads
>>       python
>>       samplerate
>>       sdl
>>       tiff
>>       tinyxml
>>       yaml
>>       zlib
>>       zlibwapi
>>
>> I'll try to install the 6.1 SDK soon and see if it also works for
>> VS2008 x64. Unfortunately when I reinstalled my VS's, VS2012 decided
>> to manifest a bug where it doesn't install any of the C header files
>> (thanks M$!).. so I can't do any more testing on them at the moment.
>>
>> The builder setup (with and without source tar/zip distros):
>>
>>       http://www.triularity.org/download/blender/lib-builder.zip  (186M)
>>       http://www.triularity.org/download/blender/lib-builder-nosrc.zip  (4.5M)
>>
>> The results of my compiles (the VS10+SDK7.1 x32 was omitted due to
>> size and being mostly redundant if someone just needs the 2010
>> binaries).
>>
>>       http://www.triularity.org/download/blender/install-vs9.0_x32_sdk6.0.zip
>>   (217M)  **
>>       http://www.triularity.org/download/blender/install-vs10.0_x32_sdk7.0.zip
>>   (214M)
>>       http://www.triularity.org/download/blender/install-vs10.0_x64_sdk7.1.zip
>>   (254M)
>>
>>       ** install-vs9.0_x32_sdk6.0.zip is still uploading as of composing
>> this message, so give it half an hour or so if you want that one.
>>
>> The logs for each of those builds (generated by the buildall.bat
>> script) for reference:
>>
>>       http://www.triularity.org/download/blender/logs-vs9.0_x32_sdk6.0.zip  (275K)
>>       http://www.triularity.org/download/blender/logs-vs10.0_x32_sdk7.0.zip  (471K)
>>       http://www.triularity.org/download/blender/logs-vs10.0_x32_sdk7.1.zip  (472K)
>>       http://www.triularity.org/download/blender/logs-vs10.0_x64_sdk7.1.zip  (498K)
>>
>> All the old install-*.zip's have been deleted (to free up space).
>>
>>
>> -Chad

> --
> Thomas Dinges
> Blender Developer, Artist and Musician
>
> www.dingto.org


More information about the Bf-committers mailing list