[patch] Link Okteta for Windows (kdeutils/okteta/)

Jaroslaw Staniek js at iidea.pl
Wed May 14 13:56:58 CEST 2008


Friedrich W. H. Kossebau said the following, On 2008-05-14 13:15:
> Hi Jarosław,
> 
> Am Dienstag, 13. Mai 2008, um 15:43 Uhr, schrieben Sie:
>> Friedrich,
>> Attached patch which helps to link Okteta without any problems on Windows
>> (msvc). 
> 
> Thanks. Applied the changes for 
> 	core/ksectionlist.*
> 	program/libkakao/core/tests/testdocumentfilesynchronizerfactory.cpp
> 	core/kabstractbytearraymodel.h
> but for the rest, well, the main part, I need some more discussion, see below:

then let's go to kde-windows at kde.org; CC'd now and reattaching the patch for 
reference...

>> The main change was to add a few exports and link the main library 
>> directly instead via the static libs.
> 
> I do not like that too much, honestly.
> The added exports are just needed for the tests, not for the runtime code.
> And the static libs you removed are making it easy for me to keep an overview 
> locally, to control include dirs/dependencies and to move stuff around. 

I guess cmake tracks the deps reasonable well. At least projects bigger than 
Okteta have no problems. Optionally static libs could nbe replaced with 
dynamic libs (exactly the same complexity) if you have problems with link 
times on a non-msvc compiler.
I guess that since cmake notices changes made to the subdirectory's 
CMakeFiles.txt, the main okteta lib is rebuilt anyway no matter you have 
intermediate step with static libs...

> Could we instead please try to make static libs work also with msvc? I will be 
> glad to cooperate. But your proposed changes just go too much against my 
> development style, sorry. 

This style is pretty new to me these days (I remember it when autotools were 
in use though) :)

> What are the problems msvc has with the current build instructions?


[  6%] Building CXX object 
okteta/core/CMakeFiles/oktetacore.dir/kpiecetablebytearraymodel.obj
kpiecetablebytearraymodel.cpp
[  6%] Building CXX object 
okteta/core/CMakeFiles/oktetacore.dir/kwordbufferservice.obj
kwordbufferservice.cpp
[  6%] Building CXX object okteta/core/CMakeFiles/oktetacore.dir/kbookmarklist.obj
kbookmarklist.cpp
[  6%] Building CXX object okteta/core/CMakeFiles/oktetacore.dir/ksection.obj
ksection.cpp
[  7%] Building CXX object okteta/core/CMakeFiles/oktetacore.dir/ksectionlist.obj
ksectionlist.cpp
Linking CXX shared library ..\..\bin\oktetacore.dll
    Creating library ..\..\bin\oktetacore.lib and object ..\..\bin\oktetacore.exp
[  7%] Built target oktetacore
[  7%] Generating testoktetacore_automoc.cpp
[  7%] Building CXX object 
okteta/core/CMakeFiles/testoktetacore.dir/testoktetacore_automoc.obj
testoktetacore_automoc.cpp
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(45) 
: warning C4273: 'staticMetaObject' : inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(43) 
: see previous definition of 'public: static QMetaObject const 
KHECore::KByteArrayModel::staticMetaObject'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(45) 
: error C2491: 'KHECore::KByteArrayModel::staticMetaObject' : definition of 
dllimport static data member not allowed
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(51) 
: warning C4273: 'KHECore::KByteArrayModel::metaObject' : inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(43) 
: see previous definition of 'metaObject'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(56) 
: warning C4273: 'KHECore::KByteArrayModel::qt_metacast' : inconsistent dll 
linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(43) 
: see previous definition of 'qt_metacast'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(68) 
: warning C4273: 'KHECore::KByteArrayModel::qt_metacall' : inconsistent dll 
linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(43) 
: see previous definition of 'qt_metacall'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(85) 
: warning C4273: 'KHECore::KByteArrayModel::bookmarksAdded' : inconsistent dll 
linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(81) 
: see previous definition of 'bookmarksAdded'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(92) 
: warning C4273: 'KHECore::KByteArrayModel::bookmarksRemoved' : inconsistent 
dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(82) 
: see previous definition of 'bookmarksRemoved'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kbytearraymodel.cpp(99) 
: warning C4273: 'KHECore::KByteArrayModel::bookmarksModified' : inconsistent 
dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kbytearraymodel.h(83) 
: see previous definition of 'bookmarksModified'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(52) 
: warning C4273: 'staticMetaObject' : inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(42) 
: see previous definition of 'public: static QMetaObject const 
KHECore::KPieceTableByteArrayModel::staticMetaObject'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(52) 
: error C2491: 'KHECore::KPieceTableByteArrayModel::staticMetaObject' : 
definition of dllimport static data member not allowed
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(58) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::metaObject' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(42) 
: see previous definition of 'metaObject'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(63) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::qt_metacast' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(42) 
: see previous definition of 'qt_metacast'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(79) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::qt_metacall' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(42) 
: see previous definition of 'qt_metacall'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(99) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::revertedToVersionIndex' 
: inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(113) 
: see previous definition of 'revertedToVersionIndex'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(106) 
: warning C4273: 
'KHECore::KPieceTableByteArrayModel::headVersionDescriptionChanged' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(114) 
: see previous definition of 'headVersionDescriptionChanged'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(113) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::headVersionChanged' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(115) 
: see previous definition of 'headVersionChanged'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(120) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::bookmarksAdded' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(118) 
: see previous definition of 'bookmarksAdded'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(127) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::bookmarksRemoved' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(119) 
: see previous definition of 'bookmarksRemoved'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kpiecetablebytearraymodel.cpp(134) 
: warning C4273: 'KHECore::KPieceTableByteArrayModel::bookmarksModified' : 
inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kpiecetablebytearraymodel.h(120) 
: see previous definition of 'bookmarksModified'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kabstractbytearraymodel.cpp(50) 
: warning C4273: 'staticMetaObject' : inconsistent dll linkage
 
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\../../../../../../svn/trunk/KDE/kdeutils/okteta/core/kabstractbytearraymodel.h(86) 
: see previous definition of 'public: static QMetaObject const 
KHECore::KAbstractByteArrayModel::staticMetaObject'
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kabstractbytearraymodel.cpp(50) 
: error C2491: 'KHECore::KAbstractByteArrayModel::staticMetaObject' : 
definition of dllimport static data member not allowed
c:\kde4\tmp\kdeutils-20080202\work\msvc2005-debug\okteta\core\moc_kabstractbytearraymodel.cpp(56) 
: warning C4273: 'KHECore::KAbstractByteArrayModel::metaObject' : inconsistent 
dll linkage
[..]

-- 
regards / pozdrawiam, Jaroslaw Staniek
  Sponsored by OpenOffice Polska (http://www.openoffice.com.pl/en) to work on
  Kexi & KOffice (http://www.kexi.pl/en, http://www.koffice.org/kexi)
  KDE Libraries for MS Windows (http://windows.kde.org)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: link_windows.patch
Url: http://mail.kde.org/pipermail/kde-windows/attachments/20080514/3659fe91/attachment-0001.ksh 


More information about the Kde-windows mailing list