Building C++ Client


External Dependencies


Above are source only dependencies for CMake project. They will get downloaded and built as part of super-build project for AIAA Client.

Building Binaries

Following the below instructions to get the source code and build the project

git clone NvidiaAIAAClient
cd NvidiaAIAAClient
mkdir build
cmake -DCMAKE_BUILD_TYPE=Release ../

# If ITK is installed locally
export MYINSTALL_DIR=/home/xyz/install
cmake -DCMAKE_BUILD_TYPE=Release -DITK_DIR=${MYINSTALL_DIR}/lib/cmake/ITK-4.13 ../

# If ITK and Poco are installed locally
cmake -DCMAKE_BUILD_TYPE=Release -DITK_DIR=${MYINSTALL_DIR}/lib/cmake/ITK-4.13 -DPoco_DIR=${MYINSTALL_DIR}/lib/cmake/Poco ../
To Build binaries/package on Linux/MacOS:
  • make -j6

  • cd NvidiaAIAAClient-Build

  • make package

To Build binaries/package on Windows:
  • open NvidiaAIAAClient-superbuild.sln and run ALL_BUILD target

  • open NvidiaAIAAClient.sln under NvidiaAIAAClient-Build and run PACKAGE target to build (in Release mode) an installable-package


  • Use Release mode for faster build.

  • For Windows, use CMAKE GUI client to configure and generate the files.

  • For Windows, if ITK is not externally installed, then use shorter path for ROOT Folder e.g. C:/NvidiaAIAAClient to avoid LongPath error.

Following are some additional CMake Flags helpful while configuring the project.
  • ITK_DIR - use already installed ITK libraries and includes

  • Poco_DIR - use already installed Poco libraries and includes

  • AIAA_LOG_DEBUG_ENABLED - enable/disable Debug-level Logging (default: 0)

  • AIAA_LOG_INFO_ENABLED - enable/disable Info-level Logging (default: 1)

Building the Documentation

The NVIDIA AI-Assisted Annotation Client documentation is found in the docs/ directory and is based on Sphinx. Doxygen integrated with Exhale is used for C++ API docuementation.

To build the docs install the required dependencies:

$ apt-get update
$ apt-get install -y --no-install-recommends doxygen
$ pip install --upgrade sphinx sphinx-rtd-theme nbsphinx exhale breathe numpy requests_toolbelt nibabel future

Then use Sphinx to build the documentation into the build/html directory:

$ cd docs
$ make clean html