v1.6 RC1 on Win64

View: New views
16 Messages — Rating Filter:   Alert me  

v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Taglib is currently used by VLC, and VLC requires Win64 support in
Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
seems to break this compatibility.

I tried to compile your release candidate for Win64 using
http://mingw-w64.sf.net/ , and it died as follows:

tstring.cpp:74:16: error: definition of static data member
'TagLib::String::null' of dllimport'd class


It seems like this should be simple to fix.  Also, you might want to
clean up a lot of these warnings, too.  It would be a big help for
Win64 support:


tstring.cpp:74:16: warning: 'TagLib::String::null' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:78:1: warning: 'TagLib::String::String()' redeclared
without dllimport attribute after being referenced with dll linkage
tstring.cpp:83:1: warning: 'TagLib::String::String(const
TagLib::String&)' redeclared without dllimport attribute: previous
dllimport ignored
tstring.cpp:88:1: warning: 'TagLib::String::String(const std::string&,
TagLib::String::Type)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:109:1: warning: 'TagLib::String::String(const
TagLib::wstring&, TagLib::String::Type)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:115:1: warning: 'TagLib::String::String(const wchar_t*,
TagLib::String::Type)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:121:1: warning: 'TagLib::String::String(const char*,
TagLib::String::Type)' redeclared without dllimport attribute after
being referenced with dll linkage
tstring.cpp:143:1: warning: 'TagLib::String::String(wchar_t,
TagLib::String::Type)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:150:1: warning: 'TagLib::String::String(char,
TagLib::String::Type)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:163:1: warning: 'TagLib::String::String(const
TagLib::ByteVector&, TagLib::String::Type)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:199:1: warning: 'virtual TagLib::String::~String()'
redeclared without dllimport attribute after being referenced with dll
linkage
tstring.cpp:205:13: warning: 'std::string TagLib::String::to8Bit(bool)
const' redeclared without dllimport attribute: previous dllimport
ignored
tstring.cpp:250:17: warning: 'TagLib::wstring
TagLib::String::toWString() const' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:255:13: warning: 'const char*
TagLib::String::toCString(bool) const' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:266:18: warning: 'TagLib::String::Iterator
TagLib::String::begin()' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:271:23: warning: 'TagLib::String::ConstIterator
TagLib::String::begin() const' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:276:18: warning: 'TagLib::String::Iterator
TagLib::String::end()' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:281:23: warning: 'TagLib::String::ConstIterator
TagLib::String::end() const' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:286:5: warning: 'int TagLib::String::find(const
TagLib::String&, int) const' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:296:5: warning: 'int TagLib::String::rfind(const
TagLib::String&, int) const' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:307:6: warning: 'bool TagLib::String::startsWith(const
TagLib::String&) const' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:315:8: warning: 'TagLib::String
TagLib::String::substr(TagLib::uint, TagLib::uint) const' redeclared
without dllimport attribute after being referenced with dll linkage
tstring.cpp:325:9: warning: 'TagLib::String&
TagLib::String::append(const TagLib::String&)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:332:8: warning: 'TagLib::String TagLib::String::upper()
const' redeclared without dllimport attribute: previous dllimport
ignored
tstring.cpp:348:14: warning: 'TagLib::uint TagLib::String::size()
const' redeclared without dllimport attribute: previous dllimport
ignored
tstring.cpp:353:14: warning: 'TagLib::uint TagLib::String::length()
const' redeclared without dllimport attribute after being referenced
with dll linkage
tstring.cpp:358:6: warning: 'bool TagLib::String::isEmpty() const'
redeclared without dllimport attribute: previous dllimport ignored
tstring.cpp:363:6: warning: 'bool TagLib::String::isNull() const'
redeclared without dllimport attribute: previous dllimport ignored
tstring.cpp:368:12: warning: 'TagLib::ByteVector
TagLib::String::data(TagLib::String::Type) const' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:433:5: warning: 'int TagLib::String::toInt() const'
redeclared without dllimport attribute: previous dllimport ignored
tstring.cpp:449:8: warning: 'TagLib::String
TagLib::String::stripWhiteSpace() const' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:475:6: warning: 'bool TagLib::String::isLatin1() const'
redeclared without dllimport attribute: previous dllimport ignored
tstring.cpp:484:6: warning: 'bool TagLib::String::isAscii() const'
redeclared without dllimport attribute: previous dllimport ignored
tstring.cpp:493:8: warning: 'static TagLib::String
TagLib::String::number(int)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:522:16: warning: 'TagLib::wchar&
TagLib::String::operator[](int)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:529:22: warning: 'const TagLib::wchar&
TagLib::String::operator[](int) const' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:534:6: warning: 'bool TagLib::String::operator==(const
TagLib::String&) const' redeclared without dllimport attribute after
being referenced with dll linkage
tstring.cpp:539:9: warning: 'TagLib::String&
TagLib::String::operator+=(const TagLib::String&)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:547:9: warning: 'TagLib::String&
TagLib::String::operator+=(const wchar_t*)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:555:9: warning: 'TagLib::String&
TagLib::String::operator+=(const char*)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:564:9: warning: 'TagLib::String&
TagLib::String::operator+=(wchar_t)' redeclared without dllimport
attribute after being referenced with dll linkage
tstring.cpp:572:9: warning: 'TagLib::String&
TagLib::String::operator+=(char)' redeclared without dllimport
attribute after being referenced with dll linkage
tstring.cpp:580:9: warning: 'TagLib::String&
TagLib::String::operator=(const TagLib::String&)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:592:9: warning: 'TagLib::String&
TagLib::String::operator=(const std::string&)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:610:9: warning: 'TagLib::String&
TagLib::String::operator=(const TagLib::wstring&)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:618:9: warning: 'TagLib::String&
TagLib::String::operator=(const wchar_t*)' redeclared without
dllimport attribute: previous dllimport ignored
tstring.cpp:626:9: warning: 'TagLib::String&
TagLib::String::operator=(char)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:635:9: warning: 'TagLib::String&
TagLib::String::operator=(wchar_t)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:644:9: warning: 'TagLib::String&
TagLib::String::operator=(const char*)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:663:9: warning: 'TagLib::String&
TagLib::String::operator=(const TagLib::ByteVector&)' redeclared
without dllimport attribute: previous dllimport ignored
tstring.cpp:687:6: warning: 'bool TagLib::String::operator<(const
TagLib::String&) const' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:696:6: warning: 'void TagLib::String::detach()' redeclared
without dllimport attribute after being referenced with dll linkage
tstring.cpp:708:6: warning: 'void
TagLib::String::prepare(TagLib::String::Type)' redeclared without
dllimport attribute after being referenced with dll linkage
tstring.cpp: In function 'const TagLib::String operator+(const
TagLib::String&, const TagLib::String&)':
tstring.cpp:776:22: warning: 'const TagLib::String operator+(const
TagLib::String&, const TagLib::String&)' redeclared without dllimport
attribute: previous dllimport ignored
tstring.cpp:783:22: warning: 'const TagLib::String operator+(const
char*, const TagLib::String&)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp: In function 'const TagLib::String operator+(const
TagLib::String&, const char*)':
tstring.cpp:790:22: warning: 'const TagLib::String operator+(const
TagLib::String&, const char*)' redeclared without dllimport attribute:
previous dllimport ignored
tstring.cpp:797:15: warning: 'std::ostream& operator<<(std::ostream&,
const TagLib::String&)' redeclared without dllimport attribute:
previous dllimport ignored
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Sep 3, 2009 at 11:22 PM, NightStrike<nightstrike@...> wrote:
> Taglib is currently used by VLC, and VLC requires Win64 support in
> Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
> seems to break this compatibility.
>
> I tried to compile your release candidate for Win64 using
> http://mingw-w64.sf.net/ , and it died as follows:
>
> tstring.cpp:74:16: error: definition of static data member
> 'TagLib::String::null' of dllimport'd class

