Skip to content
/ kdis Public
forked from karljj1/kdis

DIS(IEEE 1278.1) Fully Implemented in C++. A complete open source implementation of DIS (Distributed Interactive Simulation) in C++. 1278.1 and 1278.1a are fully implemented including enumerations. Includes several utility classes to help with developing your DIS app.

License

Notifications You must be signed in to change notification settings

dksmiffs/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

DIS(IEEE 1278.1) Fully Implemented in C++. A complete open source implementation of DIS (Distributed Interactive Simulation) in C++. 1278.1 and 1278.1a are fully implemented including enumerations. Includes several utility classes to help with developing your DIS app.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.2%
  • CMake 2.6%
  • Shell 0.2%