GithubHelp home page GithubHelp logo

isabella232 / nextgisqgis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nextgis/nextgisqgis

0.0 0.0 0.0 102.48 MB

:four_leaf_clover: NextGIS build of QGIS

License: GNU General Public License v2.0

CMake 1.29% C++ 79.77% LLVM 0.05% Yacc 0.12% C 0.16% Python 16.02% HTML 2.15% QML 0.38% CSS 0.05%

nextgisqgis's Introduction

NextGIS QGIS

๐Ÿ€ NextGIS QGIS build using NextGIS Borsch.

This simplified and reorganized repository of original QGIS with NextGIS additions needed by network installer.

Update sources

To update sources from original QGIS repository execute command in borsch opt directory:

> python tools.py organize --src /<path to QGIS sources>/QGIS --dst_name qgis

In opt directory of this repository there is several files which interfere on sources merging process:

  • folders.csv - list of original directories to merge
  • postprocess.py - script executed after successfully merging (name is constant for tools.py)

Postprocess copying files (with paths) from opt/overwrite to the root of repository. Files with same names and paths overwrite.

Customization details

The only few files of original sources were change:

  • main.cpp - the entry point of QGIS
  • qgisapp.h - private members made protected, several methods made virtual
  • qgisapplication.h - private members made protected, several methods made virtual
  • qgisapp.ui - remove some menus and buttons

The full list of files can be found in opt/overwrite directory.

There are special files with NextGIS customization:

NGQgsApplication class inherited from QgsApplication. The NGQgsApplication class instantiated in main.cpp. The QgsApplication methods are overridden in NGQgsApplication.

NGQgisApp class inherited from QgisApp. The NGQgisApp class instantiated in main.cpp. The QgisApp methods are overridden in NGQgisApp.

To customize QGIS one have to modify the NGQgsApplication and NGQgisApp via overriding base class methods and adding own classes. It's not recommended to change QGIS sources as they will be overwritten next merge sources turn.

To add some QGIS components:

  1. Add component path to folders.csv or remove skip mark if path already in this file. Check the all extensions/file names are in this row.
  2. Add or modify CMakeLists.txt. For plugins you only need to add new directory name to plugins list (i.e. providers).
  3. Check additional resources (images, databases or other files) which needed by component, are imported from original sources and install in target system via cmake install target.

Some dependencies are removed:

  • Flex and Bison not needed to build QGIS. Only to update/regenerate flex and byson lexer/parser files. To do it use this command cmake --build . --config release --target prepare_parser
  • Spatial reference system database already filled and not generate. Special target to generate this DB will be added in future.

Build

Mac OS X

    cmake -DOSX_FRAMEWORK=ON -DWITH_BINDINGS=ON ..

Windows

    cmake -DWITH_EXPAT_EXTERNAL=ON -DWITH_GDAL_EXTERNAL=ON -DWITH_GEOS_EXTERNAL=ON \
    -DWITH_GSL_EXTERNAL=ON -DWITH_LibXml2_EXTERNAL=ON -DWITH_PostgreSQL_EXTERNAL=ON \
    -DWITH_PROJ_EXTERNAL=ON -DWITH_Qca_EXTERNAL=ON -DWITH_Qscintilla_EXTERNAL=ON \
    -DWITH_Qwt_EXTERNAL=ON -DWITH_SpatialIndex_EXTERNAL=ON -DWITH_Spatialite_EXTERNAL=ON \
    -DWITH_SQLite3_EXTERNAL=ON -DWITH_SIP_EXTERNAL=ON -DWITH_Qt4_EXTERNAL=ON \
    -DWITH_BINDINGS=ON -DWITH_PyQt4_EXTERNAL=ON -DWITH_Qsci_EXTERNAL=ON -DWITH_ZLIB_EXTERNAL=ON ..

Linux

    cmake -DWITH_EXPAT=ON -DWITH_GDAL=ON -DWITH_GEOS=ON -DWITH_GSL=ON -DWITH_LibXml2=ON \
    -DWITH_PostgreSQL=ON -DWITH_PROJ4=ON -DWITH_Qca=ON -DWITH_Qscintilla=ON -DWITH_Qwt=ON \
    -DWITH_SpatialIndex=ON -DWITH_Spatialite=ON -DWITH_SQLite3=ON -DWITH_SIP=ON \
    -DWITH_Qt4=ON -DWITH_BINDINGS=ON -DWITH_PyQt4=ON -DWITH_Qsci=ON -DWITH_ZLIB=ON -DWITH_BINDINGS=ON ..

License

All scripts are licensed under GNU GPL v2. See COPYING file.

License

Commercial support

Need to fix a bug or add a feature to NextGIS installer? We provide custom development and support for this software. Contact us to discuss options!

http://nextgis.com

nextgisqgis's People

Contributors

bishopgis avatar alisovenko avatar 514ckw4r3 avatar simgislab avatar

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

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

  • D3 photo D3

    Data-Driven Documents codes.