Skip to content
/ kdis Public

A complete open source C++11 implementation of DIS (Distributed Interactive Simulation, IEEE 1278.1). The 1278.1-2012 ("DIS7"), 1278.1A-1998 ("DIS6"), and 1278.1-1995 ("DIS5") versions of the standard are fully implemented including enumerations and utilities to guide your DIS app development.

License

Notifications You must be signed in to change notification settings

karljj1/kdis

Repository files navigation

KDIS

version release codecov

Open source implementation of DIS (Distributed Interactive Simulation) IEEE 1278.1

Contributing

I would love to see your contribution ❤️

See CONTRIBUTING guidelines

Development

Requirements

Name Homepage Required Notes
CXX Compiler ✔️ >= C++11
CMake https://cmake.org ✔️ >= 3.14
Clang Format https://clang.llvm.org/docs/ClangFormat.html
Clang Tidy https://clang.llvm.org/extra/clang-tidy
cmake lang https://github.com/cheshirekow/cmake_format pip install cmakelang[YAML]
Doxygen https://www.doxygen.nl Documentation

Build Options

Name Description Type Default Notes
DIS_VERSION DIS version:
  • 5
    IEEE 1278.1-1995
  • 6
    IEEE 1278.1A-1998
  • 7
    IEEE 1278.1x-2012
STRING 7
KDIS_USE_ENUM_DESCRIPTORS Enumeration descriptors.
Allow enum values to be turned into their text labels.
⚠️ Increase the memory footprint of the library
BOOL ON
KDIS_BUILD_INSTALL Build install BOOL PROJECT_IS_TOP_LEVEL
KDIS_BUILD_DOCS Build documentation BOOL PROJECT_IS_TOP_LEVEL Doxygen is required
KDIS_BUILD_EXAMPLES Build examples BOOL PROJECT_IS_TOP_LEVEL
KDIS_BUILD_TESTS Build tests BOOL PROJECT_IS_TOP_LEVEL
KDIS_BUILD_TESTS_COVERAGE Build tests coverage BOOL PROJECT_IS_TOP_LEVEL Build option KDIS_BUILD_TESTS must be ON.
LCOV is required
BUILD_SHARED_LIBS Build shared library BOOL ON See BUILD_SHARED_LIBS documentation for more information

Build

  1. Generate project

    [!TIP] Change build options' values as needed

    cmake \
        -S . \
        -B ./build \
        -DCMAKE_BUILD_TYPE:STRING=Release \
        -DDIS_VERSION:STRING=7 \
        -DKDIS_USE_ENUM_DESCRIPTORS:BOOL=ON \
        -DKDIS_BUILD_INSTALL:BOOL=OFF \
        -DKDIS_BUILD_DOCS:BOOL=OFF \
        -DKDIS_BUILD_EXAMPLES:BOOL=OFF \
        -DKDIS_BUILD_TESTS:BOOL=OFF \
        -DKDIS_BUILD_TESTS_COVERAGE:BOOL=OFF \
        -DBUILD_SHARED_LIBS:BOOL=ON
  2. Build project

    [!NOTE] Change value of --config to match value of CMAKE_BUILD_TYPE

    cmake \
        --build ./build \
        --config Release

Documentation

Important

KDIS_BUILD_DOCS:BOOL=ON required

File index.html available under build/html directory

cmake \
    --build ./build \
    --target KDIS_docs

Examples

Important

KDIS_BUILD_EXAMPLES:BOOL=ON required

More information can be found in examples/README.md

Tests

Important

KDIS_BUILD_TESTS:BOOL=ON required

Note

Change value of --build-config to match value of CMAKE_BUILD_TYPE

More information can be found in tests/README.md

ctest \
    --verbose \
    --test-dir ./build/tests \
    --build-config Release

Coverage

Important

KDIS_BUILD_TESTS_COVERAGE:BOOL=ON required

File index.html available under build/kdis_coverage directory

cmake \
    --build ./build \
    --config Debug \
    --target KDIS_coverage

More information can be found in tests/README.md

Scripts

More information can be found in scripts/README.md

License

This project is licensed under the BSD 2-Clause "Simplified" License
See LICENSE file for details

About

A complete open source C++11 implementation of DIS (Distributed Interactive Simulation, IEEE 1278.1). The 1278.1-2012 ("DIS7"), 1278.1A-1998 ("DIS6"), and 1278.1-1995 ("DIS5") versions of the standard are fully implemented including enumerations and utilities to guide your DIS app development.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published