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