< Calligra
Difference between revisions of "Calligra/Building Calligra on OSX"
Line 39: | Line 39: | ||
BREW_KDE_DIR=/usr/local/kde4 | BREW_KDE_DIR=/usr/local/kde4 | ||
− | export XDG_DATA_HOME=${INSTALL_DIR}/share:$ | + | export KDEHOME=${INSTALL_DIR}/.kde |
− | export KDEDIRS=${INSTALL_DIR} | + | export XDG_DATA_HOME=${INSTALL_DIR}/.local/share |
+ | export XDG_CONFIG_HOME=${INSTALL_DIR}/.config | ||
+ | export XDG_DATA_DIRS=${INSTALL_DIR}/share:${BREW_KDE_DIR}/share:${BREW_DIR}/share | ||
+ | export KDEDIRS=${INSTALL_DIR}:$KDEDIRS | ||
export DYLD_LIBRARY_PATH=${INSTALL_DIR}/lib:$DYLD_LIBRARY_PATH | export DYLD_LIBRARY_PATH=${INSTALL_DIR}/lib:$DYLD_LIBRARY_PATH | ||
export PATH=${INSTALL_DIR}/bin:$PATH | export PATH=${INSTALL_DIR}/bin:$PATH | ||
Line 49: | Line 52: | ||
update-mime-database ${INSTALL_DIR}/share/mime | update-mime-database ${INSTALL_DIR}/share/mime | ||
− | / | + | APP= |
+ | DEBUG=0 | ||
+ | |||
+ | while getopts "a:D" opt; do | ||
+ | case $opt in | ||
+ | a) | ||
+ | APP=$OPTARG | ||
+ | ;; | ||
+ | D) | ||
+ | DEBUG=1 | ||
+ | ;; | ||
+ | \?) | ||
+ | echo "Invalid option: -$OPTARG" | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
+ | done | ||
+ | |||
+ | if [ $DEBUG -eq 1 ] | ||
+ | then | ||
+ | lldb ${INSTALL_DIR}/bin/${APP}.app/ | ||
+ | else | ||
+ | ${INSTALL_DIR}/bin/${APP}.app/Contents/MacOS/${APP} | ||
+ | fi | ||
</pre> | </pre> |
Revision as of 02:47, 21 February 2014
Install Dependencies
First you need to install Calligra dependencies, you can do it manually, through Macports or Homebrew, here shows how to do it in Homebrew.
- Install Homebrew following this guide.
- Setup
adymo/homebrew-kde
tap following this guide. - Install all the dependencies to the calligra formula.
- Install
ninja
through Homebrew, which is a build tool faster than GNU make.
Setup Calligra Source Code
- Clone Calligra git repo.
git clone git://anongit.kde.org/calligra
- Checkout the branch you want to build, master branch usually works best on OSX
- Make a directory for build and a directory for install, here we call them ${BUILD_DIR} and ${INSTALL_DIR} as references.
Build & Install
- Go to ${BUILD_DIR}, run cmake, ${PATH_TO_SOURCE_DIR} is the relative path from ${BUILD_DIR} to the source code directory:
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DKDE_DEFAULT_HOME=${INSTALL_DIR}/.kde -DCMAKE_PREFIX_PATH=/usr/local/opt/gettext:/usr/local/opt/sqlite/:/usr/local/kde4 -DBUILD_doc=FALSE -DKDE4_BUILD_TESTS=off -DBUNDLE_INSTALL_DIR=${INSTALL_DIR}/bin -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DPRODUCTSET=osx ${PATH_TO_SOURCE_DIR} -GNinja -Wno-dev -DCMAKE_CXX_FLAGS=-w
- Build and install through command
ninja install
- Setup environment variables similar to the homebrew-kde guide or put them in a script so you can fire up a debugger easily
Run & Debug
- If you set environment variables in ~/.profile and ran kbuildsycoca4 and update-mime-database, you can run Calligra application by .app container under ${INSTALL_DIR}/bin
- Here is a example script which included environment variable setup and debugger support [WIP]
#! /bin/bash INSTALL_DIR=/Users/yue/Dev/calligra/install BREW_DIR=/usr/local BREW_KDE_DIR=/usr/local/kde4 export KDEHOME=${INSTALL_DIR}/.kde export XDG_DATA_HOME=${INSTALL_DIR}/.local/share export XDG_CONFIG_HOME=${INSTALL_DIR}/.config export XDG_DATA_DIRS=${INSTALL_DIR}/share:${BREW_KDE_DIR}/share:${BREW_DIR}/share export KDEDIRS=${INSTALL_DIR}:$KDEDIRS export DYLD_LIBRARY_PATH=${INSTALL_DIR}/lib:$DYLD_LIBRARY_PATH export PATH=${INSTALL_DIR}/bin:$PATH kbuildsycoca4 --noincremental update-mime-database ${BREW_DIR}/share/mime update-mime-database ${BREW_KDE_DIR}/share/mime update-mime-database ${INSTALL_DIR}/share/mime APP= DEBUG=0 while getopts "a:D" opt; do case $opt in a) APP=$OPTARG ;; D) DEBUG=1 ;; \?) echo "Invalid option: -$OPTARG" exit 1 ;; esac done if [ $DEBUG -eq 1 ] then lldb ${INSTALL_DIR}/bin/${APP}.app/ else ${INSTALL_DIR}/bin/${APP}.app/Contents/MacOS/${APP} fi
This page was last edited on 21 February 2014, at 02:47. Content is available under Creative Commons License SA 4.0 unless otherwise noted.