Development

From GRASS-Wiki

Jump to: navigation, search

Contents


GRASS License

The GRASS GIS project is developed under the terms of the GNU General Public License (the GPL) in the open by volunteers the world over.

Resources for Developers

Communication

Documentation

GRASS libraries are self-documenting using Doxygen header comments.

Debugging

Code

Code submission procedure

Code submission standards

Explanation of C indentation rules

(see C language coding standards)

-bapForce blank lines after procedure bodies.
-bbbForce blank lines before block comments.
-bli1Indent braces 1 space.
-blsPut braces on the line after struct declaration lines.
-brPut braces on line with if, etc.
-cbi0Indent braces after a case label 0 spaces.
-ci4Continuation indent of 4 spaces.
-cli0Case label indent of 0 spaces.
-d0Set indentation of comments not to the right of code to 0 spaces.
-di0Put variables in column 0.
-fc1Format comments in the first column.
-hnlPrefer to break long lines at the position of newlines in the input.
-i4Set indentation level to 4 spaces.
-ip4Indent parameter types in old-style function definitions by 4 spaces.
-l80Set maximum line length for non-comment lines to 80.
-lc80Set maximum line length for comment formatting to 80.
-lpLine up continued lines at parentheses.
-nbadDo not force blank lines after declarations.
-nbboDo not prefer to break long lines before boolean operators.
-nbcDo not force newlines after commas in declarations.
-ncdbDo not put comment delimiters on blank lines.
-nceDo not cuddle } and else.
-ncsDo not put a space after cast operators.
-nfcaDo not format any comments.
-npcsDo not put space after the function in function calls.
-nprsDo not put a space after every '(' and before every ')'.
-npslPut the type of a procedure on the same line as its name.
-nsobDo not swallow optional blank lines.
-pi4Specify the extra indentation per open parentheses '(' when a statement is broken.
-sbi0Indent braces of a struct, union or enum 0 spaces.
-scPut the `*' character at the left of comments.
-ssOn one-line for and while statments, force a blank before the semicolon.
-ts8Set tab size to 8 spaces.
GRASS Makefile writing

PGM must be set before including Module.make.

In general, the point at which variables get defined doesn't matter if they are only used in commands, but it matters if they are used in the dependency line. Essentially, dependency lines get expanded at the point they are read, while commands are expanded at the point they are executed.

The list of variables where the order is significant is:

       PGM
       LIB_NAME
       SUBDIRS
       CMD_OBJS
       LIB_OBJS
       LOCAL_HEADERS
       EXTRA_HEADERS
       DEPENDENCIES

SVN/CVS

GIT

QA

Code Search and Metrics

Ongoing and Plans

Overview

Works in Progress

Sandbox (ideas section)

Linking GRASS to external languages

GRASS and QGIS

Commercial development for GRASS

This is an unsorted (and most probably incomplete) list of paid development for GRASS GIS

Related projects

With connections to GRASS

Not connected to GRASS

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox