mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
2533 lines
71 KiB
HTML
2533 lines
71 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<HTML>
|
||
<HEAD>
|
||
<META NAME="generator" CONTENT="http://txt2tags.org">
|
||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||
<TITLE>Quantum GIS (QGIS)</TITLE>
|
||
|
||
<!-- Included /home/fischer/src/qgis/qgis/doc/style.css -->
|
||
<STYLE TYPE="text/css">
|
||
body{ background: white;
|
||
color: black;
|
||
font-family: arial,sans-serif;
|
||
}
|
||
pre { margin-left: 2em;
|
||
border: 1;
|
||
padding: 4px;
|
||
background: #ececec; }
|
||
pre, code { font-family: monospace }
|
||
|
||
|
||
.overview{ font: 1.82em; font-weight: bold;}
|
||
|
||
h1{ background-color: #F6F6F6;
|
||
color: #8FB171;
|
||
font-size: large;
|
||
font-weight: bold;
|
||
font-family: luxi serif, georgia, times new roman, times, serif;
|
||
background: none;
|
||
padding: 0.75em 0 0;
|
||
margin: 0;
|
||
line-height: 1.1em;
|
||
border-bottom: 5px solid #DCEB5C;
|
||
}
|
||
h2{ background-color: #F6F6F6;
|
||
color: #8FB171;
|
||
font-size: large;
|
||
font-weight: normal;
|
||
font-family: luxi serif, georgia, times new roman, times, serif;
|
||
background: none;
|
||
padding: 0.75em 0 0;
|
||
margin: 0;
|
||
line-height: 1.1em;
|
||
}
|
||
h3{ background-color: #F6F6F6;
|
||
color: #729FCF;
|
||
font-family: luxi serif, georgia, times new roman, times, serif;
|
||
font-weight: bold;
|
||
font-size: medium;
|
||
}
|
||
h4{ background-color: #F6F6F6;
|
||
color: #729FCF;
|
||
font-family: luxi serif, georgia, times new roman, times, serif;
|
||
font-weight: normal;
|
||
font-size: medium;
|
||
}
|
||
h5{ background-color: #F6F6F6;
|
||
color: #729FCF;
|
||
font-family: luxi serif, georgia, times new roman, times, serif;
|
||
font-weight: bold;
|
||
font-size: small;
|
||
}
|
||
a{ color: #729FCF;
|
||
font-family: arial,sans-serif;
|
||
font-size: small;
|
||
}
|
||
label{ background-color: #FFFFCC;
|
||
border: 1px solid black;
|
||
margin: 1px;
|
||
padding: 0px 3px;
|
||
font-size: small;
|
||
}
|
||
</STYLE>
|
||
|
||
</HEAD>
|
||
<BODY>
|
||
|
||
<DIV CLASS="header" ID="header">
|
||
<H1>Quantum GIS (QGIS)</H1>
|
||
<H2>Building QGIS from source - step by step</H2>
|
||
<H3>Friday May 11, 2012</H3>
|
||
</DIV>
|
||
|
||
<DIV CLASS="body" ID="body">
|
||
<P>
|
||
Last Updated: Friday May 11, 2012
|
||
Last Change : Friday May 11, 2012
|
||
</P>
|
||
<DIV CLASS="toc">
|
||
|
||
<OL>
|
||
<LI><A HREF="#toc1">Introduction</A>
|
||
<LI><A HREF="#toc2">Overview</A>
|
||
<LI><A HREF="#toc3">Building on GNU/Linux</A>
|
||
<UL>
|
||
<LI><A HREF="#toc4">3.1. Building QGIS with Qt 4.x</A>
|
||
<LI><A HREF="#toc5">3.2. Prepare apt</A>
|
||
<LI><A HREF="#toc6">3.3. Install build dependencies</A>
|
||
<LI><A HREF="#toc7">3.4. Setup ccache (Optional)</A>
|
||
<LI><A HREF="#toc8">3.5. Prepare your development environment</A>
|
||
<LI><A HREF="#toc9">3.6. Check out the QGIS Source Code</A>
|
||
<LI><A HREF="#toc10">3.7. Starting the compile</A>
|
||
<LI><A HREF="#toc11">3.8. Building Debian packages</A>
|
||
<LI><A HREF="#toc12">3.9. A practical case: Building QGIS and GRASS from source on Ubuntu with ECW and MrSID formats support</A>
|
||
</UL>
|
||
<LI><A HREF="#toc13">Building on Windows</A>
|
||
<UL>
|
||
<LI><A HREF="#toc14">4.1. Building with Microsoft Visual Studio</A>
|
||
<LI><A HREF="#toc15">4.2. Building using MinGW</A>
|
||
<LI><A HREF="#toc16">4.3. Creation of MSYS environment for compilation of Quantum GIS</A>
|
||
</UL>
|
||
<LI><A HREF="#toc17">Building on MacOS X</A>
|
||
<UL>
|
||
<LI><A HREF="#toc18">5.1. Install Developer Tools</A>
|
||
<LI><A HREF="#toc19">5.2. Install Qt4 from disk image</A>
|
||
<LI><A HREF="#toc20">5.3. Install CMake for OSX</A>
|
||
<LI><A HREF="#toc21">5.4. Install development frameworks for QGIS dependencies</A>
|
||
<LI><A HREF="#toc22">5.5. QGIS source</A>
|
||
<LI><A HREF="#toc23">5.6. Configure the build</A>
|
||
<LI><A HREF="#toc24">5.7. Building</A>
|
||
<LI><A HREF="#toc25">5.8. Post-Install</A>
|
||
</UL>
|
||
<LI><A HREF="#toc26">Authors and Acknowledgments</A>
|
||
</OL>
|
||
|
||
</DIV>
|
||
|
||
<A NAME="toc1"></A>
|
||
<H1>1. Introduction</H1>
|
||
|
||
<P>
|
||
This document is the original installation guide of the described software
|
||
Quantum GIS. The software and hardware descriptions named in this
|
||
document are in most cases registered trademarks and are therefore subject
|
||
to the legal requirements. Quantum GIS is subject to the GNU General Public
|
||
License. Find more information on the Quantum GIS Homepage:
|
||
<A HREF="http://www.qgis.org">http://www.qgis.org</A>
|
||
</P>
|
||
<P>
|
||
The details, that are given in this document have been written and verified
|
||
to the best of knowledge and responsibility of the editors. Nevertheless,
|
||
mistakes concerning the content are possible. Therefore, all data are not
|
||
liable to any duties or guarantees. The editors and publishers do not take
|
||
any responsibility or liability for failures and their consequences. You are
|
||
always welcome for indicating possible mistakes.
|
||
</P>
|
||
<P>
|
||
You can download this document as part of the Quantum GIS 'User and
|
||
Installation Guide' in HTML and PDF format via <A HREF="http://www.qgis.org">http://www.qgis.org</A>. A current
|
||
version is also available at the wiki, see:
|
||
<A HREF="http://www.qgis.org/wiki/Installation_Guide">http://www.qgis.org/wiki/Installation_Guide</A>
|
||
</P>
|
||
<P>
|
||
Translations of this document can also be downloaded at the documentation area
|
||
of the Quantum GIS project at <A HREF="http://www.qgis.org">http://www.qgis.org</A>. More information is
|
||
available via <A HREF="http://wiki.qgis.org/qgiswiki/DocumentationWritersCorner">http://wiki.qgis.org/qgiswiki/DocumentationWritersCorner</A>.
|
||
</P>
|
||
<P>
|
||
Please visit <A HREF="http://qgis.org">http://qgis.org</A> for information on joining our mailing lists
|
||
and getting involved in the project further.
|
||
</P>
|
||
<P>
|
||
/!\ <B>Note to document writers:</B> Please use this document as the central
|
||
place for describing build procedures. Please do not remove this notice.
|
||
</P>
|
||
<P>
|
||
/!\ <B>Note to document writers:</B> This documented is generated from
|
||
doc/INSTALL.t2t - if you need to edit this document, be sure to edit that
|
||
file rather than the generated INSTALL document found in the root of the
|
||
source directory.
|
||
</P>
|
||
|
||
<A NAME="toc2"></A>
|
||
<H1>2. Overview</H1>
|
||
|
||
<P>
|
||
QGIS, like a number of major projects (eg. KDE 4.0), uses CMake
|
||
(<A HREF="http://www.cmake.org">http://www.cmake.org</A>) for building from source.
|
||
</P>
|
||
<P>
|
||
Following a summary of the required dependencies for building:
|
||
</P>
|
||
<P>
|
||
Required build tools:
|
||
</P>
|
||
|
||
<UL>
|
||
<LI>CMake >= 2.6.2
|
||
<LI>Flex
|
||
<LI>Bison >= 2.4
|
||
</UL>
|
||
|
||
<P>
|
||
Required build deps:
|
||
</P>
|
||
|
||
<UL>
|
||
<LI>Qt >= 4.4.0
|
||
<LI>Proj >= 4.4.x
|
||
<LI>GEOS >= 3.0
|
||
<LI>Sqlite3 >= 3.0.0
|
||
<LI>GDAL/OGR >= 1.4.x
|
||
<LI>Qwt >= 5.0
|
||
</UL>
|
||
|
||
<P>
|
||
Optional dependencies:
|
||
</P>
|
||
|
||
<UL>
|
||
<LI>for GRASS plugin - GRASS >= 6.0.0 (libraries compiled with exceptions support on Linux 32bit)
|
||
<LI>for georeferencer - GSL >= 1.8
|
||
<LI>for postgis support and SPIT plugin - PostgreSQL >= 8.0.x
|
||
<LI>for gps plugin - expat >= 1.95 and gpsbabel
|
||
<LI>for mapserver export and PyQGIS - Python >= 2.3 (2.5+ preferred)
|
||
<LI>for python support - SIP >= 4.8, PyQt >= must match Qt version
|
||
<LI>for qgis mapserver - FastCGI
|
||
</UL>
|
||
|
||
<A NAME="toc3"></A>
|
||
<H1>3. Building on GNU/Linux</H1>
|
||
|
||
<A NAME="toc4"></A>
|
||
<H2>3.1. Building QGIS with Qt 4.x</H2>
|
||
|
||
<P>
|
||
<B>Requires:</B> Ubuntu / Debian derived distro
|
||
</P>
|
||
<P>
|
||
These notes are for Ubuntu - other versions and Debian derived distros may
|
||
require slight variations in package names.
|
||
</P>
|
||
<P>
|
||
These notes are for if you want to build QGIS from source. One of the major
|
||
aims here is to show how this can be done using binary packages for <B>*all*</B>
|
||
dependencies - building only the core QGIS stuff from source. I prefer this
|
||
approach because it means we can leave the business of managing system packages
|
||
to apt and only concern ourselves with coding QGIS!
|
||
</P>
|
||
<P>
|
||
This document assumes you have made a fresh install and have a 'clean' system.
|
||
These instructions should work fine if this is a system that has already been
|
||
in use for a while, you may need to just skip those steps which are irrelevant
|
||
to you.
|
||
</P>
|
||
<P>
|
||
/!\ <B>Note:</B> Refer to the section Building Debian packages for building
|
||
debian packages. Unless you plan to develop on QGIS, that is probably the
|
||
easiest option to compile and install QGIS.
|
||
</P>
|
||
|
||
<A NAME="toc5"></A>
|
||
<H2>3.2. Prepare apt</H2>
|
||
|
||
<P>
|
||
The packages qgis depends on to build are available in the "universe" component
|
||
of Ubuntu. This is not activated by default, so you need to activate it:
|
||
</P>
|
||
|
||
<OL>
|
||
<LI>Edit your /etc/apt/sources.list file.
|
||
<LI>Uncomment all the lines starting with "deb"
|
||
<P></P>
|
||
Also you will need to be running (K)Ubuntu 'edgy' or higher in order for
|
||
all dependencies to be met.
|
||
<P></P>
|
||
Now update your local sources database:
|
||
<P></P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo apt-get update
|
||
</PRE></div>
|
||
|
||
</OL>
|
||
|
||
<A NAME="toc6"></A>
|
||
<H2>3.3. Install build dependencies</H2>
|
||
|
||
<TABLE BORDER="1">
|
||
<TR>
|
||
<TH>Distribution</TH>
|
||
<TH>install command for packages</TH>
|
||
</TR>
|
||
<TR>
|
||
<TD>lucid</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git-core graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>maverick</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>natty</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>oneiric</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>precise</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>sid</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>squeeze</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>wheezy</TD>
|
||
<TD><CODE>apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb</CODE></TD>
|
||
</TR>
|
||
</TABLE>
|
||
|
||
<P>
|
||
(extracted from the respective control files in <CODE>debian/</CODE>)
|
||
</P>
|
||
<P>
|
||
/!\ <B>A Special Note:</B> If you are following this set of instructions on
|
||
a system where you already have Qt3 development tools installed, there will
|
||
be a conflict between Qt3 tools and Qt4 tools. For example, qmake will
|
||
point to the Qt3 version, not the Qt4. Ubuntu Qt4 and Qt3 packages are
|
||
designed to live alongside each other. This means that, for example, if you
|
||
have them both installed, you will have three qmake exe's:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
/usr/bin/qmake -> /etc/alternatives/qmake
|
||
/usr/bin/qmake-qt3
|
||
/usr/bin/qmake-qt4
|
||
</PRE></div>
|
||
|
||
<P>
|
||
The same applies to all other Qt binaries. You will notice above that the
|
||
canonical 'qmake' is managed by apt alternatives, so before we start to
|
||
build QGIS, we need to make Qt4 the default. To return Qt3 to default later
|
||
you can use this same process.
|
||
</P>
|
||
<P>
|
||
You can use apt alternatives to correct this so that the Qt4 version of
|
||
applications is used in all cases:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo update-alternatives --config qmake
|
||
sudo update-alternatives --config uic
|
||
sudo update-alternatives --config designer
|
||
sudo update-alternatives --config assistant
|
||
sudo update-alternatives --config qtconfig
|
||
sudo update-alternatives --config moc
|
||
sudo update-alternatives --config lupdate
|
||
sudo update-alternatives --config lrelease
|
||
sudo update-alternatives --config linguist
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Use the simple command line dialog that appears after running each of the
|
||
above commands to select the Qt4 version of the relevant applications.
|
||
</P>
|
||
<P>
|
||
/!\ <B>Note:</B> For python language bindings SIP >= 4.5 and PyQt4 >= 4.1 is required! Some stable GNU/Linux
|
||
distributions (e.g. Debian or SuSE) only provide SIP < 4.5 and PyQt4 < 4.1. To include support for python
|
||
language bindings you may need to build and install those packages from source.
|
||
</P>
|
||
|
||
<A NAME="toc7"></A>
|
||
<H2>3.4. Setup ccache (Optional)</H2>
|
||
|
||
<P>
|
||
You should also setup ccache to speed up compile times:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd /usr/local/bin
|
||
sudo ln -s /usr/bin/ccache gcc
|
||
sudo ln -s /usr/bin/ccache g++
|
||
</PRE></div>
|
||
|
||
<A NAME="toc8"></A>
|
||
<H2>3.5. Prepare your development environment</H2>
|
||
|
||
<P>
|
||
As a convention I do all my development work in $HOME/dev/<language>, so in
|
||
this case we will create a work environment for C++ development work like
|
||
this:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
mkdir -p ${HOME}/dev/cpp
|
||
cd ${HOME}/dev/cpp
|
||
</PRE></div>
|
||
|
||
<P>
|
||
This directory path will be assumed for all instructions that follow.
|
||
</P>
|
||
|
||
<A NAME="toc9"></A>
|
||
<H2>3.6. Check out the QGIS Source Code</H2>
|
||
|
||
<P>
|
||
There are two ways the source can be checked out. Use the anonymous method
|
||
if you do not have edit privileges for the QGIS source repository, or use
|
||
the developer checkout if you have permissions to commit source code
|
||
changes.
|
||
</P>
|
||
<P>
|
||
1. Anonymous Checkout
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd ${HOME}/dev/cpp
|
||
git clone git://github.com/qgis/Quantum-GIS.git
|
||
</PRE></div>
|
||
|
||
<P>
|
||
2. Developer Checkout
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd ${HOME}/dev/cpp
|
||
git clone git@github.com:qgis/Quantum-GIS.git
|
||
</PRE></div>
|
||
|
||
<A NAME="toc10"></A>
|
||
<H2>3.7. Starting the compile</H2>
|
||
|
||
<P>
|
||
I compile my development version of QGIS into my ~/apps directory to avoid
|
||
conflicts with Ubuntu packages that may be under /usr. This way for example
|
||
you can use the binary packages of QGIS on your system along side with your
|
||
development version. I suggest you do something similar:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
mkdir -p ${HOME}/apps
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Now we create a build directory and run ccmake:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd Quantum-GIS
|
||
mkdir build-master
|
||
cd build-master
|
||
ccmake ..
|
||
</PRE></div>
|
||
|
||
<P>
|
||
When you run ccmake (note the .. is required!), a menu will appear where
|
||
you can configure various aspects of the build. If you do not have root
|
||
access or do not want to overwrite existing QGIS installs (by your
|
||
packagemanager for example), set the CMAKE_INSTALL_PREFIX to somewhere you
|
||
have write access to (I usually use ${HOME}/apps). Now press
|
||
'c' to configure, 'e' to dismiss any error messages that may appear.
|
||
and 'g' to generate the make files. Note that sometimes 'c' needs to
|
||
be pressed several times before the 'g' option becomes available.
|
||
After the 'g' generation is complete, press 'q' to exit the ccmake
|
||
interactive dialog.
|
||
</P>
|
||
<P>
|
||
Now on with the build:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
It may take a little while to build depending on your platform.
|
||
</P>
|
||
<P>
|
||
After that you can try to run QGIS:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
$HOME/apps/bin/qgis
|
||
</PRE></div>
|
||
|
||
<P>
|
||
If all has worked properly the QGIS application should start up and appear
|
||
on your screen.
|
||
</P>
|
||
|
||
<A NAME="toc11"></A>
|
||
<H2>3.8. Building Debian packages</H2>
|
||
|
||
<P>
|
||
Instead of creating a personal installation as in the previous step you can
|
||
also create debian package. This is done from the qgis root directory, where
|
||
you'll find a debian directory.
|
||
</P>
|
||
<P>
|
||
First you need to install the debian packaging tools once:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
apt-get install build-essential
|
||
</PRE></div>
|
||
|
||
<P>
|
||
First you need to create an changelog entry for your distribution. For example for Ubuntu Lucid:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
dch -l ~lucid --force-distribution --distribution lucid "lucid build"
|
||
</PRE></div>
|
||
|
||
<P>
|
||
The QGIS packages will be created with:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
dpkg-buildpackage -us -uc -b
|
||
</PRE></div>
|
||
|
||
<P>
|
||
/!\ <B>Note:</B> If <CODE>dpkg-buildpackage</CODE> complains about unmet build dependencies
|
||
you can install them using <CODE>apt-get</CODE> and re-run the command.
|
||
</P>
|
||
<P>
|
||
/!\ <B>Note:</B> If you have <CODE>libqgis1-dev</CODE> installed, you need to remove it first
|
||
using <CODE>dpkg -r libqgis1-dev</CODE>. Otherwise <CODE>dpkg-buildpackage</CODE> will complain about a
|
||
build conflict.
|
||
</P>
|
||
<P>
|
||
The packages are created in the parent directory (ie. one level up).
|
||
Install them using dpkg. E.g.:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo debi
|
||
</PRE></div>
|
||
|
||
<A NAME="toc12"></A>
|
||
<H2>3.9. A practical case: Building QGIS and GRASS from source on Ubuntu with ECW and MrSID formats support</H2>
|
||
|
||
<P>
|
||
The following procedure has been tested on Ubuntu 8.04, 8.10 and 9.04 32bit. If
|
||
you want to use different versions of the software (gdal, grass, qgis), just
|
||
make the necessary adjustments to the following code. This guide assumes that
|
||
you don't have installed any previous version of gdal, grass and qgis.
|
||
</P>
|
||
|
||
<H3>3.9.1. Step 1: install base packages</H3>
|
||
|
||
<P>
|
||
First you need to install the necessary packages required to download the source
|
||
code and compile it. Open the terminal and issue the following command:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo apt-get install build-essential g++ subversion
|
||
</PRE></div>
|
||
|
||
<H3>3.9.2. Step 2: compile and install the ecw libraries</H3>
|
||
|
||
<P>
|
||
Go to the ERDAS web site <A HREF="http://www.erdas.com/">http://www.erdas.com/</A> and follow the links
|
||
"'products --> ECW JPEG2000 Codec SDK --> downloads'"
|
||
then download the "'Image Compression SDK Source Code 3.3'" (you'll need to make a registration
|
||
and accept a license).
|
||
</P>
|
||
<P>
|
||
Uncompress the archive in a proper location (this guide assumes
|
||
that all the downloaded source code will be placed in the user home)
|
||
and the enter the newly created folder
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd /libecwj2-3.3
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Compile the code with the standard commands
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure
|
||
</PRE></div>
|
||
|
||
<P>
|
||
then
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
</PRE></div>
|
||
|
||
<P>
|
||
then
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
leave the folder
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd ..
|
||
</PRE></div>
|
||
|
||
<H3>3.9.3. Step 3: download the MrSID binaries</H3>
|
||
|
||
<P>
|
||
Go to the LIZARDTECH web site <A HREF="http://www.lizardtech.com/">http://www.lizardtech.com/</A> and follow the links
|
||
"'download --> Developer SDKs'",
|
||
then download the "'GeoExpress SDK for Linux (x86) - gcc 4.1 32-bit'"
|
||
(you'll need to make a registration and accept a license).
|
||
</P>
|
||
<P>
|
||
Uncompress the downloaded file. The resulting directory name should be similar to "Geo_DSDK-7.0.0.2167"
|
||
</P>
|
||
|
||
<H3>3.9.4. Step 4: compile and install the gdal libraries</H3>
|
||
|
||
<P>
|
||
Download the latest gdal source code
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal
|
||
</PRE></div>
|
||
|
||
<P>
|
||
then copy a few files from the MrSID binaries folder to the folder with the gdal source code
|
||
('replace "USERNAME" with your actual account username')
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cp /home/USERNAME/Geo_DSDK-7.0.0.2167/include/*.* /home/USERNAME/gdal/frmts/mrsid/
|
||
</PRE></div>
|
||
|
||
<P>
|
||
enter the gdal source code folder
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd /gdal
|
||
</PRE></div>
|
||
|
||
<P>
|
||
and run configure with a few specific parameters
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure --without-grass --with-mrsid=../Geo_DSDK-7.0.0.2167 --without-jp2mrsid
|
||
</PRE></div>
|
||
|
||
<P>
|
||
at the end of the configuration process you should read something like
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
...
|
||
GRASS support: no
|
||
...
|
||
...
|
||
...
|
||
ECW support: yes
|
||
MrSID support yes
|
||
...
|
||
</PRE></div>
|
||
|
||
<P>
|
||
then compile normally
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
</PRE></div>
|
||
|
||
<P>
|
||
and
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
finish the process by creating the necessary links to the most recent shared libraries
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo ldconfig
|
||
</PRE></div>
|
||
|
||
<P>
|
||
at this point you may want to check if gdal was compiled correctly with MrSID and ECW
|
||
support by issuing one (or both) of the following commands
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
gdalinfo --formats | grep 'ECW'
|
||
</PRE></div>
|
||
|
||
<div class="code"><PRE>
|
||
gdalinfo --formats | grep 'SID'
|
||
</PRE></div>
|
||
|
||
<P>
|
||
leave the folder
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd ..
|
||
</PRE></div>
|
||
|
||
<H3>3.9.5. Step 5: compile and install GRASS</H3>
|
||
|
||
<P>
|
||
Before downloading and compile GRASS source code you need to install a few
|
||
other libraries and programs. We can do this through apt
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo apt-get install flex bison libreadline5-dev libncurses5-dev lesstif2-dev \
|
||
debhelper dpatch libtiff4-dev tcl8.4-dev tk8.4-dev fftw-dev xlibmesa-gl-dev \
|
||
libfreetype6-dev autoconf2.13 autotools-dev libgdal1-dev proj libjpeg62-dev \
|
||
libpng12-dev libpq-dev unixodbc-dev doxygen fakeroot cmake python-dev \
|
||
python-qt4-common python-qt4-dev python-sip4 python2.5-dev sip4 libglew1.5-dev \
|
||
libxmu6 \ libqt4-dev libgsl0-dev python-qt4 swig python-wxversion \
|
||
python-wxgtk2.8 libwxgtk2.8-0 libwxbase2.8-0 tcl8.4-dev tk8.4-dev tk8.4 \
|
||
libfftw3-dev libfftw3-3
|
||
</PRE></div>
|
||
|
||
<P>
|
||
At this point we can get the GRASS source code: you may want to download it
|
||
through svn or maybe you want just to download the latest available source code
|
||
archive. For example the GRASS 6.4rc4 is available at
|
||
<A HREF="http://grass.itc.it/grass64/source/grass-6.4.0RC4.tar.gz">http://grass.itc.it/grass64/source/grass-6.4.0RC4.tar.gz</A>
|
||
</P>
|
||
<P>
|
||
Uncompress the archive, enter the newly created folder and run configure with a few specific parameters
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
CFLAGS="-fexceptions" ./configure \
|
||
--with-tcltk-includes=/usr/include/tcl8.4 \
|
||
--with-proj-share=/usr/share/proj \
|
||
--with-gdal=/usr/local/bin/gdal-config \
|
||
--with-python=/usr/bin/python2.5-config
|
||
</PRE></div>
|
||
|
||
<P>
|
||
The additional gcc option -fexceptions is necessary to enable exceptions
|
||
support in GRASS libraries. It is currently the only way to avoid QGIS crashes
|
||
if a fatal error happens in GRASS library. See also
|
||
<A HREF="http://trac.osgeo.org/grass/ticket/869">http://trac.osgeo.org/grass/ticket/869</A>
|
||
</P>
|
||
<P>
|
||
Then as usual (it will take a while)
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
</PRE></div>
|
||
|
||
<P>
|
||
and
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
leave the folder
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd ..
|
||
</PRE></div>
|
||
|
||
<P>
|
||
you have now compiled and installed GRASS (also with the new wxpyhton interface) so you
|
||
may want to give it a try
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
grass64 -wxpython
|
||
</PRE></div>
|
||
|
||
<H3>3.9.6. Step 6: Compile and install QGIS</H3>
|
||
|
||
<P>
|
||
As for GRASS you can obtain the QGIS source code from different sources as described
|
||
in section 2 above. Once you have the sources, create a build directory in them:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd Quantum-GIS
|
||
mkdir build
|
||
cd build
|
||
</PRE></div>
|
||
|
||
<P>
|
||
then run ccmake
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
ccmake ..
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Press the "c" key to do an initial configure.
|
||
Press the "c" again and the option "Press [g] to generate and exit" will appear.
|
||
Press the "g" key to generate and exit.
|
||
</P>
|
||
<P>
|
||
then as usual (it will take a while)
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
</PRE></div>
|
||
|
||
<P>
|
||
and
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
At the end of the process you should have QGIS and GRASS working with MrSID and ECW
|
||
raster format support.
|
||
</P>
|
||
<P>
|
||
To run QGIS just use this command
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
qgis
|
||
</PRE></div>
|
||
|
||
<A NAME="toc13"></A>
|
||
<H1>4. Building on Windows</H1>
|
||
|
||
<A NAME="toc14"></A>
|
||
<H2>4.1. Building with Microsoft Visual Studio</H2>
|
||
|
||
<P>
|
||
This section describes how to build QGIS using Visual Studio on Windows. This
|
||
is currently also who the binary QGIS packages are made (earlier versions used
|
||
MinGW).
|
||
</P>
|
||
<P>
|
||
This section describes the setup required to allow Visual Studio to be used to
|
||
build QGIS.
|
||
</P>
|
||
|
||
<H3>4.1.1. Visual C++ Express Edition</H3>
|
||
|
||
<P>
|
||
The free (as in free beer) Express Edition installer is available under:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://download.microsoft.com/download/d/c/3/dc3439e7-5533-4f4c-9ba0-8577685b6e7e/vcsetup.exe">http://download.microsoft.com/download/d/c/3/dc3439e7-5533-4f4c-9ba0-8577685b6e7e/vcsetup.exe</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
The optional products are not necessary. In the process the Windows SDKs for
|
||
Visual Studio 2008 will also be downloaded and installed.
|
||
</P>
|
||
<P>
|
||
You also need the Microsoft Windows Server<65> 2003 R2 Platform SDK (for setupapi):
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe">http://download.microsoft.com/download/f/a/d/fad9efde-8627-4e7a-8812-c351ba099151/PSDK-x86.exe</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
You only need Microsoft Windows Core SDK / Build Environment (x86 32-Bit).
|
||
</P>
|
||
|
||
<H3>4.1.2. Other tools and dependencies</H3>
|
||
|
||
<P>
|
||
Download and install following packages:
|
||
</P>
|
||
|
||
<TABLE BORDER="1">
|
||
<TR>
|
||
<TH>Tool</TH>
|
||
<TH>Website</TH>
|
||
</TR>
|
||
<TR>
|
||
<TD>CMake</TD>
|
||
<TD><A HREF="http://www.cmake.org/files/v2.8/cmake-2.8.4-win32-x86.exe">http://www.cmake.org/files/v2.8/cmake-2.8.4-win32-x86.exe</A></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>Flex</TD>
|
||
<TD><A HREF="http://gnuwin32.sourceforge.net/downlinks/flex.php">http://gnuwin32.sourceforge.net/downlinks/flex.php</A></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>Bison</TD>
|
||
<TD><A HREF="http://gnuwin32.sourceforge.net/downlinks/bison.php">http://gnuwin32.sourceforge.net/downlinks/bison.php</A></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>SVN</TD>
|
||
<TD><A HREF="http://sourceforge.net/projects/win32svn/files/1.6.13/Setup-Subversion-1.6.13.msi/download">http://sourceforge.net/projects/win32svn/files/1.6.13/Setup-Subversion-1.6.13.msi/download</A></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>or GIT</TD>
|
||
<TD><A HREF="http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe">http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe</A></TD>
|
||
</TR>
|
||
<TR>
|
||
<TD>OSGeo4W</TD>
|
||
<TD><A HREF="http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe">http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe</A></TD>
|
||
</TR>
|
||
</TABLE>
|
||
|
||
<P>
|
||
OSGeo4W does not only provide ready packages for the current QGIS release and
|
||
nightly builds of the trunk, but also offers most of the dependencies needs to
|
||
build it.
|
||
</P>
|
||
<P>
|
||
For the QGIS build you need to install following packages from OSGeo4W (select
|
||
<I>Advanced Installation</I>):
|
||
</P>
|
||
|
||
<UL>
|
||
<LI>expat
|
||
<LI>fcgi
|
||
<LI>gdal17
|
||
<LI>grass
|
||
<LI>gsl-devel
|
||
<LI>iconv
|
||
<LI>pyqt4
|
||
<LI>qt4-devel
|
||
<LI>qwt5-devel-qt4
|
||
<LI>sip
|
||
</UL>
|
||
|
||
<P>
|
||
This will also select packages the above packages depend on.
|
||
</P>
|
||
<P>
|
||
Additionally QGIS also needs the include file <CODE>unistd.h</CODE>, which normally
|
||
doesn't exist on Windows. It's shipped with Flex/Bison in <CODE>GnuWin32\include</CODE>
|
||
and needs to be copied into the <CODE>VC\include</CODE> directory of your Visual C++
|
||
installation.
|
||
</P>
|
||
<P>
|
||
Earlier versions of this document also covered how to build all above
|
||
dependencies. If you're interested in that, check the history of this page in the Wiki
|
||
or the SVN repository.
|
||
</P>
|
||
|
||
<H3>4.1.3. Setting up the Visual Studio project with CMake</H3>
|
||
|
||
<P>
|
||
To start a command prompt with an environment that both has the VC++ and the OSGeo4W
|
||
variables create the following batch file (assuming the above packages were
|
||
installed in the default locations):
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
@echo off
|
||
path %SYSTEMROOT%\system32;%SYSTEMROOT%;%SYSTEMROOT%\System32\Wbem;%PROGRAMFILES%\CMake 2.8\bin;%PROGRAMFILES%\subversion\bin;%PROGRAMFILES%\GnuWin32\bin
|
||
set PYTHONPATH=
|
||
|
||
set VS90COMNTOOLS=%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\Tools\
|
||
call "%PROGRAMFILES%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
|
||
|
||
set INCLUDE=%INCLUDE%;%PROGRAMFILES%\Microsoft Platform SDK for Windows Server 2003 R2\include
|
||
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Platform SDK for Windows Server 2003 R2\lib
|
||
|
||
set OSGEO4W_ROOT=C:\OSGeo4W
|
||
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
|
||
|
||
@set GRASS_PREFIX=c:/OSGeo4W/apps/grass/grass-6.4.0
|
||
@set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\include
|
||
@set LIB=%LIB%;%OSGEO4W_ROOT%\lib;%OSGEO4W_ROOT%\lib
|
||
|
||
@cmd
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Start the batch file and on the command prompt checkout the QGIS source from
|
||
git to the source directory <CODE>Quantum-GIS</CODE>:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
git clone git://github.com/qgis/Quantum-GIS.git
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Create a 'build' directory somewhere. This will be where all the build output
|
||
will be generated.
|
||
</P>
|
||
<P>
|
||
Now run <CODE>cmake-gui</CODE> and in the <I>Where is the source code:</I> box, browse to
|
||
the top level QGIS directory.
|
||
</P>
|
||
<P>
|
||
In the <I>Where to build the binaries:</I> box, browse to the 'build' directory you
|
||
created.
|
||
</P>
|
||
<P>
|
||
Adjust the path to bison and flex so that the shortened <CODE>C:/Progra~1</CODE> is used
|
||
rather than <CODE>C:/Program Files</CODE>.
|
||
</P>
|
||
<P>
|
||
Verify that the 'BINDINGS_GLOBAL_INSTALL' option is not checked, so that python
|
||
bindings are placed into the output directory when you run the INSTALL target.
|
||
</P>
|
||
<P>
|
||
Hit <CODE>Configure</CODE> to start the configuration and select <CODE>Visual Studio 9 2008</CODE>
|
||
and keep <CODE>native compilers</CODE> and click <CODE>Finish</CODE>.
|
||
</P>
|
||
<P>
|
||
The configuration should complete without any further questions and allow you to
|
||
click <CODE>Generate</CODE>.
|
||
</P>
|
||
<P>
|
||
Now close <CODE>cmake-gui</CODE> and continue on the command prompt by starting
|
||
<CODE>vcexpress</CODE>. Use File / Open / Project/Solutions and open the
|
||
qgis-x.y.z.sln File in your project directory.
|
||
</P>
|
||
<P>
|
||
Change <CODE>Solution Configuration</CODE> from <CODE>Debug</CODE> to <CODE>RelWithDebInfo</CODE> (Release
|
||
with Debug Info) or <CODE>Release</CODE> before you build QGIS using the ALL_BUILD
|
||
target (otherwise you need debug libraries that are not included).
|
||
</P>
|
||
<P>
|
||
After the build completed you should install QGIS using the INSTALL target.
|
||
</P>
|
||
<P>
|
||
Install QGIS by building the INSTALL project. By default this will install to
|
||
c:\Program Files\qgis<version> (this can be changed by changing the
|
||
CMAKE_INSTALL_PREFIX variable in cmake-gui).
|
||
</P>
|
||
<P>
|
||
You will also either need to add all the dependency DLLs to the QGIS install
|
||
directory or add their respective directories to your PATH.
|
||
</P>
|
||
|
||
<H3>4.1.4. Packaging</H3>
|
||
|
||
<P>
|
||
To create a windows 'all in one' standalone package under ubuntu (yes you
|
||
read correctly) do the following:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo apt-get install nsis
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Now
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd qgis/ms-windows/osgeo4w
|
||
</PRE></div>
|
||
|
||
<P>
|
||
And run the nsis creation script:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
creatensis.pl
|
||
</PRE></div>
|
||
|
||
<P>
|
||
When the script completes, it should have created a QGIS installer executable
|
||
in the ms-windows directory (using the QGIS binaries from OSGEO4W).
|
||
</P>
|
||
|
||
<H3>4.1.5. Packaging your own build of QGIS</H3>
|
||
|
||
<P>
|
||
Assuming you have completed the above packaging step, if you want to include
|
||
your own hand built QGIS executables, you need to copy them in from your
|
||
windows installation into the ms-windows file tree created by the creatensis
|
||
script.
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd ms-windows/
|
||
rm -rf osgeo4w/unpacked/apps/qgis/*
|
||
cp -r /tmp/qgis1.7.0/* osgeo4w/unpacked/apps/qgis/
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Now create a package.
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./quickpackage.sh
|
||
</PRE></div>
|
||
|
||
<P>
|
||
After this you should now have a nsis installer containing your own build
|
||
of QGIS and all dependencies needed to run it on a windows machine.
|
||
</P>
|
||
|
||
<H3>4.1.6. Osgeo4w packaging</H3>
|
||
|
||
<P>
|
||
The actual packaging process is currently not documented, for now please take a
|
||
look at:
|
||
</P>
|
||
<P>
|
||
<I>ms-windows/osgeo4w/package.cmd</I>
|
||
</P>
|
||
|
||
<A NAME="toc15"></A>
|
||
<H2>4.2. Building using MinGW</H2>
|
||
|
||
<P>
|
||
<B>Note:</B> This section might be outdated as nowadays Visual C++ is use to build
|
||
the "official" packages.
|
||
</P>
|
||
<P>
|
||
<B>Note:</B> For a detailed account of building all the dependencies yourself you
|
||
can visit Marco Pasetti's website here:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.webalice.it/marco.pasetti/qgis+grass/BuildFromSource.html">http://www.webalice.it/marco.pasetti/qgis+grass/BuildFromSource.html</A>
|
||
</P>
|
||
<P>
|
||
Read on to use the simplified approach with pre-built libraries...
|
||
</P>
|
||
|
||
<H3>4.2.1. MSYS</H3>
|
||
|
||
<P>
|
||
MSYS provides a unix style build environment under windows. We have created a
|
||
zip archive that contains just about all dependencies.
|
||
</P>
|
||
<P>
|
||
Get this:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://download.osgeo.org/qgis/win32/msys.zip">http://download.osgeo.org/qgis/win32/msys.zip</A>
|
||
</P>
|
||
<P>
|
||
and unpack to c:\msys
|
||
</P>
|
||
<P>
|
||
If you wish to prepare your msys environment yourself rather than using
|
||
our pre-made one, detailed instructions are provided elsewhere in this
|
||
document.
|
||
</P>
|
||
|
||
<H3>4.2.2. Qt</H3>
|
||
|
||
<P>
|
||
Download Qt opensource precompiled edition exe and install (including the
|
||
download and install of mingw) from here:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://qt.nokia.com/downloads/">http://qt.nokia.com/downloads/</A>
|
||
</P>
|
||
<P>
|
||
When the installer will ask for MinGW, you don't need to download and install
|
||
it, just point the installer to c:\msys\mingw
|
||
</P>
|
||
<P>
|
||
When Qt installation is complete:
|
||
</P>
|
||
<P>
|
||
Edit C:\Qt\4.7.0\bin\qtvars.bat and add the following lines:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
set PATH=%PATH%;C:\msys\local\bin;c:\msys\local\lib
|
||
set PATH=%PATH%;"C:\Program Files\Subversion\bin"
|
||
</PRE></div>
|
||
|
||
<P>
|
||
I suggest you also add C:\Qt\4.7.0\bin\ to your Environment Variables Path in
|
||
the windows system preferences.
|
||
</P>
|
||
<P>
|
||
If you plan to do some debugging, you'll need to compile debug version of Qt:
|
||
C:\Qt\4.7.0\bin\qtvars.bat compile_debug
|
||
</P>
|
||
<P>
|
||
Note: there is a problem when compiling debug version of Qt 4.7, the script ends with
|
||
this message "mingw32-make: *** No rule to make target `debug'. Stop.". To
|
||
compile the debug version you have to go out of src directory and execute the
|
||
following command:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
c:\Qt\4.7.0 make
|
||
</PRE></div>
|
||
|
||
<H3>4.2.3. Flex and Bison</H3>
|
||
|
||
<P>
|
||
Get Flex
|
||
<A HREF="http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16424">http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16424</A>
|
||
(the zip bin) and extract it into c:\msys\mingw\bin
|
||
</P>
|
||
|
||
<H3>4.2.4. Python stuff (optional)</H3>
|
||
|
||
<P>
|
||
Follow this section in case you would like to use Python bindings for QGIS. To
|
||
be able to compile bindings, you need to compile SIP and PyQt4 from sources as
|
||
their installer doesn't include some development files which are necessary.
|
||
</P>
|
||
|
||
<H4>4.2.4.1. Download and install Python - use Windows installer</H4>
|
||
|
||
<P>
|
||
(It doesn't matter to what folder you'll install it)
|
||
</P>
|
||
<P>
|
||
<A HREF="http://python.org/download/">http://python.org/download/</A>
|
||
</P>
|
||
|
||
<H4>4.2.4.2. Download SIP and PyQt4 sources</H4>
|
||
|
||
<P>
|
||
<A HREF="http://www.riverbankcomputing.com/software/sip/download">http://www.riverbankcomputing.com/software/sip/download</A>
|
||
<A HREF="http://www.riverbankcomputing.com/software/pyqt/download">http://www.riverbankcomputing.com/software/pyqt/download</A>
|
||
</P>
|
||
<P>
|
||
Extract each of the above zip files in a temporary directory. Make sure
|
||
to get versions that match your current Qt installed version.
|
||
</P>
|
||
|
||
<H4>4.2.4.3. Compile SIP</H4>
|
||
|
||
<div class="code"><PRE>
|
||
c:\Qt\4.7.0\bin\qtvars.bat
|
||
python configure.py -p win32-g++
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<H4>4.2.4.4. Compile PyQt</H4>
|
||
|
||
<div class="code"><PRE>
|
||
c:\Qt\4.7.0\bin\qtvars.bat
|
||
python configure.py
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<H4>4.2.4.5. Final python notes</H4>
|
||
|
||
<P>
|
||
/!\ You can delete the directories with unpacked SIP and PyQt4 sources after a
|
||
successfull install, they're not needed anymore.
|
||
</P>
|
||
|
||
<H3>4.2.5. Subversion</H3>
|
||
|
||
<P>
|
||
In order to check out QGIS sources from the repository, you need Subversion
|
||
client. This installer should work fine:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.sliksvn.com/pub/Slik-Subversion-1.6.13-win32.msi">http://www.sliksvn.com/pub/Slik-Subversion-1.6.13-win32.msi</A>
|
||
</P>
|
||
|
||
<H3>4.2.6. CMake</H3>
|
||
|
||
<P>
|
||
CMake is build system used by Quantum GIS. Download it from here:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe">http://www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe</A>
|
||
</P>
|
||
|
||
<H3>4.2.7. QGIS</H3>
|
||
|
||
<P>
|
||
Start a cmd.exe window ( Start -> Run -> cmd.exe ) Create development
|
||
directory and move into it
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
md c:\dev\cpp
|
||
cd c:\dev\cpp
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Check out sources from SVN:
|
||
</P>
|
||
<P>
|
||
For svn trunk:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
svn co https://svn.osgeo.org/qgis/trunk/qgis
|
||
</PRE></div>
|
||
|
||
<P>
|
||
For svn 1.5 branch
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
svn co https://svn.osgeo.org/qgis/branches/Release-1_5_0 qgis1.5.0
|
||
</PRE></div>
|
||
|
||
<H3>4.2.8. Compiling</H3>
|
||
|
||
<P>
|
||
As a background read the generic building with CMake notes at the end of
|
||
this document.
|
||
</P>
|
||
<P>
|
||
Start a cmd.exe window ( Start -> Run -> cmd.exe ) if you don't have one
|
||
already. Add paths to compiler and our MSYS environment:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
c:\Qt\4.7.0\bin\qtvars.bat
|
||
</PRE></div>
|
||
|
||
<P>
|
||
For ease of use add c:\Qt\4.7.0\bin\ to your system path in system
|
||
properties so you can just type qtvars.bat when you open the cmd console.
|
||
Create build directory and set it as current directory:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cd c:\dev\cpp\qgis
|
||
md build
|
||
cd build
|
||
</PRE></div>
|
||
|
||
<H3>4.2.9. Configuration</H3>
|
||
|
||
<div class="code"><PRE>
|
||
cmakesetup ..
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<B>Note:</B> You must include the '..' above.
|
||
</P>
|
||
<P>
|
||
Click 'Configure' button. When asked, you should choose 'MinGW Makefiles' as
|
||
generator.
|
||
</P>
|
||
<P>
|
||
There's a problem with MinGW Makefiles on Win2K. If you're compiling on this
|
||
platform, use 'MSYS Makefiles' generator instead.
|
||
</P>
|
||
<P>
|
||
All dependencies should be picked up automatically, if you have set up the
|
||
Paths correctly. The only thing you need to change is the installation
|
||
destination (CMAKE_INSTALL_PREFIX) and/or set 'Debug'.
|
||
</P>
|
||
<P>
|
||
For compatibility with NSIS packaging scripts I recommend to leave the install
|
||
prefix to its default c:\program files\
|
||
</P>
|
||
<P>
|
||
When configuration is done, click 'OK' to exit the setup utility.
|
||
</P>
|
||
|
||
<H3>4.2.10. Compilation and installation</H3>
|
||
|
||
<div class="code"><PRE>
|
||
make make install
|
||
</PRE></div>
|
||
|
||
<H3>4.2.11. Run qgis.exe from the directory where it's installed (CMAKE_INSTALL_PREFIX)</H3>
|
||
|
||
<P>
|
||
Make sure to copy all .dll:s needed to the same directory as the qgis.exe
|
||
binary is installed to, if not already done so, otherwise QGIS will complain
|
||
about missing libraries when started.
|
||
</P>
|
||
<P>
|
||
A possibility is to run qgis.exe when your path contains c:\msys\local\bin and
|
||
c:\msys\local\lib directories, so the DLLs will be used from that place.
|
||
</P>
|
||
|
||
<H3>4.2.12. Create the installation package: (optional)</H3>
|
||
|
||
<P>
|
||
Download and install NSIS from (<A HREF="http://nsis.sourceforge.net/Main_Page">http://nsis.sourceforge.net/Main_Page</A>)
|
||
</P>
|
||
<P>
|
||
Now using windows explorer, enter the win_build directory in your QGIS source
|
||
tree. Read the READMEfile there and follow the instructions. Next right click
|
||
on qgis.nsi and choose the option 'Compile NSIS Script'.
|
||
</P>
|
||
|
||
<A NAME="toc16"></A>
|
||
<H2>4.3. Creation of MSYS environment for compilation of Quantum GIS</H2>
|
||
|
||
<H3>4.3.1. Initial setup</H3>
|
||
|
||
<H4>4.3.1.1. MSYS</H4>
|
||
|
||
<P>
|
||
This is the environment that supplies many utilities from UNIX world in Windows and is needed
|
||
by many dependencies to be able to compile.
|
||
</P>
|
||
<P>
|
||
Download from here:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://puzzle.dl.sourceforge.net/sourceforge/mingw/MSYS-1.0.11-2004.04.30-1.exe">http://puzzle.dl.sourceforge.net/sourceforge/mingw/MSYS-1.0.11-2004.04.30-1.exe</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Install to <CODE>c:\msys</CODE>
|
||
</P>
|
||
<P>
|
||
All stuff we're going to compile is going to get to this directory (resp. its subdirs).
|
||
</P>
|
||
|
||
<H4>4.3.1.2. MinGW</H4>
|
||
|
||
<P>
|
||
Download from here:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://puzzle.dl.sourceforge.net/sourceforge/mingw/MinGW-5.1.3.exe">http://puzzle.dl.sourceforge.net/sourceforge/mingw/MinGW-5.1.3.exe</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Install to <CODE>c:\msys\mingw</CODE>
|
||
</P>
|
||
<P>
|
||
It suffices to download and install only <CODE>g++</CODE> and <CODE>mingw-make</CODE> components.
|
||
</P>
|
||
|
||
<H4>4.3.1.3. Flex and Bison</H4>
|
||
|
||
<P>
|
||
Flex and Bison are tools for generation of parsers, they're needed for GRASS and also QGIS compilation.
|
||
</P>
|
||
<P>
|
||
Download the following packages:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://gnuwin32.sourceforge.net/downlinks/flex-bin-zip.php">http://gnuwin32.sourceforge.net/downlinks/flex-bin-zip.php</A>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://gnuwin32.sourceforge.net/downlinks/bison-bin-zip.php">http://gnuwin32.sourceforge.net/downlinks/bison-bin-zip.php</A>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://gnuwin32.sourceforge.net/downlinks/bison-dep-zip.php">http://gnuwin32.sourceforge.net/downlinks/bison-dep-zip.php</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Unpack them all to <CODE>c:\msys\local</CODE>
|
||
</P>
|
||
|
||
<H3>4.3.2. Installing dependencies</H3>
|
||
|
||
<H4>4.3.2.1. Getting ready</H4>
|
||
|
||
<P>
|
||
Paul Kelly did a great job and prepared a package of precompiled libraries for GRASS.
|
||
The package currently includes:
|
||
</P>
|
||
|
||
<UL>
|
||
<LI>zlib-1.2.3
|
||
<LI>libpng-1.2.16-noconfig
|
||
<LI>xdr-4.0-mingw2
|
||
<LI>freetype-2.3.4
|
||
<LI>fftw-2.1.5
|
||
<LI>PDCurses-3.1
|
||
<LI>proj-4.5.0
|
||
<LI>gdal-1.4.1
|
||
</UL>
|
||
|
||
<P>
|
||
It's available for download here:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://www.stjohnspoint.co.uk/grass/wingrass-extralibs.tar.gz">http://www.stjohnspoint.co.uk/grass/wingrass-extralibs.tar.gz</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Moreover he also left the notes how to compile it (for those interested):
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://www.stjohnspoint.co.uk/grass/README.extralibs">http://www.stjohnspoint.co.uk/grass/README.extralibs</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Unpack the whole package to <CODE>c:\msys\local</CODE>
|
||
</P>
|
||
|
||
<H4>4.3.2.2. GRASS</H4>
|
||
|
||
<P>
|
||
Grab sources from CVS or use a weekly snapshot, see:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://grass.itc.it/devel/cvs.php">http://grass.itc.it/devel/cvs.php</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
In MSYS console go to the directory where you've unpacked or checked out sources
|
||
(e.g. <CODE>c:\msys\local\src\grass-6.3.cvs</CODE>)
|
||
</P>
|
||
<P>
|
||
Run these commands:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
export PATH="/usr/local/bin:/usr/local/lib:$PATH"
|
||
./configure --prefix=/usr/local --bindir=/usr/local --with-includes=/usr/local/include --with-libs=/usr/local/lib --with-cxx --without-jpeg \
|
||
--without-tiff --with-postgres=yes --with-postgres-includes=/local/pgsql/include --with-pgsql-libs=/local/pgsql/lib --with-opengl=windows --with-fftw \
|
||
--with-freetype --with-freetype-includes=/mingw/include/freetype2 --without-x --without-tcltk --enable-x11=no --enable-shared=yes \
|
||
--with-proj-share=/usr/local/share/proj
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
It should get installed to <CODE>c:\msys\local\grass-6.3.cvs</CODE>
|
||
</P>
|
||
<P>
|
||
By the way, these pages might be useful:
|
||
</P>
|
||
|
||
<UL>
|
||
<LI><A HREF="http://grass.gdf-hannover.de/wiki/WinGRASS_Current_Status">http://grass.gdf-hannover.de/wiki/WinGRASS_Current_Status</A>
|
||
<LI><A HREF="http://geni.ath.cx/grass.html">http://geni.ath.cx/grass.html</A>
|
||
</UL>
|
||
|
||
<H4>4.3.2.3. GEOS</H4>
|
||
|
||
<P>
|
||
Download the sources:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://geos.refractions.net/geos-2.2.3.tar.bz2">http://geos.refractions.net/geos-2.2.3.tar.bz2</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Unpack to e.g. <CODE>c:\msys\local\src</CODE>
|
||
</P>
|
||
<P>
|
||
To compile, I had to patch the sources: in file <CODE>source/headers/timeval.h</CODE> line 13.
|
||
Change it from:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
#ifdef _WIN32
|
||
</PRE></div>
|
||
|
||
<P>
|
||
to:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
#if defined(_WIN32) && defined(_MSC_VER)
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Now, in MSYS console, go to the source directory and run:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure --prefix=/usr/local
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<H4>4.3.2.4. SQLITE</H4>
|
||
|
||
<P>
|
||
You can use precompiled DLL, no need to compile from source:
|
||
</P>
|
||
<P>
|
||
Download this archive:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://www.sqlite.org/sqlitedll-3_3_17.zip">http://www.sqlite.org/sqlitedll-3_3_17.zip</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
and copy sqlite3.dll from it to <CODE>c:\msys\local\lib</CODE>
|
||
</P>
|
||
<P>
|
||
Then download this archive:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://www.sqlite.org/sqlite-source-3_3_17.zip">http://www.sqlite.org/sqlite-source-3_3_17.zip</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
and copy sqlite3.h to <CODE>c:\msys\local\include</CODE>
|
||
</P>
|
||
|
||
<H4>4.3.2.5. GSL</H4>
|
||
|
||
<P>
|
||
Download sources:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="ftp://ftp.gnu.org/gnu/gsl/gsl-1.9.tar.gz">ftp://ftp.gnu.org/gnu/gsl/gsl-1.9.tar.gz</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Unpack to <CODE>c:\msys\local\src</CODE>
|
||
</P>
|
||
<P>
|
||
Run from MSYS console in the source directory:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<H4>4.3.2.6. EXPAT</H4>
|
||
|
||
<P>
|
||
Download sources:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://dfn.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz">http://dfn.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
Unpack to <CODE>c:\msys\local\src</CODE>
|
||
</P>
|
||
<P>
|
||
Run from MSYS console in the source directory:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure
|
||
make
|
||
make install
|
||
</PRE></div>
|
||
|
||
<H4>4.3.2.7. POSTGRES</H4>
|
||
|
||
<P>
|
||
We're going to use precompiled binaries. Use the link below for download:
|
||
</P>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://wwwmaster.postgresql.org/download/mirrors-ftp?file=%2Fbinary%2Fv8.2.4%2Fwin32%2Fpostgresql-8.2.4-1-binaries-no-installer.zip">http://wwwmaster.postgresql.org/download/mirrors-ftp?file=%2Fbinary%2Fv8.2.4%2Fwin32%2Fpostgresql-8.2.4-1-binaries-no-installer.zip</A>
|
||
</BLOCKQUOTE>
|
||
<P>
|
||
copy contents of pgsql directory from the archive to <CODE>c:\msys\local</CODE>
|
||
</P>
|
||
|
||
<H3>4.3.3. Cleanup</H3>
|
||
|
||
<P>
|
||
We're done with preparation of MSYS environment. Now you can delete all stuff in <CODE>c:\msys\local\src</CODE> - it takes quite a lot
|
||
of space and it's not necessary at all.
|
||
</P>
|
||
|
||
<A NAME="toc17"></A>
|
||
<H1>5. Building on MacOS X</H1>
|
||
|
||
<P>
|
||
In this approach I will try to avoid as much as possible building dependencies
|
||
from source and rather use frameworks wherever possible.
|
||
</P>
|
||
<P>
|
||
The base system here is Mac OS X 10.4 (<U>Tiger</U>), with a single, default,
|
||
architecture build. "Universal", SDK and non-default arch builds require
|
||
more complex options and some fiddling with the system.
|
||
Included are notes for building on Mac OS X 10.5 (<U>Leopard</U>), 10.6
|
||
(<U>Snow Leopard</U>) and 10.7 (<U>Lion</U>).
|
||
(These names will be used throughout the instructions.)
|
||
Make sure to read each section completely before typing the first command you see.
|
||
</P>
|
||
<P>
|
||
<U>General note on Terminal usage:</U> When I say "cd" to a folder in a Terminal,
|
||
it means type "cd " (without the quotes, make sure to type a space after) and
|
||
then type the path to said folder, then <return>. A simple way to do this
|
||
without having to know and type the full path is, after type the "cd " part,
|
||
drag the folder (use the icon in its window title bar, or drag a folder from
|
||
within a window) from the Desktop to the Terminal, then tap <return>.
|
||
</P>
|
||
<P>
|
||
<U>Parallel Compilation:</U> On multiprocessor/multicore Macs, it's possible to
|
||
speed up compilation, but it's not automatic. Whenever you type "make" (but
|
||
NOT "make install"), instead type:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make -j [n]
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Replace [n] with the number of cores and/or processors your Mac has. On recent
|
||
models with hyperthreading processors this can be double the physical count of
|
||
processors and cores.
|
||
</P>
|
||
<P>
|
||
ie: Mac Pro "8 Core" model (2 quad core processors) = 8
|
||
</P>
|
||
<P>
|
||
ie: Macbook Pro i5 (hyperthreading) = 2 cores X 2 = 4
|
||
</P>
|
||
|
||
<A NAME="toc18"></A>
|
||
<H2>5.1. Install Developer Tools</H2>
|
||
|
||
<P>
|
||
Developer tools are not a part of a standard OS X installation. Up through
|
||
Snow Leopard, the Developer Tools, later called Xcode, were included with the
|
||
system install disks, though it's best to download the latest version compatible
|
||
with your system to get important updates fixing various issues.
|
||
Starting with Lion, Xcode is available as a download and from the App Store.
|
||
BUT, there is really no need for the full Xcode on Lion, and in fact could be
|
||
tricky to use for compiling QGIS.
|
||
</P>
|
||
<P>
|
||
Downloading Xcode/Developer Tools requires a free developer account at
|
||
developer.apple.com. Up through Snow Leopard, get the latest <U>Xcode</U> that is
|
||
supported for your system. For Lion, all you need is the much smaller
|
||
<U>Command Line Tools for Xcode</U> (you don't get the IDE or system SDKs but they are not
|
||
necessary for QGIS). When installing Xcode up through Snow Leopard, make sure to
|
||
do a custom install and install the Unix Development or Command Line Tools option.
|
||
</P>
|
||
<P>
|
||
On Lion, if you have installed Xcode 4.0 - 4.2 and are upgrading to 4.3, it's
|
||
a good idea to uninstall the old version first with:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo /Developer/Library/uninstall-devtools
|
||
</PRE></div>
|
||
|
||
<A NAME="toc19"></A>
|
||
<H2>5.2. Install Qt4 from disk image</H2>
|
||
|
||
<P>
|
||
You need a minimum of Qt-4.4.0. I suggest getting the latest. There is no need
|
||
for the full Qt SDK, so save yourself some download time and get the frameworks
|
||
only. This is available in the Libraries section of the Qt download page.
|
||
</P>
|
||
<P>
|
||
<U>Snow Leopard+ note:</U> If you are building on Snow Leopard+, you will need to
|
||
decide between 32-bit support in the older Qt Carbon branch, or 64-bit
|
||
support in the Qt Cocoa branch. Appropriate installers are available for both
|
||
as of Qt-4.5.2, though they stopped making Carbon packages at Qt 4.7.4.
|
||
Qt 4.6+ is recommended for Cocoa.
|
||
Starting with Lion, Carbon may not work properly, if at all.
|
||
</P>
|
||
<P>
|
||
<U>PPC note:</U> The readymade Qt Cocoa installers don't include PPC support, you'd
|
||
have to compile Qt yourself. But, there appear to be issues with Qt Cocoa on
|
||
PPC Macs anyways. Qt Carbon is recommended on PPC Macs.
|
||
</P>
|
||
<P>
|
||
<A HREF="http://qt.nokia.com/downloads">http://qt.nokia.com/downloads</A>
|
||
</P>
|
||
<P>
|
||
If you want debug frameworks, Qt also provides a separate download with these.
|
||
These are in addition to the non-debug frameworks.
|
||
</P>
|
||
<P>
|
||
Earlier OS X systems may need an old Qt version - check the requirements of the
|
||
current Qt version. To get old Qt downloads, there is an FTP link at the bottom
|
||
of the download page. Files are in the qt/source (yes, even the binary packages).
|
||
</P>
|
||
<P>
|
||
Once downloaded open the disk image and run the installer. Note you need admin
|
||
privileges to install.
|
||
</P>
|
||
<P>
|
||
<U>Leopard note:</U> Qt includes a couple non-framework libraries in /usr/lib.
|
||
When using a system SDK these libraries will not be found. To fix this problem,
|
||
add symlinks to /usr/local:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo ln -s /usr/lib/libQtUiTools.a /usr/local/lib/
|
||
sudo ln -s /usr/lib/libQtCLucene.dylib /usr/local/lib/
|
||
</PRE></div>
|
||
|
||
<P>
|
||
These should then be found automatically. Earlier systems
|
||
may need some help by adding '-L/usr/local/lib' to CMAKE_SHARED_LINKER_FLAGS,
|
||
CMAKE_MODULE_LINKER_FLAGS and CMAKE_EXE_LINKER_FLAGS in the cmake build.
|
||
</P>
|
||
|
||
<A NAME="toc20"></A>
|
||
<H2>5.3. Install CMake for OSX</H2>
|
||
|
||
<P>
|
||
Get the latest source release from here:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.cmake.org/cmake/resources/software.html">http://www.cmake.org/cmake/resources/software.html</A>
|
||
</P>
|
||
<P>
|
||
Binary installers are available for OS X, but they are not recommended
|
||
(2.4 versions install in /usr instead of /usr/local, and 2.6+ versions are a
|
||
strange application). Instead, download the source.
|
||
NOTE: 2.8.5 is broken for detecting part of Qt. Fixed in 2.8.6.
|
||
Double-click the source tarball, then cd to the source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./bootstrap --docdir=/share/doc/CMake --mandir=/share/man
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<A NAME="toc21"></A>
|
||
<H2>5.4. Install development frameworks for QGIS dependencies</H2>
|
||
|
||
<P>
|
||
Download William Kyngesburye's excellent GDAL Complete package that includes
|
||
PROJ, GEOS, GDAL, SQLite3, Spatialite, and image libraries, as frameworks.
|
||
There is also a GSL framework.
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.kyngchaos.com/wiki/software/frameworks">http://www.kyngchaos.com/wiki/software/frameworks</A>
|
||
</P>
|
||
<P>
|
||
Once downloaded, open and install the frameworks.
|
||
</P>
|
||
<P>
|
||
William provides an additional installer package for Postgresql (for PostGIS
|
||
support). QGIS just needs the libpq client library, so unless you want to
|
||
setup the full Postgres + PostGIS server, all you need is the client-only
|
||
package. It's available here:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.kyngchaos.com/wiki/software/postgres">http://www.kyngchaos.com/wiki/software/postgres</A>
|
||
</P>
|
||
<P>
|
||
Also available is a GRASS application:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.kyngchaos.com/wiki/software/grass">http://www.kyngchaos.com/wiki/software/grass</A>
|
||
</P>
|
||
<P>
|
||
Old versions of these packages for older systems are available in the
|
||
software archive section.
|
||
</P>
|
||
|
||
<H3>5.4.1. Additional Dependencies: General compatibility note</H3>
|
||
|
||
<P>
|
||
There are some additional dependencies that, at the time of writing, are not
|
||
provided as frameworks or installers so we will need to build these from source.
|
||
If you are wanting to build QGIS as a 64-bit application, you will need to
|
||
provide the appropriate build commands to produce 64-bit support in dependencies.
|
||
Likewise, for 32-bit support on Snow Leopard, you will need to override the
|
||
default system architecture, which is 64-bit, according to instructions for
|
||
individual dependency packages.
|
||
</P>
|
||
<P>
|
||
Stable release versions are preferred. Beta and other development versions may
|
||
have problems and you are on your own with those.
|
||
</P>
|
||
|
||
<H3>5.4.2. Additional Dependencies: Expat</H3>
|
||
|
||
<P>
|
||
<U>Snow Leopard+ note:</U> Snow Leopard includes a usable expat, so this step is
|
||
not necessary on Snow Leopard or Lion.
|
||
</P>
|
||
<P>
|
||
Get the expat sources:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://sourceforge.net/project/showfiles.php?group_id=10127">http://sourceforge.net/project/showfiles.php?group_id=10127</A>
|
||
</P>
|
||
<P>
|
||
Double-click the source tarball to unpack, then, in Terminal.app, cd to the
|
||
source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<H3>5.4.3. Additional Dependencies: Spatialindex</H3>
|
||
|
||
<P>
|
||
Get the libspatialindex sources:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://download.osgeo.org/libspatialindex/">http://download.osgeo.org/libspatialindex/</A>
|
||
</P>
|
||
<P>
|
||
Double-click the source tarball to unpack, then, in Terminal.app, cd to the
|
||
source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<H3>5.4.4. Additional Dependencies: Python</H3>
|
||
|
||
<P>
|
||
<U>Leopard+ note:</U> Starting with Leopard a usable Python is included
|
||
in the system. This Python 2.5, 2.6 and 2.7, respectively for Leo, Snow and Lion.
|
||
So there is no need to install Python on Leopard and newer.
|
||
You can still install Python from python.org if preferred.
|
||
</P>
|
||
<P>
|
||
If installing from python.org, make sure you install the latest Python
|
||
2.x from
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.python.org/download/">http://www.python.org/download/</A>
|
||
</P>
|
||
<P>
|
||
Python 3 is a major change, and may have compatibility issues, so try it at
|
||
your own risk.
|
||
</P>
|
||
|
||
<H3>5.4.5. Additional Dependencies: SIP</H3>
|
||
|
||
<P>
|
||
Retrieve the python bindings toolkit SIP from
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.riverbankcomputing.com/software/sip/download">http://www.riverbankcomputing.com/software/sip/download</A>
|
||
</P>
|
||
<P>
|
||
Double-click the source tarball to unpack it, then, in Terminal.app,
|
||
cd to the source folder. Then for your chosen Python:
|
||
</P>
|
||
<P>
|
||
<U>python.org Python</U>
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python configure.py
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Leopard system Python</U>
|
||
</P>
|
||
<P>
|
||
SIP wants to install in the system path -- this is not a good idea.
|
||
More configuration is needed to install outside the system path:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python configure.py -n -d /Library/Python/2.5/site-packages -b /usr/local/bin \
|
||
-e /usr/local/include -v /usr/local/share/sip -s MacOSX10.5.sdk
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Snow Leopard system Python</U>
|
||
</P>
|
||
<P>
|
||
Similar to Leopard, you should install outside the system Python path.
|
||
Also, you need to specify the architecture you want (requires at least SIP
|
||
4.9), and make sure to run the versioned python binary (this one responds to
|
||
the 'arch' command, 'python' does not).
|
||
Substitute '2.7' for python version and 10.7 for SDK version below for Lion.
|
||
</P>
|
||
<P>
|
||
If you are using 32-bit Qt (Qt Carbon):
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python2.6 configure.py -n -d /Library/Python/2.6/site-packages -b /usr/local/bin \
|
||
-e /usr/local/include -v /usr/local/share/sip --arch=i386 -s MacOSX10.6.sdk
|
||
</PRE></div>
|
||
|
||
<P>
|
||
For 64-bit Qt (Qt Cocoa), use this configure line:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python2.6 configure.py -n -d /Library/Python/2.6/site-packages -b /usr/local/bin \
|
||
-e /usr/local/include -v /usr/local/share/sip --arch=x86_64 -s MacOSX10.6.sdk
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Lion system Python</U>
|
||
</P>
|
||
<P>
|
||
Similar to Snow Leopard, you should install outside the system Python path.
|
||
There is no need for the SDK option (the CLI tools for Lion don't inlcude SDKs)
|
||
or arch option:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python2.7 configure.py -d /Library/Python/2.7/site-packages -b /usr/local/bin \
|
||
-e /usr/local/include -v /usr/local/share/sip
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>continue...</U>
|
||
</P>
|
||
<P>
|
||
Then continue with compilation and installation:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<H3>5.4.6. Additional Dependencies: PyQt</H3>
|
||
|
||
<P>
|
||
Retrieve the python bindings toolkit for Qt from
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.riverbankcomputing.com/software/pyqt/download">http://www.riverbankcomputing.com/software/pyqt/download</A>
|
||
</P>
|
||
<P>
|
||
Double-click the source tarball to unpack it, then, in Terminal.app,
|
||
cd to the source folder. Then for your chosen Python:
|
||
</P>
|
||
<P>
|
||
<U>python.org Python</U>
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python configure.py
|
||
yes
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Leopard system Python</U>
|
||
</P>
|
||
<P>
|
||
PyQt wants to install in the system path -- this is not a good idea.
|
||
More configuration is needed to install outside the system path:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python configure.py -d /Library/Python/2.5/site-packages -b /usr/local/bin
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Snow Leopard system Python</U>
|
||
</P>
|
||
<P>
|
||
Similar to Leopard, you should install outside the system Python path.
|
||
Also, you need to specify the architecture you want (requires at least PyQt 4.6),
|
||
and make sure to run the versioned python binary (this one responds to the
|
||
'arch' command, which is important for pyuic4, 'python' does not).
|
||
Substitute '2.7' for python version and 10.7 for SDK version below for Lion.
|
||
</P>
|
||
<P>
|
||
If you are using 32-bit Qt (Qt Carbon):
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python2.6 configure.py -d /Library/Python/2.6/site-packages -b /usr/local/bin --use-arch i386
|
||
</PRE></div>
|
||
|
||
<P>
|
||
For 64-bit Qt (Qt Cocoa), use this configure line:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python2.6 configure.py -d /Library/Python/2.6/site-packages -b /usr/local/bin --use-arch x86_64
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Snow Leopard system Python</U>
|
||
</P>
|
||
<P>
|
||
Similar to Snow Leopard, you should install outside the system Python path.
|
||
But you don't need the arch option:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
python2.7 configure.py -d /Library/Python/2.7/site-packages -b /usr/local/bin
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>continue...</U>
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
If there is a problem with undefined symbols in QtOpenGL on Leopard, edit
|
||
QtOpenGL/makefile and add -undefined dynamic_lookup to LFLAGS.
|
||
Then make again.
|
||
</P>
|
||
|
||
<H3>5.4.7. Additional Dependencies: Qwt</H3>
|
||
|
||
<P>
|
||
The GPS tracking feature uses Qwt.
|
||
</P>
|
||
<P>
|
||
NOTE: PyQwt is not compatible with PyQt 4.9, so we will skip that.
|
||
</P>
|
||
<P>
|
||
Download the latest Qwt 5.x source (6.x is untested) from:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://sourceforge.net/projects/qwt">http://sourceforge.net/projects/qwt</A>
|
||
</P>
|
||
<P>
|
||
Double-click the tarball to unpack it.
|
||
</P>
|
||
<P>
|
||
Now, cd to the qwt source folder in a Terminal. Type these commands to build
|
||
and install (assumes v5.2.2, adjust commands for other version as needed):
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
qmake -spec macx-g++
|
||
make
|
||
sudo make install
|
||
sudo install_name_tool -id /usr/local/qwt-5.2.2/lib/libqwt.5.dylib \
|
||
/usr/local/qwt-5.2.2/lib/libqwt.5.dylib
|
||
</PRE></div>
|
||
|
||
<P>
|
||
The Qwt shared library is now installed in /usr/local/qwt-5.x.x (x.x is
|
||
the minor.point version). Remember this for QGIS configuration.
|
||
</P>
|
||
|
||
<H3>5.4.8. Additional Dependencies: Bison</H3>
|
||
|
||
<P>
|
||
The version of bison available by default on Mac OS X is too old so you
|
||
need to get a more recent one on your system. Download at least version 2.4 from:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
ftp.gnu.org/gnu/bison/
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Now build and install it to a prefix of /usr/local. Double-click the source
|
||
tarball to unpack it, then cd to the source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure --disable-dependency-tracking CFLAGS=-Os
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<H3>5.4.9. Additional Dependencies: gpsbabel</H3>
|
||
|
||
<P>
|
||
For integrated GPS Tools functions, a gpsbabel executable is required. You can
|
||
find this at:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.gpsbabel.org/">http://www.gpsbabel.org/</A>
|
||
</P>
|
||
<P>
|
||
Download the GPSBabel OS X package, and copy GPSBabelFE.app from the disk image to
|
||
/Applications.
|
||
</P>
|
||
|
||
<H3>5.4.10. Optional Dependencies: libfcgi</H3>
|
||
|
||
<P>
|
||
If you want to use the QGIS Mapserver, you need libfcgi. This is included on
|
||
systems up through Snow Leopard, but was dropped at Lion. So, on Lion you need
|
||
to get the source from:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.fastcgi.com/dist/">http://www.fastcgi.com/dist/</A>
|
||
</P>
|
||
<P>
|
||
Grab the latest fcgi SNAP package there. Double-click the source
|
||
tarball to unpack it, then cd to the source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure --disable-dependency-tracking CFLAGS=-Os
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<H3>5.4.11. Optional Dependencies: OSG & osgEarth</H3>
|
||
|
||
<P>
|
||
If you want the Globe plugin in QGIS (default OFF), OSG and osgEarth are needed.
|
||
</P>
|
||
<P>
|
||
First, <B>OpenSceneGraph</B>. The main site is:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://www.openscenegraph.org/">http://www.openscenegraph.org/</A>
|
||
</P>
|
||
<P>
|
||
Get the tarball (or zip) for the the latest 3.x version.
|
||
Binary availability is unknown at this time as the site is down.
|
||
</P>
|
||
<P>
|
||
Another place to get the source is github:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://github.com/openscenegraph/osg/tags">http://github.com/openscenegraph/osg/tags</A>
|
||
</P>
|
||
<P>
|
||
Download the latest 3.1 version (you can select a tarball when you hover over
|
||
the entry). Double-click the source tarball to unpack it.
|
||
(There is a version numbering oddity in the source, but since we'll be
|
||
bundling OSG as it's meant to be, it really doesn't matter).
|
||
</P>
|
||
<P>
|
||
Installation is a bit out of touch with OS X standards, so we'll stage it to a
|
||
temporary location first. You could stage it to the folder that the OSG source
|
||
folder is in, or a common staging area like /Users/Shared/unix/osg. Pick a
|
||
folder not hidden and that doesn't need admin permissions to write to for simplicity.
|
||
</P>
|
||
<P>
|
||
In a new Terminal cd to the source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
mkdir build
|
||
cd build
|
||
cmake -D CMAKE_INSTALL_PREFIX=/path/to/some/staging/folder \
|
||
-D OSG_COMPILE_FRAMEWORKS=ON \
|
||
-D OSG_PLUGIN_SEARCH_INSTALL_DIR_FOR_PLUGINS=OFF \
|
||
..
|
||
make
|
||
make install
|
||
sudo mkdir -p "/Library/Application Support/OpenSceneGraph/PlugIns"
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Enter the staging path you chose for the CMAKE_INSTALL_PREFIX option above.
|
||
</P>
|
||
<P>
|
||
Now move all .frameworks from the lib/ folder in the staging area to /Library/Frameworks. Move the files in the osgPlugins folder in the lib/ folder
|
||
to /Library/Application Support/OpenSceneGraph/PlugIns. The bin/ executables
|
||
can be left where they are, we don't need them.
|
||
</P>
|
||
<P>
|
||
Next up is <B>libzip</B>. Get the latest tarball at:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://nih.at/libzip/">http://nih.at/libzip/</A>
|
||
</P>
|
||
<P>
|
||
Double-click the source tarball to unpack it.
|
||
In a new Terminal cd to the source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
./configure --disable-dependency-tracking --disable-shared CFLAGS=-Os
|
||
make
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Then it's time for <B>osgEarth</B>. Downloads are also on github:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://github.com/gwaldron/osgearth/tags">http://github.com/gwaldron/osgearth/tags</A>
|
||
</P>
|
||
<P>
|
||
Download a tarball for the latest stable release (sorting can be confusing here).
|
||
Double-click the source tarball to unpack it.
|
||
</P>
|
||
<P>
|
||
This one also needs an intermediate staging area. Choose a folder similar to OSG.
|
||
</P>
|
||
<P>
|
||
In a new Terminal cd to the source folder and:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
mkdir build
|
||
cd build
|
||
export PATH="/path/to/osg/staging/folder/bin:$PATH"
|
||
cmake -D CMAKE_INSTALL_PREFIX=/path/to/some/staging/folder \
|
||
-D CMAKE_BUILD_TYPE=MinSizeRel \
|
||
-D OSGEARTH_BUILD_FRAMEWORKS=true \
|
||
..
|
||
make
|
||
make install
|
||
sudo mkdir -p "/Library/Application Support/OpenSceneGraph/Headers"
|
||
</PRE></div>
|
||
|
||
<P>
|
||
Enter the staging path you chose for the CMAKE_INSTALL_PREFIX option above.
|
||
Also enter the OSG staging path /bin folder in the export above.
|
||
</P>
|
||
<P>
|
||
Move all the .frameworks from the lib/ folder to /Library/Frameworks.
|
||
Move the files in the osgPlugins folder in the lib/ folder to
|
||
/Library/Application Support/OpenSceneGraph/PlugIns. Move the osgEarthDrivers
|
||
folder in the include/ folder to /Library/Application Support/OpenSceneGraph/Headers. And as for OSG, you can leave the bin/
|
||
executables where they are.
|
||
</P>
|
||
|
||
<A NAME="toc22"></A>
|
||
<H2>5.5. QGIS source</H2>
|
||
|
||
<P>
|
||
Unzip the QGIS source tarball to a working folder of your choice
|
||
(/usr/somewhere is not a good choice as it's hidden and requires root
|
||
privileges). If you are reading this from the source, you've already done
|
||
this.
|
||
</P>
|
||
<P>
|
||
If you want to experiment with the latest development sources, go to the github
|
||
QGIS project page:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://github.com/qgis/Quantum-GIS">http://github.com/qgis/Quantum-GIS</A>
|
||
</P>
|
||
<P>
|
||
It should default to the master branch. Click the <U>Downloads</U> button and
|
||
select <U>Download .tar.gz</U>.
|
||
</P>
|
||
<P>
|
||
Double-click the tarball to unzip it.
|
||
</P>
|
||
|
||
<A NAME="toc23"></A>
|
||
<H2>5.6. Configure the build</H2>
|
||
|
||
<P>
|
||
CMake supports out of source build so we will create a 'build' dir for the
|
||
build process. OS X uses ${HOME}/Applications as a standard user app folder (it
|
||
gives it the system app folder icon). If you have the correct permissions you
|
||
may want to build straight into your /Applications folder. The instructions
|
||
below assume you are building into a ${HOME}/Applications directory.
|
||
In a Terminal cd to the qgis source folder previously downloaded, then:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
mkdir build
|
||
cd build
|
||
cmake -D CMAKE_INSTALL_PREFIX=~/Applications \
|
||
-D CMAKE_BUILD_TYPE=MinSizeRel -D ENABLE_TESTS=FALSE \
|
||
-D WITH_INTERNAL_SPATIALITE=FALSE -D WITH_PYSPATIALITE=FALSE \
|
||
-D QWT_LIBRARY=/usr/local/qwt-5.2.2/lib/libqwt.dylib \
|
||
-D QWT_INCLUDE_DIR=/usr/local/qwt-5.2.2/include \
|
||
-D BISON_EXECUTABLE=/usr/local/bin/bison \
|
||
..
|
||
</PRE></div>
|
||
|
||
<P>
|
||
This will automatically find and use the previously installed frameworks, and
|
||
the GRASS application if installed. Remember to change the Qwt version if a
|
||
different version was installed.
|
||
</P>
|
||
<P>
|
||
<U>Snow Leopard note:</U> To handle 32-bit Qt (Carbon), create a 32bit python wrapper
|
||
script and add arch flags to the configuration:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo cat >/usr/local/bin/python32 <<EOF
|
||
#!/bin/sh
|
||
exec arch -i386 /usr/bin/python2.6 \${1+"\$@"}
|
||
EOF
|
||
|
||
sudo chmod +x /usr/local/bin/python32
|
||
|
||
cmake -D CMAKE_INSTALL_PREFIX=~/Applications \
|
||
-D CMAKE_BUILD_TYPE=MinSizeRel -D ENABLE_TESTS=FALSE \
|
||
-D WITH_INTERNAL_SPATIALITE=FALSE -D WITH_PYSPATIALITE=FALSE \
|
||
-D QWT_LIBRARY=/usr/local/qwt-5.2.1-svn/lib/libqwt.dylib \
|
||
-D QWT_INCLUDE_DIR=/usr/local/qwt-5.2.1-svn/include \
|
||
-D BISON_EXECUTABLE=/usr/local/bin/bison \
|
||
-D CMAKE_OSX_ARCHITECTURES=i386 -D PYTHON_EXECUTABLE=/usr/local/bin/python32 \
|
||
..
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Mapserver note::</U> The QGIS Mapserver feature requires fastcgi support. This is included in
|
||
Leopard and Snow Leopard, but was dropped at Lion. To build the Mapserver
|
||
component on Leopard and Snow, add the followling line before the last line in
|
||
the above configuration:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
-D WITH_MAPSERVER=TRUE \
|
||
</PRE></div>
|
||
|
||
<P>
|
||
On Lion you are on your own to figure out how to install libfcgi and add fcgi
|
||
support to the system Apache. Not recommended for the average user.
|
||
</P>
|
||
<P>
|
||
<U>Globe plugin note:</U> If you want the Globe plugin (and you compiled and installed OSG/osgEarth),
|
||
add the following lines before the last line in the above configuration:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
-D WITH_GLOBE=true \
|
||
-D OSGEARTH_INCLUDE_DIR="/Library/Application Support/OpenSceneGraph/Headers" \
|
||
-D OSG_PLUGINS_PATH="/Library/Application Support/OpenSceneGraph/PlugIns" \
|
||
</PRE></div>
|
||
|
||
<P>
|
||
<U>Bundling note:</U> Older Qt versions may have problems with some Qt plugins and
|
||
QGIS. The way to handle this is to bundle Qt inside the QGIS application. The
|
||
default is to bundle Qt (and osg/osgEarth, if configured).
|
||
</P>
|
||
<P>
|
||
Even better for distribution purposes, to also bundle any extra non-framework,
|
||
non-standard, libs (ie postgres' libpq) set the bundle value to 2:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
-D QGIS_MACAPP_BUNDLE=2 \
|
||
</PRE></div>
|
||
|
||
<A NAME="toc24"></A>
|
||
<H2>5.7. Building</H2>
|
||
|
||
<P>
|
||
Now we can start the build process (remember the parallel compilation note at
|
||
the beginning, this is a good place to use it, if you can):
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make
|
||
</PRE></div>
|
||
|
||
<P>
|
||
If all built without errors you can then install it:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
make install
|
||
</PRE></div>
|
||
|
||
<P>
|
||
or, for an /Applications build:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
sudo make install
|
||
</PRE></div>
|
||
|
||
<A NAME="toc25"></A>
|
||
<H2>5.8. Post-Install</H2>
|
||
|
||
<P>
|
||
A couple things to take care of.
|
||
</P>
|
||
<P>
|
||
<B>gpsbabel</B>
|
||
</P>
|
||
<P>
|
||
For QGIS to <I>easily</I> find gpsbabel, you need to copy the gpsbabel executable
|
||
to the QGIS application. Assuming you installed QGIS in your home folder:
|
||
</P>
|
||
|
||
<div class="code"><PRE>
|
||
cp -fp /Applications/GPSBabelFE.app/Contents/MacOS/gpsbabel ~/QGIS.app/Contents/MacOS/bin/
|
||
</PRE></div>
|
||
|
||
<P>
|
||
If you installed in /Applications, adjust the path accordingly and prefix the
|
||
whole command with 'sudo '.
|
||
</P>
|
||
<P>
|
||
<B>QGIS Mapserver</B>
|
||
</P>
|
||
<P>
|
||
See the QGIS Mapserver wiki page at:
|
||
</P>
|
||
<P>
|
||
<A HREF="http://hub.qgis.org/projects/quantum-gis/wiki/QGIS_Server_Tutorial">http://hub.qgis.org/projects/quantum-gis/wiki/QGIS_Server_Tutorial</A>
|
||
</P>
|
||
<P>
|
||
for instructions on setting up Apache fastcgi and testing Mapserver, including
|
||
installing the mod-fastcgi that is missing on Lion.
|
||
</P>
|
||
|
||
<A NAME="toc26"></A>
|
||
<H1>6. Authors and Acknowledgments</H1>
|
||
|
||
<P>
|
||
The following people have contributed to this document:
|
||
</P>
|
||
|
||
<UL>
|
||
<LI>Windows MINGW Section
|
||
<UL>
|
||
<LI>Tim Sutton, Godofredo Contreras 2006
|
||
<LI>CMake additions Magnus Homann 2007
|
||
<LI>Python additions Martin Dobias 2007
|
||
<LI>With thanks to Tisham Dhar for preparing the initial msys environment
|
||
<P></P>
|
||
</UL>
|
||
<LI>Windows MSVC Section (Detailed install)
|
||
<UL>
|
||
<LI>David Willis 2007
|
||
<LI>MSVC install additions Tim Sutton 2007
|
||
<LI>PostgreSQL, Qt compile, SIP, Python, AutoExp additions Juergen Fischer 2007
|
||
<P></P>
|
||
</UL>
|
||
<LI>Windows MSVC Section (Simplified install)
|
||
<UL>
|
||
<LI>Tim Sutton 2007
|
||
<LI>Juergen Fischer 2007
|
||
<LI>Florian Hillen 2010
|
||
<P></P>
|
||
</UL>
|
||
<LI>OSX Section
|
||
<UL>
|
||
<LI>Tim Sutton 2007
|
||
<LI>With special thanks to Tom Elwertowski and William Kyngesburye
|
||
<P></P>
|
||
</UL>
|
||
<LI>GNU/Linux Section
|
||
<UL>
|
||
<LI>Tim Sutton 2006
|
||
<LI>Debian package section: Juergen Fischer 2008
|
||
<P></P>
|
||
</UL>
|
||
<LI>Latex Generator
|
||
<UL>
|
||
<LI>Tim Sutton 2011
|
||
</UL>
|
||
</UL>
|
||
|
||
</DIV>
|
||
<!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
|
||
<!-- cmdline: txt2tags -o/home/fischer/src/qgis/qgis/debian/build/doc/INSTALL.html -t html /home/fischer/src/qgis/qgis/doc/INSTALL.t2t -->
|
||
</BODY></HTML>
|