83 lines
2.3 KiB
Markdown
83 lines
2.3 KiB
Markdown
# H.D.K. -- Hollow Development Kit
|
|
|
|
Complete development environment for hollow interactive environment development on compatible grid emitter systems.
|
|
|
|
- [Doxygen generated documentation](https://ufp.institute/hdk/docs/)
|
|
- [Git repository](https://git.ufp.institute/ufp/hdk)
|
|
|
|
## Submodules
|
|
|
|
This repository is simply a collection of submodules that rely on each other to build the "hollow development kit".
|
|
The submodules are:
|
|
|
|
- [grid](./grid/README.md)
|
|
- [sdl](./sdl/README.md)
|
|
- [is3r](./is3r/README.md)
|
|
|
|
## 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:
|
|
|
|
```bash
|
|
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`
|
|
|
|
|