Environment: Visual Studio

In the Visual Studio environment option for setting up FLINT.example, the options to run, develop and debug the repository code is available. Also make sure you have the following prerequisites setup -

Prerequisites

Now that you have all the necessary prerequisites, you can proceed with the Installation.

Using vcpkg to install required libraries

Start a command shell in the Vcpkg repository folder (that you had cloned earlier) and use the following commands:

# bootstrap
bootstrap-vcpkg.bat

# install packages
vcpkg.exe install boost-test:x64-windows boost-program-options:x64-windows boost-log:x64-windows turtle:x64-windows zipper:x64-windows poco:x64-windows libpq:x64-windows gdal:x64-windows sqlite3:x64-windows boost-ublas:x64-windows fmt:x64-windows
Installing required packages using vcpkg in Command Prompt

Installing required packages using vcpkg in Command Prompt

Building the project

Launch the Windows Powershell and run the following commands:

# Create a build folder under the Source folder
mkdir -p Source\build
cd Source\build
Creating a build Directory for Cloned FLINT.example repo

Creating a build Directory for Cloned FLINT.example repo

Now depending on which type of simulation you want to execute, you may run one of the following generate commands:

Commands to run cmake for the point simulations:

# Point simulations
# Generate the project files
cmake -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX=C:\Development\Software\moja -DVCPKG_TARGET_TRIPLET=x64-windows -DOPENSSL_ROOT_DIR=c:\Development\moja-global\vcpkg\installed\x64-windows -DENABLE_TESTS=OFF -DCMAKE_TOOLCHAIN_FILE=c:\Development\moja-global\vcpkg\scripts\buildsystems\vcpkg.cmake ..

Commands to run cmake for the spatial simulations:

# Spatial simulations
# if your planning to run spatial chapman richards example you also need to enable the gdal module
# Generate the project files
cmake -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX=C:\Development\Software\moja -DVCPKG_TARGET_TRIPLET=x64-windows -DOPENSSL_ROOT_DIR=c:\Development\moja-global\vcpkg\installed\x64-windows -DENABLE_TESTS=OFF -DENABLE_MOJA.MODULES.GDAL=ON -DCMAKE_TOOLCHAIN_FILE=c:\Development\moja-global\vcpkg\scripts\buildsystems\vcpkg.cmake ..

Running the project

In order to run and debug the Visual Studio solution -

  • Open the visual studio solution that CMake created at C:\Development\moja-global\FLINT\Source\build\moja.sln
  • Build the debug configuration ALL_BUILD target by right clicking the ALL_BUILD node and selecting Build.
Navigating to Visual Studio Debugging ``ALL_BUILD`` properties page

Navigating to Visual Studio Debugging ALL_BUILD properties page

Running ``moja.cli.exe`` in Visual Studio Debugging All properties page

Running moja.cli.exe in Visual Studio Debugging All properties page

Running in the IDE and debugging is a little tricky. This could more than likely be resolved with better cmake setups. But for now there is some setup that can make running and debugging work.

The issue is we want to run with the moja.cli.exe from the moja.FLINT project, but debug in our current IDE (FLINT.example).

The solution is to use properties to setup a Debug run in the IDE, making the command run moja.cli.exe.

NOTE : All paths used below with C:\Development\moja-global will need to be modified to match your system build location of the moja project.

Test Module Example

The settings required in VS2019 are:

# Command
C:\Development\moja-global\FLINT\Source\build\bin\$(Configuration)\moja.cli.exe

# Command Args
--config config\point_example.json --config config\$(Configuration)\libs.base.win.json  --logging_config logging.debug_on.conf

# Working Directory
$(SolutionDir)\..\..\Run_Env

# Environment Debug
PATH=C:\Development\moja-global\vcpkg\installed\x64-windows\debug\bin;C:\Development\moja-global\FLINT\Source\build\bin\$(Configuration);%PATH%
LOCAL_LIBS=$(OutDir)
MOJA_LIBS=C:\Development\moja-global\FLINT\Source\build\bin\$(Configuration)

