[Qgis-developer] Bulding QGIS on Mac 10.8

Larry Shaffer larrys at dakotacarto.com
Wed Oct 17 10:29:46 PDT 2012


Hi Tasos,

On Wed, Oct 17, 2012 at 4:29 AM, Tasos Varoudis <null at archtech.gr> wrote:
> Hello,
>
> Any ideas? Im using "brew" to install deps.
>
> Best
>
>   Quantum-GIS git:(master) ✗ cmake -D CMAKE_VERBOSE_MAKEFILE=true -D CMAKE_BUILD_TYPE=Debug .

Your cmake command looks a little shy on options. This is what I use:

# force llvm instead of clang under XCode 4.4.1 (uses GNU 4.2.1)
export CC=/usr/bin/llvm-gcc
export CXX=/usr/bin/llvm-g++

/usr/local/bin/cmake -D
CMAKE_INSTALL_PREFIX="/Users/larrys/QGIS/github.com/QGIS_Apps" \
    -D CMAKE_BUILD_TYPE="RelWithDebInfo" \
    -D WITH_ASTYLE=FALSE \
    -D ENABLE_TESTS=TRUE \
    -D WITH_INTERNAL_SPATIALITE=FALSE \
    -D WITH_PYSPATIALITE=FALSE \
    -D SPATIALINDEX_INCLUDE_DIR=/usr/local/include/spatialindex \
    -D SPATIALINDEX_LIBRARY=/usr/local/lib/libspatialindex.dylib \
    -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 \
    -D WITH_MAPSERVER=TRUE \
    -D WITH_APIDOC=FALSE \
    -D QGIS_MACAPP_BUNDLE=2 \
   ../Quantum-GIS

Of note, the SPATIALINDEX_INCLUDE_DIR and SPATIALINDEX_LIBRARY are
necessary for CMake to properly find the way libspatialindex is
installed. Also, either your copy/paste failed, or you are building in
the source directory (i.e. your command ends in just one .). Consider
doing an out-of-source build as outlined in the INSTALL doc. My build
directory is beside the QGIS git directory.

These cmake options are extraneous to a basic build and can be removed:
WITH_ASTYLE, ENABLE_TESTS, WITH_APIDOC

You can use 'ccmake .' from your build directory to access a curses
interface to all the pertinent cmake options, if you are not using a
script to configure.

My build script may be of some use to you:
https://gist.github.com/2902743

You will also want to manually install QScintilla2 and compile its
Python module, which the new Python console uses (instructions are not
currently in the INSTALL doc for Mac, but I will add it today):
http://www.riverbankcomputing.com/software/qscintilla/download

These are the basics (for 2.6.2):

# install BEFORE compiling PyQt4 (or re-compile PyQt4 afterwards)
cd <QScintilla source dir>
cd Qt4Qt5
qmake -spec macx-g++ qscintilla.pro
make -j <max number of cores on Mac>
sudo make install

# compile/install PyQt

cd <QScintilla source dir>
cd Python
python2.7 configure.py
make -j <max number of cores on Mac>
sudo make install

# reference my build script on how to patch the module into the
completed/installed Mac QGIS build.

You may want to reference this previous mailing list thread:
http://osgeo-org.1560.n6.nabble.com/Building-QGIS-in-Mac-OS-X-Mountain-Lion-i-e-10-8-with-QtSQL-support-tp4992577p4993235.html

Lastly, if you can't get QGIS to compile, you could consider using the
nightly build for Mac:
http://hub.qgis.org/projects/quantum-gis/wiki/Download#421-Nightly-Builds

Note, I do not use homebrew for anything; I just follow the INSTALL
docs (which basically work for 10.6, 10.7, 10.8).

Regards,

Larry


