Files
hdk/INDEX.md
T
2026-05-17 11:26:14 +00:00

2.3 KiB

H.D.K. -- Hollow Development Kit

Complete development environment for hollow interactive environment development on compatible grid emitter systems.

Submodules

This repository is simply a collection of submodules that rely on each other to build the "hollow development kit".
The submodules are:

Building

The unifying build system for all submodules is CMake and this can be configured to build all submodules at once.

To build the entire project, simply run the following commands in the root of the repository:

mkdir build
cd build
cmake ..
cmake --build .

This will build all submodules and create the necessary libraries and executables for development.

Options

These control the default state of submodules so enabling them will enable them by default everywhere.

  • HDK_TESTS
  • HDK_EXAMPLES
  • HDK_COVERAGE

HDK_COVERAGE_FAIL_UNDER is a percentage threshold for code coverage that will cause the build to fail if not met.

Dependency and Asset Resolution Policy

HDK subprojects now follow the same resolution strategy for examples and most third-party dependencies:

  1. Attempt to use an installed system package with a minimum required version.
  2. If no suitable package is found, fall back to FetchContent.

For shared example assets this means examples try to use hdk-assets first, then fetch from:

  • https://git.ufp.institute/ufp/hdk-assets.git

The default minimum shared assets version is:

  • v0.0.1

Top-level knobs:

  • HDK_USE_SYSTEM_DEPS
  • HDK_ASSETS_MIN_VERSION
  • HDK_ASSETS_GIT_REPOSITORY

Install Layout

HDK uses standard GNU install variables and keeps all package outputs under one install prefix. By default, shared example assets install to ${CMAKE_INSTALL_PREFIX}/assets.

Typical install tree under a custom prefix like /opt/hdk:

Path Purpose
/opt/hdk/bin Executables and installed examples
/opt/hdk/lib Libraries and CMake package files
/opt/hdk/include Public headers
/opt/hdk/assets Shared example assets

Asset install subdirectory can be overridden with:

  • HDK_INSTALL_ASSETSDIR