How are you building TagLib? tstring.cpp should see only dllexported
TagLib::String, never dllimported.

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 Lukáš Lalinský <lalinsky@...>:

> On Thu, Sep 3, 2009 at 11:22 PM, NightStrike<nightstrike@...> wrote:
>> Taglib is currently used by VLC, and VLC requires Win64 support in
>> Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
>> seems to break this compatibility.
>>
>> I tried to compile your release candidate for Win64 using
>> http://mingw-w64.sf.net/ , and it died as follows:
>>
>> tstring.cpp:74:16: error: definition of static data member
>> 'TagLib::String::null' of dllimport'd class
>
> How are you building TagLib? tstring.cpp should see only dllexported
> TagLib::String, never dllimported.
>
> --
> Lukas Lalinsky
> lalinsky@...
>

./configure --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
--build=x86_64-linux-gnu --program-prefix= --without-pic
--disable-shared --enable-msw --disable-dependency-tracking
--prefix=/home/nightstrike/work/vlc/extras/contrib
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 NightStrike <nightstrike@...>:

> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>> On Thu, Sep 3, 2009 at 11:22 PM, NightStrike<nightstrike@...> wrote:
>>> Taglib is currently used by VLC, and VLC requires Win64 support in
>>> Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
>>> seems to break this compatibility.
>>>
>>> I tried to compile your release candidate for Win64 using
>>> http://mingw-w64.sf.net/ , and it died as follows:
>>>
>>> tstring.cpp:74:16: error: definition of static data member
>>> 'TagLib::String::null' of dllimport'd class
>>
>> How are you building TagLib? tstring.cpp should see only dllexported
>> TagLib::String, never dllimported.
>>
>> --
>> Lukas Lalinsky
>> lalinsky@...
>>
>
> ./configure --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
> --build=x86_64-linux-gnu --program-prefix= --without-pic
> --disable-shared --enable-msw --disable-dependency-tracking
> --prefix=/home/nightstrike/work/vlc/extras/contrib
>