> -- Quantum GIS version: 1.9.0 Master (10900)
> -- Could not find GRASS
> -- Found Proj: /Library/Frameworks/PROJ.framework
> -- Found GEOS: /Library/Frameworks/GEOS.framework
> -- Found GDAL: /Library/Frameworks/GDAL.framework (1.8.1)
> -- Found Expat: /usr/local/lib/libexpat.dylib
> -- Found Spatialindex: /usr/local/lib/libspatialindex.dylib
> -- Found Qwt: /usr/local/lib/qwt.framework (6.0.1)
> -- Found Sqlite3: /Library/Frameworks/SQLite3.framework
> -- Found PostgreSQL: /usr/local/Cellar/postgresql/9.2.1/lib/libpq.dylib
> -- Found SpatiaLite: /Library/Frameworks/SQLite3.framework
> -- Touch support disabled
> -- Pedantic compiler settings enabled
> -- Debug output enabled
> -- Found Python executable: /usr/local/bin/python
> -- Found Python version: 2.7.3
> -- Found Python library: -framework Python
> -- Found SIP version: 4.13.3
> -- Found PyQt4 version: 4.9.4
> -- Found GSL: /Library/Frameworks/GSL.framework
> -- txt2tags not found - disabled
> -- Ctest Binary Directory  set to: /Users/varoudis/Desktop/Projects/Quantum-GIS/output/bin
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /Users/varoudis/Desktop/Projects/Quantum-GIS
>
>
>
>  27%] Building CXX object src/core/CMakeFiles/qgis_core.dir/flex_qgsexpressionlexer.cpp.o
> cd /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core && /usr/bin/c++   -Dqgis_core_EXPORTS -DQT_SVG_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_TEST_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NO_CAST_TO_ASCII -DQGISDEBUG=1 -D_TTY_POSIX_ -D_HAVE_PTHREAD_ -DQT_DEBUG -g -fPIC -I/usr/local/Cellar/qt/4.8.3/include -F/usr/local/Cellar/qt/4.8.3/lib -I/usr/local/Cellar/qt/4.8.3/include/QtSvg -I/usr/local/Cellar/qt/4.8.3/include/QtWebKit -I/usr/local/Cellar/qt/4.8.3/include/QtGui -I/usr/local/Cellar/qt/4.8.3/include/QtTest -I/usr/local/Cellar/qt/4.8.3/include/QtXml -I/usr/local/Cellar/qt/4.8.3/include/QtSql -I/usr/local/Cellar/qt/4.8.3/include/QtNetwork -I/usr/local/Cellar/qt/4.8.3/lib/QtCore.framework/Headers -I/Users/varoudis/Desktop/Projects/Quantum-GIS -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/composer -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/pal -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/raster -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/renderer -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/symbology -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/symbology-ng -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/gps/qextserialport -I/Library/Frameworks/GEOS.framework/Headers -I/Library/Frameworks/PROJ.framework/Headers -I/Library/Frameworks/GDAL.framework/Headers -I/Library/Frameworks/SQLite3.framework/Headers    -Wall -Wextra -Wno-long-long -Wformat-security -Wno-strict-aliasing -DCORE_EXPORT= -DGUI_EXPORT= -DPYTHON_EXPORT= -DANALYSIS_EXPORT= -DTEST_DATA_DIR="\"/Users/varoudis/Desktop/Projects/Quantum-GIS/tests/testdata\"" -F/Library/Frameworks  -w -o CMakeFiles/qgis_core.dir/flex_qgsexpressionlexer.cpp.o -c /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/flex_qgsexpressionlexer.cpp
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:29:42: error: expected class name
> class QgisVisitor : public SpatialIndex::IVisitor
>                                          ^
> /usr/local/Cellar/cmake/2.8.9/bin/cmake -E cmake_progress_report /Users/varoudis/Desktop/Projects/Quantum-GIS/CMakeFiles
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:35:27: error: unknown type name 'INode'
>     void visitNode( const INode& n )
>                           ^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:38:27: error: unknown type name 'IData'
>     void visitData( const IData& d )
>                           ^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:43:39: error: unknown type name 'IData'
>     void visitData( std::vector<const IData*>& v )
>                                       ^
> [ 27%] Building CXX object src/core/CMakeFiles/qgis_core.dir/qgsexpressionparser.cpp.o
> cd /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core && /usr/bin/c++   -Dqgis_core_EXPORTS -DQT_SVG_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_TEST_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NO_CAST_TO_ASCII -DQGISDEBUG=1 -D_TTY_POSIX_ -D_HAVE_PTHREAD_ -DQT_DEBUG -g -fPIC -I/usr/local/Cellar/qt/4.8.3/include -F/usr/local/Cellar/qt/4.8.3/lib -I/usr/local/Cellar/qt/4.8.3/include/QtSvg -I/usr/local/Cellar/qt/4.8.3/include/QtWebKit -I/usr/local/Cellar/qt/4.8.3/include/QtGui -I/usr/local/Cellar/qt/4.8.3/include/QtTest -I/usr/local/Cellar/qt/4.8.3/include/QtXml -I/usr/local/Cellar/qt/4.8.3/include/QtSql -I/usr/local/Cellar/qt/4.8.3/include/QtNetwork -I/usr/local/Cellar/qt/4.8.3/lib/QtCore.framework/Headers -I/Users/varoudis/Desktop/Projects/Quantum-GIS -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/composer -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/pal -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/raster -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/renderer -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/symbology -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/symbology-ng -I/Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/gps/qextserialport -I/Library/Frameworks/GEOS.framework/Headers -I/Library/Frameworks/PROJ.framework/Headers -I/Library/Frameworks/GDAL.framework/Headers -I/Library/Frameworks/SQLite3.framework/Headers    -Wall -Wextra -Wno-long-long -Wformat-security -Wno-strict-aliasing -DCORE_EXPORT= -DGUI_EXPORT= -DPYTHON_EXPORT= -DANALYSIS_EXPORT= -DTEST_DATA_DIR="\"/Users/varoudis/Desktop/Projects/Quantum-GIS/tests/testdata\"" -F/Library/Frameworks  -o CMakeFiles/qgis_core.dir/qgsexpressionparser.cpp.o -c /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsexpressionparser.cpp
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:54:37: error: no member named 'createNewMemoryStorageManager' in namespace
>       'SpatialIndex::StorageManager'
>   mStorageManager = StorageManager::createNewMemoryStorageManager();
>                     ~~~~~~~~~~~~~~~~^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:60:30: error: no member named 'createNewRandomEvictionsBuffer' in namespace
>       'SpatialIndex::StorageManager'
>   mStorage = StorageManager::createNewRandomEvictionsBuffer( *mStorageManager, capacity, writeThrough );
>              ~~~~~~~~~~~~~~~~^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:67:3: error: use of undeclared identifier 'RTree'
>   RTree::RTreeVariant variant = RTree::RV_RSTAR;
>   ^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:70:17: error: no member named 'id_type' in namespace 'SpatialIndex'
>   SpatialIndex::id_type indexId;
>   ~~~~~~~~~~~~~~^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:71:12: error: use of undeclared identifier 'RTree'
>   mRTree = RTree::createNewRTree( *mStorage, fillFactor, indexCapacity,
>            ^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:72:60: error: use of undeclared identifier 'variant'
>                                   leafCapacity, dimension, variant, indexId );
>                                                            ^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:77:3: warning: deleting pointer to incomplete type 'SpatialIndex::ISpatialIndex' may cause
>       undefined behaviour [-Wdelete-incomplete]
>   delete mRTree;
>   ^      ~~~~~~
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.h:23:9: note: forward declaration of 'SpatialIndex::ISpatialIndex'
>   class ISpatialIndex;
>         ^
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.cpp:78:3: warning: deleting pointer to incomplete type 'SpatialIndex::StorageManager::IBuffer' may
>       cause undefined behaviour [-Wdelete-incomplete]
>   delete mStorage;
>   ^      ~~~~~~~~
> /Users/varoudis/Desktop/Projects/Quantum-GIS/src/core/qgsspatialindex.h:29:11: note: forward declaration of 'SpatialIndex::StorageManager::IBuffer'
>     class IBuffer;
>           ^
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer


More information about the Qgis-developer mailing list