Win32 Port

Lukáš Lalinský lalinsky at gmail.com
Mon Jun 12 18:54:18 CEST 2006


Stefan Gehn wrote:
> I still have plans on adding your great utf patch and the exporting stuff into 
> official taglib. My current buildsystems is based on cmake instead of 
> handmade visual studio files or the automake mess which makes things a lot 
> easier (you can build on both unix and windows, you can create makefiles or 
> msvc projects and works with mingw too, it includes taglib examples and the 
> C-bindings, ...).
> 
> I already told Scott about it but haven't had the time to put up a tarball for 
> others to test and currently I'm quite busy with finishing my bachelor 
> thesis.

Okay, I was thinking about this whole situation a bit yesterday and decided to
finish the patch I'm using and make it usable also for other people. The result
is in this bzr branch:

http://bzr.oxygene.sk/taglib/taglib.win32/

I'll try to keep it always in sync with the KDE SVN (for my own needs :)). If
you want to test the code without using bzr, here are patches against 1.4 and
SVN trunk (r549613):

http://users.musicbrainz.org/~luks/patches/taglib_1_4_win32.diff
http://users.musicbrainz.org/~luks/patches/taglib_r549613_win32.diff

What's changed:

 * All classes, static methods and functions from the C bindings are
   exported to DLL. There are two macros to control this:
    - TAGLIB_NODLL to disable DLL exports
    - TAGLIB_API_EXPORTS should be defined when building TagLib

 * File::File -- all file names on Windows are treated as UTF-8 by default.
   On NT-based systems are used "wide-char" IO functions, which means Unicode
   support for paths up to 32000 characters long. On Win 95, 98 and Me are used
   classic IO functions and ANSI codepage.

 * New functions File::useWinAnsiCP and taglib_file_use_ansi_cp to
   set whether you want to use ANSI CP rather than UTF-8 in file names.

As the Autotools build system from official tarballs is not in the SVN, I didn't
even try to port/test it. To use these patches you will need some win-compatible
build system. Here is an ugly SCons script I use:
http://users.musicbrainz.org/~luks/tmp/taglib/

l.


More information about the taglib-devel mailing list