Skip to content
Snippets Groups Projects
Select Git revision
  • a2db29a3ca95f348847e7de76b8436a2129e7067
  • master default protected
  • master-21
  • master-drop-qt5
  • master-parallel-io
  • fillCustomShapeParameters
  • master-json-interface
  • master-nico-temporary-hack
  • deprecate-custom-shape-bundle
  • master-specialshape-geomodelg4
  • master-specialshape-io
  • master-add-tests
  • 3.2.0
  • 3.1.3
  • 3.1.2
  • 3.1.1
  • 2.0.1
  • 2.0.0
  • 1.3
  • 1.2
  • 1.1
  • 1.0
22 results

GeoModelIO

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • pipeline status

    GeoModelIO

    GeoModelIO contains all tools needed to read and write the persistent GeoModel tree data from and to file.

    Quick Installation

    On macOS and Ubuntu you can quickly install the pre-compiled library, with all the dependencies.

    macOS

    brew tap atlas/geomodel https://gitlab.cern.ch/GeoModelDev/packaging/homebrew-geomodel.git
    brew install geomodelio

    on macOS Mojave, the command above will install pre-compiled binaries, so the installation is quick. On other macOS versions, brew will build the library from its source code.

    Ubuntu

    sudo add-apt-repository ppa:kaktusjoe/geomodel

    sudo apt-get update

    sudo apt install geomodel-io-dev


    Steering the library behavior

    Number of threads

    At run time, you can choose to run in serial mode by set this environment variable before running any code built on top of GeoModelIO:

    export GEOMODEL_ENV_IO_NTHREADS=0

    You can also choose the number of threads for GeoModelIO to use during I/O operations. For example, if you want to use 8 threads, just set:

    export GEOMODEL_ENV_IO_NTHREADS=8

    You can also ask GeoModelIO to use exactly the number of threads supported by your platform by passing -1 to the variable, as here below. On a quad-core CPU offering 8 native threads, 8 threads will be used by GeoModelIO.

    export GEOMODEL_ENV_IO_NTHREADS=-1

    Build

    If you want to work on the library code, or if you want to use the latest version of the code, you have to build it by yourself.

    First, install or build the GeoModelCore dependency, by following its instructions.

    Then, get the code of this library and compile it:

    git clone https://gitlab.cern.ch/GeoModelDev/GeoModelIO.git
    mkdir build_geomodelio
    cd build_geomodelio
    cmake ../GeoModelIO
    make

    Build options

    Timing information

    GEOMODEL_IO_TIMING

    You can ask GeoModelIO to print timing information, by setting the GEOMODEL_IO_TIMING variable while configuring the build with CMake; for example, by using:

    cmake -DGEOMODEL_IO_TIMING=ON ../GeoModelIO/

    Debug information

    GEOMODEL_IO_DEBUG

    You can ask GeoModelIO to print debug information, by setting the GEOMODEL_IO_DEBUG variable while configuring the build with CMake:

    cmake -DGEOMODEL_IO_DEBUG=ON ../GeoModelIO/

    GEOMODEL_IO_DEEP_DEBUG

    You can ask GeoModelIO to print even more debug information, by setting the GEOMODEL_IO_DEEP_DEBUG variable while configuring the build with CMake:

    cmake -DGEOMODEL_IO_DEEP_DEBUG=ON ../GeoModelIO/

    Local 'install' path

    If you want to build a custom version of the library to be used to develop client code, you can create a self-contained area by defining a local install path; you can do it by adding the option -DCMAKE_INSTALL_PREFIX=../install when running CMake:

    cmake -DCMAKE_INSTALL_PREFIX=../install ../GeoModelIO
    make
    make install

    The make install command will install the headers and the shared libraries into the ../install folder. Then, use the same -DCMAKE_INSTALL_PREFIX=../install when compiling your client code, to let it find the custom version of the GeoModelIO library.