# Environment Release
PATH=C:\Development\moja-global\vcpkg\installed\x64-windows\bin;C:\Development\moja-global\FLINT\Source\build\bin\$(Configuration);%PATH%
LOCAL_LIBS=$(OutDir)
MOJA_LIBS=C:\Development\moja-global\FLINT\Source\build\bin\$(Configuration)

With Envs: PATH for various libraries built in the Moja stage and LOCAL_LIBS so we can modify the explicit path for our example config to load libraries from this vs build (the default is the same location as the EXE).

To match this, the example point config uses an environment variable in the library path:

{
  "Libraries": {
    "moja.flint.example.base": {
      "library": "moja.flint.example.based.dll",
      "path": "%LOCAL_LIBS%",
      "type": "external"
    }
  }
}

RothC example

We also have a RothC example for point level simulations. Inorder to run this example, you may modify the following arguments in the above test settings command arguments. These arguments will point at the right configuration files for RothC. Please follow the following steps to set the correct configuration -

  • Build the debug configuration ALL_BUILD target by right clicking the ALL_BUILD node and selecting Build. Then right click the the moja.flint.example.rothc node and select Set as Startup Project then right click again and select properties. Navigate to Configuration Properties/Debugging properties pane and configure the following:

    • Command: C:\Development\moja-global\FLINT\Source\build\bin\Debug\moja.cli.exe
    • Command Arguments:
    --config config\point_example.json --config config\debug\libs.base.win.json --logging_config logging.debug_on.conf
    
    • Working Directory: $(SolutionDir)..\..\Run_Env
    • Environment:
    PATH=C:\Development\moja-global\FLINT\Source\build\bin\Debug;%PATH% LOCAL_LIBS=C:\Development\moja-global\FLINT.Example\Source\build\bin\Debug
    
``ALL_BUILD`` properties page for ``moja.FLINT.example.rothc``

ALL_BUILD properties page for moja.FLINT.example.rothc

You should now be able to select Debug->Start Debugging to start a debug run of the RothC example. You should see something like the following:

Debug run for rothc example

Debug run for rothc example

Enable moja.modules.GDAL

Before moving on to setting up the Chapman Richards model, we need to enable the moja.modules.GDAL flags. We can toggle these flags by clicking on BROWSE BUILD and setting it to the build directory where we just built the solution.

  • Open the solution that CMake created at C:\Development\moja-global\FLINT\Source\build\moja.sln .
Navigating to Cmake Configuration Page

Navigating to Cmake Configuration Page

  • Check the following Flags present:
  • ENABLE_MOJA.MODULES.GDAL
  • ENABLE_MOJA.MODULES.LIBPQ
  • ENABLE_MOJA.MODULES.POCO
  • ENABLE_MOJA.MODULES.ZIPPER
Checking the flags mentioned

Checking the flags mentioned

  • Now, Click on Configure option twice.
Configuring the new options highlighted in red

Configuring the new options highlighted in red

  • Click on Generate and then you may explore all the enabled modules in Solution Explorer by clicking on Open Project.
Generating the new configuration

Generating the new configuration

  • Open CMakePredefinedTargets, right click on ALL_BUILD and click on Build
Navigate to CMakePredefinedTargets Build

Navigate to CMakePredefinedTargets Build

CMakePredefinedTargets ``ALL_BUILD`` Screen

CMakePredefinedTargets ALL_BUILD Screen

Viola! All libraries have been enabled You may now proceed with the Chapman Richards example!

Chapman Richards example

Based on the moja global repository Chapman Richards , this sample can be run on both point and spatial versions (over Dominica). Inorder to run this example, you may modify the following arguments in the above test settings command arguments. These arguments will point at the right configuration files for Chapman Richards.

# Command Args
# Point
--config config/point_forest_config.json --config config/$(Configuration)/libs.gdal.chaprich.win.json
# Spatial
--config config/forest_config.json --config config/$(Configuration)/libs.gdal.chaprich.win.json --config_provider config/forest_provider.json