SDK Build Scripts
Overview
The scripts in this project are used to build Sailfish SDK in its production environment. They have some assumptions about the host environment, but may offer command line options for changing the default values. The scripts can act as a starting point for adapting them for personal use if so desired.
Building Qt is only necessary once and whenever patches are applied, otherwise they can be left in the built state and utilized in subsequent Qt Creator builds.
Static Qt build is required for Installer Framework, dynamic Qt build is required for Qt Creator.
Scripts
Most of the scripts offer a --help
option.
buildqt5.sh
- builds Qtbuildqtc.sh
- builds Qt Creator and cross-gdb for i486 and armv7hl architecturesbuildicu.sh
- builds the ICU library for Linux and Windows (required for Webkit)buildifw.sh
- builds the Qt Installer Framework binariesbuildmaster.sh
- start one or more build tasks in a build host
The other scripts are various helper scripts mostly to package files into a format suitable for the Installer FW.
Build hosts
The SDK builds are made in the following host environments:
- Mac: OS X 10.8.5
- Linux: Ubuntu 10.04 32/64 bit
- Windows: Windows 7 32 bit
These are also the oldest host operating system versions the SDK is supported in.
Qt versions required for build
- Qt5 from
http://download.qt.io/archive/qt/5.5/5.5.0/single/
- Qt Installer FW from
git://gitorious.org/installer-framework/installer-framework.git
tag2.0.1
ICU version
ICU library is required for building Webkit in Linux and in Windows.
For Linux build from sources using the buildicu.sh
script:
For Windows use a pre-built package:
Linux
The following additional packages are required in Ubuntu 10.04
build-essential
pkg-config
git
libgtk2.0-dev
chrpath
p7zip-full
libncurses5-dev
libdbus-1-dev
ruby
libgl1-mesa-dev
"^libxcb.*"
libx11-xcb-dev
libxrender-dev
libxi-dev
flex
bison
gperf
libxslt-dev
Mac
The following additional software is required in the build Mac:
To build on OS X 10.10 the following versions of Xcode and Qt are required:
The build Mac should be prepared for command line development. To make sure this is the case, please refer to Technical Note TN2339 "Building from the Command Line with Xcode FAQ", available in the Apple Mac Developer Library.
By default, the build scripts use Qt 5.5.0. To build a different version of Qt,
set the QT_SOURCE_PACKAGE
variable in the buildqt5.sh
script to the name of
the directory containing the Qt source code, e.g.:
QT_SOURCE_PACKAGE=qt-everywhere-opensource-src-5.4.0
Similarly, when building Qt Creator you need to supply the non-default Qt build
directory to the buildqtc.sh
script, e.g.
$ ./buildqtc.sh --qt-dir ~/invariant/qt-everywhere-opensource-src-5.4.0-build
When building p7zip, follow the BUILD instructions in the accompanying README file. However, to build p7zip (as of writing version 9.38.1) on OS X 10.10 with Xcode 6, the architecture-specific makefile needs to be modified to use the correct path for the command line tools. After preparing the makefile with:
$ cp makefile.macosx_llvm_64bits makefile.machine
change the compiler paths in makefile.machine
from:
CXX=/Developer/usr/bin/llvm-g++
CC=/Developer/usr/bin/llvm-gcc
to the paths used by Xcode 6 command line tool shims:
CXX=/usr/bin/llvm-g++
CC=/usr/bin/llvm-gcc
Windows
Windows build uses Visual Studio Express 2013 for Windows Desktop and MinGW compilers in a bash shell provided by a combination of msysgit and MinGW environments. Also 7-Zip is required on the command line.
Other build requirements include perl
, python
and ruby
and they are documented here.