Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 3.62 KB

readme-dms.MD

File metadata and controls

63 lines (47 loc) · 3.62 KB

This document describes most of the folder structure of source code of the GeoDMS and how to build the GeoDMS from it.

https://github.com/ObjectVision/GeoDMS

Version info: see rtc/dll/src/RtcGeneratedVersion.h

This folder contains all the code for building the executables and required libraries of the GeoDMS.

The C++ products can be compiled with MS Visual Studio 2023 (17.9.x) Supported Platforms: x64 (Win32 still available but not recently tested) Supported Configurations: Debug and Release

Open the VS solution file: all22.sln. This solution refers to projects in the following folders for building specific .dlls and .exes:

Folders which relate to Dynamic Link Libraries (DLLs) of the GeoDMS:

  • rtc: Runtime Core Library, containing facilities for tokenizing, streaming and serialization, runtime-reflection, file system encapsulation, which depends on:
    • boost-format
    • boost-locale
    • boost-spirit
  • sym: Lisp evaluator for processing parsed calculation rules
    • LispRef, which can be a ListRef with a left and right LispRef, a SymbObj, a NumbObj or a StrnObj. They use a process-wide register to avoid duplicate values having different addresses to support faster identification, memoization, and limit memory usage.
  • tic: Tree Item Classes, Data Items and Units and related services.
  • stx: configuration syntax parser and producer of an internal representation of a model and its calculation rules.
  • stg: Storage Managers, providing a generic interface to various storage managers, such as LibTIFF and GDAL
  • clc: implementation of most common operators and functions: arithmetic, aggregation, relational, logical, meta-scripting, string operations, overlay, ramp
  • geo: implementation of geometric and network operators, such as impedance matrix functions, raster convolution, polygon and linestring operations
  • shv: Viewer Components (TableView, MapView) and related Carets, Controllers, and Graphic Components.
  • python: Python bindings to the GeoDMS

Folders which relate to Executables (EXEs) of the GeoDMS:

  • qtgui
  • run
  • GeoDmsPython
  • doc: folder that contains some technical and architectural working documents; not up to date, complete, correct or implemented.

Other product related folders:

  • LoadConfigFromPython: a python component to load a GeoDms configuration and retrieve data from it.
  • msbuild_linux
  • nsi

Auxiliary folders:

  • html: resources that are/were used for supporting the .adms implementation of ExportSettings.
  • res: various resources, such as editor syntax files, the dms.ttf, RewriteExpr.lsp
  • splash
  • obj: folder that contains only intermediate products of the build process, such as .obj files, with sub folders $(Configuration)$(Platform)
  • bin: folder that contains only products of the build process with sub folders $(Configuration)$(Platform)
  • distr: folder that contains the results of running BuildSignAndCreateSetup.bat, that follows a successful build to generate a setup file for the GeoDMS.

For installing GDAL, OpenSLL, boost, etc., use vcpkg as described at https://github.com/ObjectVision/GeoDMS/wiki/Compiling-the-GeoDMS

The clc component optionally makes use of the Intel Integrated Performance Primitives for Windows. This option is enabled by default in rtc/dll/src/RtcBase.h by inclusion of the line:

#define DMS_USE_INTEL_IPP

A developers version of this library can be obtained at http://www.intel.com/software/products/ipp/index.htm

The Stg component makes use of a library for tiff file processing, copyrighted by Sam Leffler and Silicon Graphics, Inc.