Also, please see these two (very small) patches for consideration from 1.5:

http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-static.patch;h=23bc5d99cd16c0e3c5fb6cdaaf95e0073ed369e0;hb=HEAD

http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-cygwin.patch;h=c5efe71af393c01a2421828b2d9a26b5ee584e92;hb=HEAD
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 NightStrike <nightstrike@...>:

> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>> On Thu, Sep 3, 2009 at 11:22 PM, NightStrike<nightstrike@...> wrote:
>>> Taglib is currently used by VLC, and VLC requires Win64 support in
>>> Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
>>> seems to break this compatibility.
>>>
>>> I tried to compile your release candidate for Win64 using
>>> http://mingw-w64.sf.net/ , and it died as follows:
>>>
>>> tstring.cpp:74:16: error: definition of static data member
>>> 'TagLib::String::null' of dllimport'd class
>>
>> How are you building TagLib? tstring.cpp should see only dllexported
>> TagLib::String, never dllimported.
>
> ./configure --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
> --build=x86_64-linux-gnu --program-prefix= --without-pic
> --disable-shared --enable-msw --disable-dependency-tracking
> --prefix=/home/nightstrike/work/vlc/extras/contrib

The autotools-based build system doesn't support compilation on
Windows (and neither it did in 1.5). This is possible to fix, but I
didn't know anybody would like to use that. All that is necessary is
to define MAKE_TAGLIB_LIB.

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 Lukáš Lalinský <lalinsky@...>:

> 2009/9/3 NightStrike <nightstrike@...>:
>> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>>> On Thu, Sep 3, 2009 at 11:22 PM, NightStrike<nightstrike@...> wrote:
>>>> Taglib is currently used by VLC, and VLC requires Win64 support in
>>>> Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
>>>> seems to break this compatibility.
>>>>
>>>> I tried to compile your release candidate for Win64 using
>>>> http://mingw-w64.sf.net/ , and it died as follows:
>>>>
>>>> tstring.cpp:74:16: error: definition of static data member
>>>> 'TagLib::String::null' of dllimport'd class
>>>
>>> How are you building TagLib? tstring.cpp should see only dllexported
>>> TagLib::String, never dllimported.
>>
>> ./configure --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
>> --build=x86_64-linux-gnu --program-prefix= --without-pic
>> --disable-shared --enable-msw --disable-dependency-tracking
>> --prefix=/home/nightstrike/work/vlc/extras/contrib
>
> The autotools-based build system doesn't support compilation on
> Windows (and neither it did in 1.5). This is possible to fix, but I
> didn't know anybody would like to use that. All that is necessary is
> to define MAKE_TAGLIB_LIB.
>
> --
> Lukas Lalinsky
> lalinsky@...
>

Anyone cross compiling, I'd imagine.  It's how vlc builds taglib.  I'm
doing that right now, crossing from linux to win64.

Where should MAKE_TAGLIB_LIB be defined?
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 NightStrike <nightstrike@...>:
> Also, please see these two (very small) patches for consideration from 1.5:
>
> http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-static.patch;h=23bc5d99cd16c0e3c5fb6cdaaf95e0073ed369e0;hb=HEAD

Definitely not, we are building dll by default. A patch to add support
for static library would be welcome, though.

> http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-cygwin.patch;h=c5efe71af393c01a2421828b2d9a26b5ee584e92;hb=HEAD

