KOffice 2.1 Beta 2
Dima Panov
Fluffy at fluffy.khv.ru
Tue Sep 15 14:00:08 CEST 2009
On Tuesday 15 September 2009 22:27:22 Dima Panov wrote:
> On Tuesday 15 September 2009 22:06:51 Dima Panov wrote:
> > On Tuesday 15 September 2009 21:04:34 Cyrille Berger wrote:
> > > CCing kde-buildsystem to see if someone has better cmake knowledge than
> > > me and know what might trigger a wrong order of include directories.
> > >
> > > On Tuesday 15 September 2009, Dima Panov wrote:
> > > > > Hum, strange error. For me, "qatomic_arch.h" contains a list of
> > > > > #ifdef, and my architecture is defined in "QtCore/qglobal.h" that
> > > > > way:
> > > > >
> > > > > #ifndef QT_BOOTSTRAPPED
> > > > > # define QT_ARCH_I386
> > > > > #else
> > > > > # define QT_ARCH_I386
> > > > > #endif
> > > > >
> > > > > Is Qt on FreeBSD expecting the arch to be define by a cmake flag
> > > > > that would be missing in koffice ?
> > > >
> > > > Yep, have a same way in /usr/local/include/qt4/QtCore/global.h
> > > >
> > > > Dnd have a reason for failed build - koffice use wrong order in
> > > > includes search path.
> > >
> > > Ah I see, it would be a good explanation. As far as I can see, the
> > > first thing that KOffice's CMakeLists.txt [1] includes is the KDE/Qt
> > > definitions. So I would expect them to appears in first position. On my
> > > system (debian), when I do a 'VERBOSE="1" make', the first include dir
> > > are koffice dirs, followed by /usr/include/KDE, then qt4 things, then
> > > /usr/include/OpenEXR .
> >
> > At FreeBSD we don't have non-system includes in /usr/include.
> > So paths looks like this:
> > /usr/local/include - qt3/kde3 includes (with qtglobal.h, yes)
> > /usr/local/include/qt4 - qt4 includes tree
> > /usr/local/kde4/include - kde4 includes tree.
> >
> > same for libraries.
> >
> > > > /usr/local/include (defined directly or by depended packages) goes
> > > > BEFORE QT_INCLUDES, which is wrong and leads to fails while qt3
> > > > coexist alongside qt4 in the system.
> > > >
> > > > KOffice 2.0.1 can be build with redefined path with cmake args, but
> > > > KOffice 2.1 not affected by this trick. :(
> > >
> > > Hum, what trick ?
> >
> > from area51 svn trunk (test kde/qt tree for kde/freebsd team) :
> >
> > ports/editors/koffice-kde4/Makefile:
> >
> > CMAKE_ARGS+= \
> > -DCMAKE_EXE_LINKER_FLAGS:STRING="-L${KDE4_PREFIX}/lib
> > -L${LOCALBASE}/lib" \
> > -DCMAKE_MODULE_LINKER_FLAGS:STRING="-L${KDE4_PREFIX}/lib
> > -L${LOCALBASE}/lib" \
> > -DCMAKE_SHARED_LINKER_FLAGS:STRING="-L${KDE4_PREFIX}/lib
> > -L${LOCALBASE}/lib"
> >
> > > [1]
> > > http://websvn.kde.org/trunk/koffice/CMakeLists.txt?revision=1019835&vie
> > >w= ma rkup
>
> Restart build with verbose flag. And you can see this bug with paths in
> motion. /usr/local/include goes after local koffice includes but BEFORE
> /usr/local/include/qt4 and kde4 includes.
>
> In correct way it need to be declared LAST in the paths list.
> So correct order needs to be ${KOFFICEPARTS} ${KDE_INCLUDES} ${QT_INCLUDES}
> ${PACKAGE_INCLUDES} ${LOCALBASE_INCLUDES}
>
> [ 1%] Building CXX object
> libs/pigment/CMakeFiles/pigmentcms.dir/KoBasicHistogramProducers.o
> cd
> /var/tmp/usr/ports/editors/koffice-kde4.new/work/koffice-2.0.82/build/libs
> /pigment && /usr/bin/c++ -DMAKE_PIGMENTCMS_LIB -D_GNU_SOURC
> E -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS
> -O2 -pipe - march=nocona -fno-strict-aliasing -Woverloaded-virtu
> al -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG
> -DQT_NO_DEBUG -fPIC -
> I/var/tmp/usr/ports/editors/koffice-kde4.new/work/kof
> fice-2.0.82/build/libs/pigment -I/var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/pigment -I/var/tmp/usr/ports/editors
> /koffice-kde4.new/work/koffice-2.0.82 -I/var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/build -I/var/tmp/usr/ports/editors
> /koffice-kde4.new/work/koffice-2.0.82/libs/koplugin
> -I/var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/pigment/composi
> teops -I/usr/local/include -I/usr/local/kde4/include
> -I/usr/local/kde4/include/KDE - I/usr/local/include/qt4/KDE
> -I/usr/local/include/qt4 -
> I/usr/local/include/qt4/QtXmlPatterns -I/usr/local/include/qt4/QtWebKit -
> I/usr/local/include/qt4/QtHelp -I/usr/local/include/qt4/QtAssista
> nt -I/usr/local/include/qt4/QtDBus -I/usr/local/include/qt4/QtTest -
> I/usr/local/include/qt4/QtUiTools -I/usr/local/include/qt4/QtScript -I
> /usr/local/include/qt4/QtSvg -I/usr/local/include/qt4/QtXml
> -I/usr/local/include/qt4/QtSql -I/usr/local/include/qt4/QtOpenGL
> -I/usr/local/
> include/qt4/QtNetwork -I/usr/local/include/qt4/QtDesigner -
> I/usr/local/include/qt4/Qt3Support -I/usr/local/include/qt4/QtGui
> -I/usr/local/ include/qt4/QtCore -I/usr/local/include/qt4/Qt
> -I/usr/local/share/qt4/mkspecs/default - I/usr/local/include/OpenEXR -o
> CMakeFiles/pigmentcm
> s.dir/KoBasicHistogramProducers.o -c /var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/pigment/KoBasicHistogramProducer
> s.cpp
> In file included from /usr/local/include/qt4/QtCore/qbasicatomic.h:207,
> from /usr/local/include/qt4/QtCore/qatomic.h:46,
> from /usr/local/include/qt4/QtCore/qbytearray.h:46,
> from /usr/local/include/qt4/QtCore/qstring.h:46,
> from /usr/local/include/qt4/QtCore/QString:1,
> from /var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/koplugin/KoID.h:25,
> from /var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/koplugin/KoGenericRegistry.h:24,
> from /var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/pigment/KoHistogramProducer.h:27,
> from /var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/pigment/KoBasicHistogramProducers.h:22,
> from /var/tmp/usr/ports/editors/koffice-
> kde4.new/work/koffice-2.0.82/libs/pigment/KoBasicHistogramProducers.cpp:19:
> /usr/local/include/qt4/QtCore/qatomic_arch.h:88:4: error: #error "Qt has
> not been ported to this architecture"
>
>
> (full logfile attached)
>
this patch fixes pigments build.
As I said early, includes order was wrong.
In any case QT4/KDE4 includes MUST be declared before any external packages paths.
Because this glitch isn't FreeBSD-specific, it need to be fixed in mainstream sources
before release :)
--- CMakeLists.txt.orig 2009-09-11 03:45:07.000000000 +1100
+++ CMakeLists.txt 2009-09-15 22:52:00.000000000 +1100
@@ -282,8 +282,9 @@
set(PIGMENT_INCLUDES ${KOPLUGIN_INCLUDES}
${CMAKE_SOURCE_DIR}/libs/pigment
${CMAKE_SOURCE_DIR}/libs/pigment/compositeops
- ${LCMS_INCLUDE_DIR}
- ${KDE4_INCLUDES} )
+ ${QT_INCLUDES}
+ ${KDE4_INCLUDES}
+ ${LCMS_INCLUDE_DIR} )
endif (NOT NO_PIGMENT)
if(BUILD_pigment)
--
Dima "Red Fox" Panov @ Home | C73E 2B72 1FFD 61BD E206 1234 A626 76ED 93E3 B018
Khabarovsk, Russia | 2D30 2CCB 9984 130C 6F87 BAFC FB8B A09D D539 8F29
KDE at FreeBSD Team | FreeBSD committer since 10.08.2009 | FreeBSD since Sept 1995
Twitter.com:fluffy_khv | Skype:dima.panov | Jabber.org:fluffy.khv | ICQ:1745024
-------------- next part --------------
--- CMakeLists.txt.orig 2009-09-11 03:45:07.000000000 +1100
+++ CMakeLists.txt 2009-09-15 22:52:00.000000000 +1100
@@ -282,8 +282,9 @@
set(PIGMENT_INCLUDES ${KOPLUGIN_INCLUDES}
${CMAKE_SOURCE_DIR}/libs/pigment
${CMAKE_SOURCE_DIR}/libs/pigment/compositeops
- ${LCMS_INCLUDE_DIR}
- ${KDE4_INCLUDES} )
+ ${QT_INCLUDES}
+ ${KDE4_INCLUDES}
+ ${LCMS_INCLUDE_DIR} )
endif (NOT NO_PIGMENT)
if(BUILD_pigment)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20090915/4708adf3/attachment.sig
More information about the Kde-buildsystem
mailing list