cross compiling kdelibs


eyecreate

Member
Joined
Feb 3, 2009
Messages
253
Website
git.eyecreate.org
I've finally gotten kdelibs to compile! This is version 4.7.1 with Qt 4.7.4. The file listed here is a snapshot of my /mnt/utmp dir that can be used to start a compile for a kde based app.


https://us.bucketexplorer.7071edbdbb1169aa0127873b1b45608c850bd791.s3.amazonaws.com/kdelibs_and_friends.tar.bz2


Previous content:

I've been trying to cross compile kdelibs for some apps that need it, but I've come across issues. The main one is that parts of the build process rely on compiling a program to output headers to compile later on.(related to the js engine) This is a problem when cross compiling as the program to output headers won't run on the host CPU. Has anyone succeeded in cross compiling kdelibs yet? Anyone know of a good solution? I already tried compiling a version of the programs on the host and substituting them in the cross build directory, but cmake keeps rebuilding them.(and I can't easily disable them from building as it wrecks other parts of cmake build process.)
 
Last edited by a moderator:
I've been trying to cross compile kdelibs for some apps that need it, but I've come across issues. The main one is that parts of the build process rely on compiling a program to output headers to compile later on.(related to the js engine) This is a problem when cross compiling as the program to output headers won't run on the host CPU. Has anyone succeeded in cross compiling kdelibs yet? Anyone know of a good solution? I already tried compiling a version of the programs on the host and substituting them in the cross build directory, but cmake keeps rebuilding them.(and I can't easily disable them from building as it wrecks other parts of cmake build process.)
there is a cross-compile howto on the kde wiki. Use that it works ;) (ok the process is painfull, but it works)
 
I've been trying to cross compile kdelibs for some apps that need it, but I've come across issues. The main one is that parts of the build process rely on compiling a program to output headers to compile later on.(related to the js engine) This is a problem when cross compiling as the program to output headers won't run on the host CPU. Has anyone succeeded in cross compiling kdelibs yet? Anyone know of a good solution? I already tried compiling a version of the programs on the host and substituting them in the cross build directory, but cmake keeps rebuilding them.(and I can't easily disable them from building as it wrecks other parts of cmake build process.)
there is a cross-compile howto on the kde wiki. Use that it works ;) (ok the process is painfull, but it works)

Are you referring to this?


http://techbase.kde.org/Getting_Started/Build/Windows/Cross-Compiling


because I couldn't find any other.
 
Are you referring to this?


http://techbase.kde....Cross-Compiling


because I couldn't find any other.
and this one too : http://techbase.kde.org/Projects/Mobile/MADDE


it contain the realy usefull bits :


kdelibs


KDElibs has several bootstrapped tools, which need to be compiled for x86. Unfortunately, current CMake doesn't support building them in one go, so we have to do the following:


cd /path/to/kdelibs/sources


mkdir build-x86


cd build-x86


cmake ..


make -C kdecore/kconfig_compiler


make -C kjs icemaker


make -C kdoctools meinproc4 This builds the host tools for x86.


Now, we can do an ARM build:


cd /path/to/kdelibs/sources


mkdir build-arm


cd build-arm


cmake .. -DCMAKE_TOOLCHAIN_FILE=$HOME/toolchain-madde.cmake -DKDE_HOST_TOOLS_PATH=/path/to/kdelibs/sources/bld-x86 .. adapt the pathes above accordingly.
 
Great! I was missing adding host tools path and uncommenting the cross compile section of kjs cmake file.


Later on in the compile, I came across an error related to it saying there was no sessionmanager in built qt. Is this true, because I'm guessing I'd have to custom compile a version on qt too, then?
 
Great! I was missing adding host tools path and uncommenting the cross compile section of kjs cmake file.


Later on in the compile, I came across an error related to it saying there was no sessionmanager in built qt. Is this true, because I'm guessing I'd have to custom compile a version on qt too, then?
recent KDE SC requiere qt 4.7, so yeah you'll need to get your custom QT 4.7... or mine ;)
 
Last edited by a moderator:
Great! I was missing adding host tools path and uncommenting the cross compile section of kjs cmake file.


Later on in the compile, I came across an error related to it saying there was no sessionmanager in built qt. Is this true, because I'm guessing I'd have to custom compile a version on qt too, then?
recent KDE SC requiere qt 4.7, so yeah you'll need to get your custom QT 4.7... or mine ;)
Thanks for the qt 4.7, it's why I actually wasn't building the latest KDE SC. I was building 4.5.5, which requires 4.6. Does that mean the qt built into the NAND (4.6) doesn't have sessionmanagement?
 
So, lots of crazy. KDE SC 4.5 won't work with qt 4,7 and KDE SC 4.6 won't work because the host attica is out of date.(for building the host tools) Figuring at this point that the Qt on the Pandora wasn't compiled with sessionmanagement, I thought I should try to compile qt 4.6 myself, but that task has turned harder than I thought. Funny how something small is making all this messy. I hope the next hotfix/release has qt with sesionmanagement in it. Until the, guess I gota figure this out.
 
I wanted to try my hand again recently with getting a working kdelibs, but your qt 4.7.3 keeps on being marked as not compiled with a certain flag. Is this true or did I configure something wrong?



Code:
CMake Error at cmake/modules/FindKDE4Internal.cmake:1291 (message):

  Qt compiled without support for -fvisibility=hidden.  This will break

  plugins and linking of some applications.  Please fix your Qt installation

  (try passing --reduce-exports to configure).


EDIT:After building my own Qt, this no longer an issue.
 
Last edited by a moderator:
Back
Top