In this section we assume that you have successfully acquired the sources as described in the downloads section.

The compilation is tested daily on several systems (linux, Windows, OSX). However, if you experience a problem please report it in the mailing list gismo@….

You can review the daily compilation results on:

The current status of the compilation on linux and OSX and MS Windows is:

Short instructions: Go to the source directory and type make. G+Smo will build in the /build subfolder. Alternatively call cmake from the folder of your choice.


The library uses standard C++ code and has minimal requirements. These are a C++ compiler and the CMake configuration tools. In detai

As an example, on a clean Ubuntu installation, the packages g++, libstdc++ and libstdc++-dev are needed (as well as cmake, and possibly svn).

  • Operating systems:
    • MS Windows
    • Linux
    • MacOSX
  • Configuration: CMake 2.8.8 or newer. Note: On windows, it is recommended that during installation you choose to have the CMake tools added to your PATH environmental variable.
  • Recommended:
    • Paraview for visualization: G+Smo can produce Paraview files for visualization of geometric objects. These can be opened as soon as Paraview is installed on your system.

Configuring and building

The compilation requires configuration using CMake at a new, empty folder (in-source builds are disabled).

  • On Linux/MacOSX: A Unix makefile exists in the root source folder. Running "make" creates a sub folder named "build" and executes CMake and compilation inside that folder. Alternatively, choose your own build folder and execute CMake pointing to the sources.

If your source folder is named "gismo" then the sequence of commands

 $ cd gismo
 $ make
  [100%] Built
 $ cd build
 $ ./bin/gsView

will compile the library and execute an example program. If you wish to have a build folder other than gismo/build, create a folder and execute (take a short coffee break after typing "make")

 $ mkdir my-build-folder
 $ cd my-build-folder
 $ cmake ../path-to/gismo
  -- Build files have been written to: /path-to/my-build-folder
 $ make
  [100%] Built

After successful compilation a dynamic library is created in ./lib and executable example programs are output at the ./bin subdirectory of the build folder.

If Doxygen is available on your system, you can compile and open the Doxygen HTML pages by executing

 $ cd my-build-folder
 $ make doc
  Built target doc
 $ firefox doc/html/index.html
  • On MS Windows: Run cmake-gui tool (from an environment that is configured with your compiler) o generate makefiles (or Visual Studio project). Then execute the make tool to launch compilation. Alternatively, use the QtCreator GUI and open the CMakeLists.txt file on the root folder to create a QtCreator project. Another option is to use CMake to create a Visual Studio project and load it to Visual Studio.

In more detail, after installation of MS Visual C++ compiler, open the Visual C++ command prompt (which is configured with the vcvarsall.bat script) and

> mkdir build-gismo
> cd build-gismo
> cmake ../path-to/gismo
 -- Build files have been written to: /path-to/build-gismo
> nmake
 [100%] Built

The procedure can also be carried out in the graphical environment of QtCreator as outlined here.

After successful compilation a dynamic library is created in \lib and executable example programs are output at the \bin subdirectory of the build folder.

Configuration options

Upon configuration, G+Smo presents a set of basic configuration options:

  CMAKE_BUILD_TYPE        RelWithDebInfo
  GISMO_COEFF_TYPE        double
  CMAKE_INSTALL_PREFIX    /usr/local
-- Number of examples to compile:      12

The default value of each option is shown in the column on the right. A short description of each option follows:


Available values are the standard CMake build configurations: Debug, Release, RelWithDebInfo?, MinSizeRel?.


The arithmetic type to be used for all computations. Available options include double, long double, float.


If set to ON additional debugging tools are enabled during compilation. These include checked iterators for GCC and MSVC compilers and call stack back-trace printout when a runtime exception occurs.


If enabled a dynamic library is created using GISMO_COEFF_TYPE arithmetic. A target for a static library named gismo_static is also created but not compiled by default.


If enabled the programs in the examples folder are compiled, and executables are created in build-folder/bin.


If enabled the plugin for Axel modeler is compiled (requires Axel).


If enabled the extensions using functionalities of Parasolid geometric kernel are compiled.(requires Parasolid).


If enabled the extension for reading and writing of Rhinoceros' 3DM is compiled.


The location for installation of the library, e.g. /usr/local on some Linux systems.

Source directory tree

The source tree consists of the following sub-folders:

  • examples Examples of usage, small programs and tutorials.
  • filedata Data files in the XML format the G+Smo can read and write.
  • extensions Optional additional features that can be compiled along G+Smo.
  • plugins Plugins for exporting functionality of G+Smo to third party software.
  • cmake Cmake configuration files
  • doc Files related to doxygen documentation.
Last modified 10 months ago Last modified on 2017-11-15T08:57:34+01:00