Archive:Getting Started/Build/Mac OS X

    From KDE TechBase
    Warning
    This section needs improvements: Please help us to

    cleanup confusing sections and fix sections which contain a todo


    Note
    If you're interested in just checking things out, binaries for kdelibs and parts of KDE in general are available at http://kde.mac.org and are generated semi-regularly.


    • Note: You may wish to do all of this inside a directory name that ends in .noindex or .build to keep spotlight from indexing all of your temporary build-files as you build them.

    mkdir ~/kde4.build cd ~/kde4.build

    Setting Up Your Build Environment

    Variables must be set to build KDE successfully, and are noted below

    • Note: Replace /opt/kde4-deps with the location of your 3rd-party tools, and add your cmake location if you compiled from source

    export PATH="/opt/qt4/bin:/opt/kde4/bin:/opt/kde4-deps/bin:$PATH" export CMAKE_LIBRARY_PATH="/opt/kde4-deps/lib" export CMAKE_INCLUDE_PATH="/opt/kde4-deps/include" export PKG_CONFIG_PATH="/opt/qt4/lib/"

    You might want to put those in your ~/.bash_profile

    • For Fink users: If your Distribution line in /sw/etc/fink.conf is 10.4-transitional, instead of 10.4, make sure you run sudo gcc_select 3.3 before proceeding with any compiling, or you will end up with binary-incompatible c++ code!
    • For others: run sudo gcc_select 4.0 if you want to be compatible with the pre-made installers.


    Required Third Party Tools

    The following third party tools are required for successfully building KDE on OSX. Also, here are some good tips for installing from source.

    cd ~/kde4.build curl http://ftp.gnu.org/gnu/libtool/libtool-2.2.tar.gz -O tar xfz libtool-2.2.tar.gz cd libtool-2.2 ls ./configure --prefix=/opt/kde4-deps make sudo make install

    cd ~/kde4.build git clone git://git.gnome.org/libxml2 cd libxml2 I DONT KNOW WHAT TO DO HERE

    • AGG
    • giflib or libungif
    • libart_lgpl
    • libidn
    • libjpeg
    • libmng
    • libpng
    • libxslt
    • libusb
    • OpenEXR
    • PCRE
    • Strigi
    • shared-mime-info
    • pkgconfig
    • subversion (to check out the kde sources)
    • dbus

    Qt/Mac Open Source Edition

    Get the Qt/Mac source code from http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x

    curl http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz -O tar xfz qt-everywhere-opensource-src-*.tar.gz

    Patches are required for a successful build. Download the qt-copy patches through KDE's svn: svn co svn://anonsvn.kde.org/home/kde/trunk/qt-copy/patches/ and apply the patches: cd qt-mac-opensource-4* for patch in /path/to/patches/*.diff; do patch -p0 < $patch; done Note: when applying patches you will get errors when processing x11 specific files (i.e. files that match the pattern *_x11.{h,cpp}), simply skip those patches.

    And finally, compile qt-mac: ./configure -prefix /opt/qt4 -qt-gif make all install

    Please note: The Qt/Mac binary edition available from ftp.trolltech.com will not work, because it does not contain the QtDBus module! (tested with 4.3.2)

    CMake

    Get the latest CMake from http://www.cmake.org/cmake/resources/software.html#latest and install:

    curl http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz -O tar xfz cmake-*.tar.gz cd cmake-* ./configure --prefix=/opt/kde4-deps make all sudo make install

    Building kdelibs

    kdelibs must be checked out of svn locally to be built: cd ~/kde4.build svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs And then compiled by performing the following: mkdir kdelibs.build cd kdelibs.build cmake ../kdelibs -DCMAKE_INSTALL_PREFIX=/opt/kde4 make all install

    Troubleshooting

    If kdelibs fails to compile successfully, check the build status for the latest Nightly Builds and Continuous Builds at http://public.kitware.com/dashboard.php?name=kde

    Information about getting and compiling the dependencies can be found at Getting_Started/Build/KDE4 and Getting_Started/Build/KDE4/Prerequisites (pages are Linux focused, but can be useful)


    Further Reading

    For more general information on using CMake, see the CMake Tutorial.