Coder Social home page Coder Social logo

sdk-build-tools's Introduction

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 Qt
  • buildqtc.sh - builds Qt Creator and cross-gdb for i486 and armv7hl architectures
  • buildicu.sh - builds the ICU library for Linux and Windows (required for Webkit)
  • buildifw.sh - builds the Qt Installer Framework binaries
  • buildmaster.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 tag 2.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:

  • Xcode 5
  • p7zip (required for packaging Qt Creator)
  • wget

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.

sdk-build-tools's People

Contributors

jlehtoranta avatar jussipakkanen avatar kaltsi avatar martyone avatar tkoskinen avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.