[arch-general] build help needed, Trinity kdebase - 2 issues on Arch

David C. Rankin drankinatty at suddenlinkmail.com
Fri Feb 4 15:10:06 EST 2011


Guys,

	After getting kdelibs done, I have run into a wall with the building kdebase:

http://websvn.kde.org/branches/trinity/kdebase/
(see bottom of page for admin and cmake links)

	There are 2 issues I'm having on Arch:

(1) If kde4/Qt4 is installed, cmake fails when it uses
/usr/include/QtCore/qfile.h instead of /opt/qt/include/qfile.h.

I cannot figure out how to tell cmake to ignore the /usr/include. I have tried
the cmake arguments:

  cmake ../ \
    -DCMAKE_INSTALL_PREFIX=${trinity_prefix} \
    -DWITH_QT3=ON \
    -DQTDIR=/opt/qt \
    -DBUILD_ALL=ON \
    -DCMAKE_SKIP_RPATH=ON

and I have set the environment as:

  [[ ${PATH%%:*} =~ /opt/qt/bin ]] || export PATH=/opt/qt/bin:$PATH
  export CMAKE_PREFIX_PATH=/opt/qt
  export CMAKE_INCLUDE_PATH=/opt/qt/include:/opt/qt/include/tqt
  export KDEDIR=/opt/trinity
  export KDEDIRS=/opt/trinity:/usr
  export
PKG_CONFIG_PATH=:/opt/trinity/lib/pkgconfig:/opt/trinity/lib/pkgconfig:/opt/qt/lib/pkgconfig
  export XDG_CONFIG_DIRS=/etc/xdg:/opt/trinity/etc/xdg:/opt/trinity/etc/xdg
  export
XDG_DATA_DIRS=/usr/share/:/usr/local/share/:/opt/trinity/share:/opt/trinity/share

However, the kdebase build still fails due to grabbing the wrong qfile.h:

[ 11%] Building CXX object
kicker/libkicker/CMakeFiles/kickermain-shared.dir/kickerSettings.cpp.o
cd /dat_e/david/bld/trinity/kdebase/src/kicker/libkicker && /usr/bin/c++
-Dkickermain_shared_EXPORTS -DHAVE_CONFIG_H -DUSE_QT3 -DQT_NO_ASCII_CAST
-DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
-DQT_THREAD_SUPPORT -D_REENTRANT -march=x86-64 -mtune=generic -O2 -pipe
-include tqt.h -fPIC -I/dat_e/david/bld/trinity/kdebase/src/kicker/libkicker
-I/opt/trinity/include -I/opt/qt/include -I/opt/qt/include/tqt   -o
CMakeFiles/kickermain-shared.dir/kickerSettings.cpp.o -c
/dat_e/david/bld/trinity/kdebase/src/kicker/libkicker/kickerSettings.cpp
In file included from /usr/include/QtCore/QFile:1:0,
                 from
/dat_e/david/bld/trinity/kdebase/src/kicker/libkicker/kickerSettings.cpp:7:
/usr/include/QtCore/qfile.h:53:1: error: ‘QT_BEGIN_HEADER’ does not name a type
/usr/include/QtCore/qfile.h:62:27: error: expected initializer before ‘:’ token
make[2]: ***
[kicker/libkicker/CMakeFiles/kickermain-shared.dir/kickerSettings.cpp.o] Error 1
make[2]: Leaving directory `/dat_e/david/bld/trinity/kdebase/src'
make[1]: *** [kicker/libkicker/CMakeFiles/kickermain-shared.dir/all] Error 2
make[1]: Leaving directory `/dat_e/david/bld/trinity/kdebase/src'
make: *** [all] Error 2
    Aborting...

I don't know if this is due to checks in the admin/acinclude.m4.in that look for
kde4 before looking for kde3 and set QTDIR or what, but I need help find a way
to have cmake ignore the Qt4 /usr/include.


(2) On boxes without kde4, the kdebase build proceeds fine until it hits 29%
building kcontrol/iccconfig/iccconfig.cpp. From talking to the folks on the
trinity list, it looks like something related to the xrandr package. Looking at
the error, it looks like the build doesn't understand the type
‘KRandrSimpleAPI*’. The full build error is:

[ 29%] Building CXX object
kcontrol/iccconfig/CMakeFiles/kcm_iccconfig-module.dir/iccconfig.cpp.o
cd /home/david/arch/pkg/tbld/kdebase/src/kcontrol/iccconfig && /usr/bin/c++
-Dkcm_iccconfig_module_EXPORTS -DHAVE_CONFIG_H -DUSE_QT3 -DQT_NO_ASCII_CAST
-DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
-DQT_THREAD_SUPPORT -D_REENTRANT -march=i686 -mtune=generic -O2 -pipe  -include
tqt.h -fPIC -I/home/david/arch/pkg/tbld/kdebase/src/kcontrol/iccconfig
-I/home/david/arch/pkg/tbld/kdebase/src -I/opt/trinity/include -I/opt/qt/include
-I/opt/qt/include/tqt   -DKDE_CONFDIR=\"/opt/trinity/share/config\" -o
CMakeFiles/kcm_iccconfig-module.dir/iccconfig.cpp.o -c
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp: In member
function ‘void KICCConfig::load(bool)’:
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp:289:38:
error: expected type-specifier
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp:289:38:
error: cannot convert ‘int*’ to ‘KRandrSimpleAPI*’ in initialization
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp:289:38:
error: expected ‘,’ or ‘;’
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp: In member
function ‘virtual void KICCConfig::save()’:
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp:359:37:
error: expected type-specifier
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp:359:37:
error: cannot convert ‘int*’ to ‘KRandrSimpleAPI*’ in initialization
/home/david/arch/pkg/tbld/kdebase/kcontrol/iccconfig/iccconfig.cpp:359:37:
error: expected ‘,’ or ‘;’
make[2]: ***
[kcontrol/iccconfig/CMakeFiles/kcm_iccconfig-module.dir/iccconfig.cpp.o] Error 1
make[2]: Leaving directory `/home/david/arch/pkg/tbld/kdebase/src'
make[1]: *** [kcontrol/iccconfig/CMakeFiles/kcm_iccconfig-module.dir/all] Error 2
make[1]: Leaving directory `/home/david/arch/pkg/tbld/kdebase/src'
make: *** [all] Error 2
    Aborting...

  Solving this type of build issue, I will need a bit of expertise from the
list. I have googled until I'm blue trying to find a trick to get past these
issues, but I'm stuck. Any ideas from the cpp/cmake/make experts? Even narrowing
down what I need to look for will help.

  Current PKGBUILDs for tqtinterface, arts, kdelibs and the current one I'm
using for kdebase are available on the wiki:

https://wiki.archlinux.org/index.php/Trinity#Trinity_PKGBUILDs

Thanks.



-- 
David C. Rankin, J.D.,P.E.


More information about the arch-general mailing list