-
Notifications
You must be signed in to change notification settings - Fork 1
Compiling the GeoDMS
This page describes how to compile GeoDmsRun.exe from source on Windows. The process is bound to change through an ongoing effort to make the source code more accessible to the open-source community. The compilation is performed using Microsoft Visual Studio (2022), which can be downloaded here. During the installation of VS2022, make sure to install the latest versions of additional components: C++, MFC, and C++ ATL. This document is written as a chronological guide.
Clone GeoDMS from the Github repository.
Dependencies can be installed using the open-source package manager vcpkg. However, for Visual Studio 2022 and newer, vcpkg can be installed using Visual Studio Installer, which installs vcpkg in C:\Program Files\Microsoft Visual Studio\2022\Community\VC\vcpkg
. GeoDMS makes use of manifest mode, using vcpkg.json
in the root directory of the repository. When compiling GeoDMS using the steps on this page, vcpkg.exe
should be used as a package manager for missing dependencies. To ensure that Visual Studio 'knows' where to get these missing dependencies, vcpkg has to be properly integrated into the system. In order to do this:
- Open a command-prompt in the install location of vcpkg, e.g.
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\vcpkg
and issue the command:vcpkg.exe integrate install
. This should now make vcpkg available, and dependencies should begin to download when you start compiling.
- Download the Intel® oneAPI Base Toolkit here.
- During the setup, manually choose which component to install. Here, only select the Integrated Performance Primitives (IPP) library.
- Open the Microsoft Visual Studio (2022) project file located in the GeoDMS-clone
/geo/dll/GeoDLL.vcxproj
and set the IPP paths on lines 49, 54 and 59.
-
Download and install the latest stable release stable release of Qt (version 6.8.0 as of January 2025), using the Qt installer. You can deselect all components, except
MSVC 2022 64-bit
andQt WebEngine
, from the extensions. This will take a while. -
In Visual Studio (2022), install the
Qt Visual Studio Tools
extension. When you click install, the installation will start when you close Visual Studio. -
Then make sure to add the installed Qt version using Tools>Options>Qt>Versions. Then click Add and click the ... to open the file browser. Here, navigate to
qmake.exe
: ieC:\Qt\6.8.0\msvc2019_64\bin\qmake.exe
. -
Also, for the project properties, make sure the Qt version is set to the installed version. For this, go to the solution explorer > right-click on 'GeoDmsGuiQt', select properties at the bottom, go to Qt Project Settings, and set the 'Qt Installation' value to the installed Qt version from the previous step.
Open the solution file geodms/trunk/all22.sln
in Microsoft Visual Studio (2022). You see that GeoDMS consists of various projects from
which we will create .dll
files. There are four build configurations: a Release and Debug version in both x64 and Win32. Use ctrl-shift-b to
build the whole solution, or alternatively follow these steps as a roadmap to build GeoDmsRun.exe:
- Rtc (Runtime Core Library)
- Sym (configuration syntax parser and producer of an internal representation of a model and its calculation rules.)
- 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 GDAL, Proj, and native Storage Implementations including .shp and .dbf the TIFF lib, and ODBC connections.)
- Clc (implementation of common operators)
- Geo (implementation of geometric and network operators, such as Dijkstra functions, raster convolution, polygon and arc operations)
- Shv (Viewer Components (TableViewer, MapViewer) and related Carets, and Graphic Components.)
- And finally: GeoDmsRun.exe, and GeoDmsGuiQt.exe
All build products will be placed in the bin folder depending on the chosen build configuration; for instance, the GeoDmsRun.exe
file may reside in the: geodms/bin/Release/x64
folder.
Python bindings are being developed in the main development git branch (currently: v14). The GeoDmsPython project produces the required Python3 bindings using pybin11. First, make sure Python 3.10 or above is installed on your system, which can be downloaded here. Next, make sure pybind11 is installed using command:
vcpkg install python3 --triplet x64-windows
vcpkg install pybind11 --triplet x64-windows
Then, in the GeoDmsPython project properties, make sure that the include path refers correctly to your vcpkg python locations
- C/C++ -> Additional Include Directories:
If all is setup, GeoDmsPython project can be build without errors, the output will be named geodms.pyd in the output folder (python dynamic module).
Now open a terminal in the build folder where geodms.pyd is located and type "python" which will start up python in command line mode. To test the geodms module, import the version function:
from geodms import version
And evaluate:
version()
Which should return a proper version string, which depends on the build time and type:
Additionally, you can run LoadConfigFromPython.py, which is located in the LoadConfigFromPython project folder.
Native Linux compilation is being prepared in the linux_gcc branch.
The steps that I did to get somewhere are:
- Install WSL (Ubuntu) and set ssh on port 23
sudo apt update
sudo apt upgrade
sudo apt install net-tools
cd /etc/ssh/sshd_config
vi sshd_config ;
sudo service ssh restart
- install gcc and vcpkg
sudo apt install g++ gdb make ninja-build rsync zip
sudo apt install vcpkg
cd /mnt/c/vcpkg/scripts/buildsystems
./bootstrap-vcpkg.sh
vcpkg install boost --triplet x64-linux
vcpkg integrate install
GeoDMS ©Object Vision BV. Source code distributed under GNU GPL-3. Documentation distributed under CC BY-SA 4.0.