Building

Building C++ Client

Prerequisites

External Dependencies

Note

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 https://github.com/NVIDIA/ai-assisted-annotation-client.git 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

Note

  • 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