Any reason why is this necessary?

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 Lukáš Lalinský <lalinsky@...>:

> 2009/9/3 NightStrike <nightstrike@...>:
>> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>>> On Thu, Sep 3, 2009 at 11:22 PM, NightStrike<nightstrike@...> wrote:
>>>> Taglib is currently used by VLC, and VLC requires Win64 support in
>>>> Taglib to have a win64 supported VLC.  1.5 works for this, but 1.6
>>>> seems to break this compatibility.
>>>>
>>>> I tried to compile your release candidate for Win64 using
>>>> http://mingw-w64.sf.net/ , and it died as follows:
>>>>
>>>> tstring.cpp:74:16: error: definition of static data member
>>>> 'TagLib::String::null' of dllimport'd class
>>>
>>> How are you building TagLib? tstring.cpp should see only dllexported
>>> TagLib::String, never dllimported.
>>
>> ./configure --target=x86_64-w64-mingw32 --host=x86_64-w64-mingw32
>> --build=x86_64-linux-gnu --program-prefix= --without-pic
>> --disable-shared --enable-msw --disable-dependency-tracking
>> --prefix=/home/nightstrike/work/vlc/extras/contrib
>
> The autotools-based build system doesn't support compilation on
> Windows (and neither it did in 1.5). This is possible to fix, but I
> didn't know anybody would like to use that. All that is necessary is
> to define MAKE_TAGLIB_LIB.
>
> --
> Lukas Lalinsky
> lalinsky@...
>

diff -ru taglib-1.6rc1/configure.in taglib-1.6rc1.new/configure.in
--- taglib-1.6rc1/configure.in 2009-09-03 21:19:26.000000000 +0200
+++ taglib-1.6rc1.new/configure.in 2009-09-04 00:00:06.000000000 +0200
@@ -37,7 +37,11 @@
 unset CDPATH

 dnl Checking host/target/build systems, for make, install etc.
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_HOST
+
+AS_CASE([$host_os],
+  [mingw*],[AC_DEFINE([MAKE_TAGLIB_LIB],[],[Enable support for windows])])
+
 dnl Perform program name transformation
 AC_ARG_PROGRAM

diff -ru taglib-1.6rc1/taglib/toolkit/tbytevector.cpp
taglib-1.6rc1.new/taglib/toolkit/tbytevector.cpp
--- taglib-1.6rc1/taglib/toolkit/tbytevector.cpp 2008-12-04
13:37:36.000000000 +0100
+++ taglib-1.6rc1.new/taglib/toolkit/tbytevector.cpp 2009-09-04
00:05:37.000000000 +0200
@@ -22,7 +22,7 @@
  *   License Version 1.1.  You may obtain a copy of the License at         *
  *   http://www.mozilla.org/MPL/                                           *
  ***************************************************************************/
-
+#include <config.h>
 #include <iostream>

 #include <tstring.h>
diff -ru taglib-1.6rc1/taglib/toolkit/tstring.cpp
taglib-1.6rc1.new/taglib/toolkit/tstring.cpp
--- taglib-1.6rc1/taglib/toolkit/tstring.cpp 2009-04-29 17:57:05.000000000 +0200
+++ taglib-1.6rc1.new/taglib/toolkit/tstring.cpp 2009-09-04
00:05:05.000000000 +0200
@@ -22,7 +22,7 @@
  *   License Version 1.1.  You may obtain a copy of the License at         *
  *   http://www.mozilla.org/MPL/                                           *
  ***************************************************************************/
-
+#include <config.h>
 #include "tstring.h"
 #include "unicode.h"
 #include "tdebug.h"
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 Lukáš Lalinský <lalinsky@...>:
> 2009/9/3 NightStrike <nightstrike@...>:
>> Also, please see these two (very small) patches for consideration from 1.5:
>>
>> http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-static.patch;h=23bc5d99cd16c0e3c5fb6cdaaf95e0073ed369e0;hb=HEAD
>
> Definitely not, we are building dll by default. A patch to add support
> for static library would be welcome, though.

Well, I could add that in to your auto* system, although it'd probably
be a good idea to update a lot of the old constructs with current
autoconf.  I can do both if you like.

So basically, you don't support building a static library on windows at all?

>> http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-cygwin.patch;h=c5efe71af393c01a2421828b2d9a26b5ee584e92;hb=HEAD
>
> Any reason why is this necessary?

I will find out.
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/4 NightStrike <nightstrike@...>:

> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>> 2009/9/3 NightStrike <nightstrike@...>:
>>> Also, please see these two (very small) patches for consideration from 1.5:
>>>
>>> http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-static.patch;h=23bc5d99cd16c0e3c5fb6cdaaf95e0073ed369e0;hb=HEAD
>>
>> Definitely not, we are building dll by default. A patch to add support
>> for static library would be welcome, though.
>
> Well, I could add that in to your auto* system, although it'd probably
> be a good idea to update a lot of the old constructs with current
> autoconf.  I can do both if you like.

The autotools build system will go away right after the 1.6 release. I
have no problem accepting a patch for it in 1.6, but combined with the
KDE-specific configuration it's so bad that I don't think updating the
autoconf script to newer constructs is worth the work.

> So basically, you don't support building a static library on windows at all?

Correct.

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/3 Lukáš Lalinský <lalinsky@...>:

> 2009/9/4 NightStrike <nightstrike@...>:
>> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>>> 2009/9/3 NightStrike <nightstrike@...>:
>>>> Also, please see these two (very small) patches for consideration from 1.5:
>>>>
>>>> http://git.videolan.org/?p=vlc.git;a=blob;f=extras/contrib/src/Patches/taglib-static.patch;h=23bc5d99cd16c0e3c5fb6cdaaf95e0073ed369e0;hb=HEAD
>>>
>>> Definitely not, we are building dll by default. A patch to add support
>>> for static library would be welcome, though.
>>
>> Well, I could add that in to your auto* system, although it'd probably
>> be a good idea to update a lot of the old constructs with current
>> autoconf.  I can do both if you like.
>
> The autotools build system will go away right after the 1.6 release. I
> have no problem accepting a patch for it in 1.6, but combined with the
> KDE-specific configuration it's so bad that I don't think updating the
> autoconf script to newer constructs is worth the work.

What are you replacing your build system with?

>> So basically, you don't support building a static library on windows at all?
>
> Correct.

It looks like just adding --enable-static did the trick.  I'm left
with a few .a files, at least.
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/4 NightStrike <nightstrike@...>:
> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>> The autotools build system will go away right after the 1.6 release. I
>> have no problem accepting a patch for it in 1.6, but combined with the
>> KDE-specific configuration it's so bad that I don't think updating the
>> autoconf script to newer constructs is worth the work.
>
> What are you replacing your build system with?

There is already CMake build system in place, we currently maintain
two and it complicates things.

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/4 Lukáš Lalinský <lalinsky@...>:

> 2009/9/4 NightStrike <nightstrike@...>:
>> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>>> The autotools build system will go away right after the 1.6 release. I
>>> have no problem accepting a patch for it in 1.6, but combined with the
>>> KDE-specific configuration it's so bad that I don't think updating the
>>> autoconf script to newer constructs is worth the work.
>>
>> What are you replacing your build system with?
>
> There is already CMake build system in place, we currently maintain
> two and it complicates things.

Does that support cross compiling?

And, did you see my other post with diff changes for config.h?
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/4 NightStrike <nightstrike@...>:

> 2009/9/4 Lukáš Lalinský <lalinsky@...>:
>> 2009/9/4 NightStrike <nightstrike@...>:
>>> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>>>> The autotools build system will go away right after the 1.6 release. I
>>>> have no problem accepting a patch for it in 1.6, but combined with the
>>>> KDE-specific configuration it's so bad that I don't think updating the
>>>> autoconf script to newer constructs is worth the work.
>>>
>>> What are you replacing your build system with?
>>
>> There is already CMake build system in place, we currently maintain
>> two and it complicates things.
>
> Does that support cross compiling?

Yes. Although I've never tried it myself, so I can't help much.

http://www.cmake.org/Wiki/CMake_Cross_Compiling
http://www.cmake.org/Wiki/CmakeMingw

> And, did you see my other post with diff changes for config.h?

Yes, but that's not the right solution. This affects way more classes
(everything under taglib/) and the macro should not be defined when
building for example the C bindings. There are a few possible
solution, http://paste.pocoo.org/show/137925/ seemed to be the easiest
way.

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by NightStrike :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/4 Lukáš Lalinský <lalinsky@...>:

> 2009/9/4 NightStrike <nightstrike@...>:
>> 2009/9/4 Lukáš Lalinský <lalinsky@...>:
>>> 2009/9/4 NightStrike <nightstrike@...>:
>>>> 2009/9/3 Lukáš Lalinský <lalinsky@...>:
>>>>> The autotools build system will go away right after the 1.6 release. I
>>>>> have no problem accepting a patch for it in 1.6, but combined with the
>>>>> KDE-specific configuration it's so bad that I don't think updating the
>>>>> autoconf script to newer constructs is worth the work.
>>>>
>>>> What are you replacing your build system with?
>>>
>>> There is already CMake build system in place, we currently maintain
>>> two and it complicates things.
>>
>> Does that support cross compiling?
>
> Yes. Although I've never tried it myself, so I can't help much.
>
> http://www.cmake.org/Wiki/CMake_Cross_Compiling
> http://www.cmake.org/Wiki/CmakeMingw

Ugh.  I have read this thoroughly and did some test setups.  I have
determined that cross compiling with CMAKE is absolutely horrendous.

With autoconf, all you do is "../configure --host=$(triplet)", and now
you're cross compiled.  This puts a boatload of responsibility on the
user of taglib to figure out what sort of magic to do to get it to
cross compile, instead of leaving that burden on the taglib
developers, the people that know the product inside and out.

Isn't there any way that you can make taglib cross compilable out of
the box once autoconf goes away?  You will be removing a very big
feature (even if you didn't know it was there and functional).

>
>> And, did you see my other post with diff changes for config.h?
>
> Yes, but that's not the right solution. This affects way more classes
> (everything under taglib/) and the macro should not be defined when
> building for example the C bindings. There are a few possible
> solution, http://paste.pocoo.org/show/137925/ seemed to be the easiest
> way.

Are you going to or have you already committed this to 1.6?
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel

Re: v1.6 RC1 on Win64

by Bugzilla from lalinsky@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

2009/9/9 NightStrike <nightstrike@...>:

> Ugh.  I have read this thoroughly and did some test setups.  I have
> determined that cross compiling with CMAKE is absolutely horrendous.
>
> With autoconf, all you do is "../configure --host=$(triplet)", and now
> you're cross compiled.  This puts a boatload of responsibility on the
> user of taglib to figure out what sort of magic to do to get it to
> cross compile, instead of leaving that burden on the taglib
> developers, the people that know the product inside and out.
>
> Isn't there any way that you can make taglib cross compilable out of
> the box once autoconf goes away?  You will be removing a very big
> feature (even if you didn't know it was there and functional).

I'm willing to accept that. As I said, you are welcome to contribute
patches to make it easier, but:

 * Maintaining two build systems is not an option (even if somebody
else volunteers to maintain it -- they won't keep it up to date)
 * Using only autotools means that people can't compile TagLib on
Windows without installing msys/cygwin. This is a much large issue
than making Linux => Windows cross-compilation harder.

Btw, as I mentioned, I had no experience with cross-compiling, but I
was able to build a static Windows version of libtag.a on Linux in
less than five minutes:

$ apt-get install mingw32
<create a file mingw.cmake with http://paste.pocoo.org/show/138909/>
$ cmake -DCMAKE_TOOLCHAIN_FILE=./mingw.cmake -DENABLE_STATIC=ON
-DBUILD_EXAMPLES=ON .
$ make
$ wine examples/tagreader.exe /shared/Hudba/Modul/Globe\ Puzzle/01\ Westwood.mp3
fixme:powrprof:DllMain (0x7e3d0000, 1, (nil)) not fully implemented
fixme:ntdll:NtPowerInformation Unimplemented NtPowerInformation action: 16
******************** "/shared/Hudba/Modul/Globe Puzzle/01
Westwood.mp3" ********************
-- TAG --
title   - "Westwood"
artist  - "Modul"
album   - "Globe Puzzle"
year    - "2006"
comment - "Juan Frank"
track   - "1"
genre   - ""
-- AUDIO --
bitrate     - 320
sample rate - 44100
channels    - 2
length      - 0:47

So I don't believe it's that hard.

>> Yes, but that's not the right solution. This affects way more classes
>> (everything under taglib/) and the macro should not be defined when
>> building for example the C bindings. There are a few possible
>> solution, http://paste.pocoo.org/show/137925/ seemed to be the easiest
>> way.
>
> Are you going to or have you already committed this to 1.6?

It's already committed.

--
Lukas Lalinsky
lalinsky@...
_______________________________________________
taglib-devel mailing list
taglib-devel@...
https://mail.kde.org/mailman/listinfo/taglib-devel