A C++ implementation of the Distributed Interactive Simulation (DIS) application protocol IEEE-1278.
Note: This code base was originally auto generated with xmlpg.
-
CMake is required to build the platform specific projects. It can be downloaded and installed from http://cmake.org/
-
SDL2 and SDL2_net are required libraries to compile the examples. These can usually be install via Linux package managers. More details, and instructions for Windows are included below.
NOTE: Windows users will need to either add the DLL folders to their path, or copy the DLLs to the output directory (
Debug).
The OpenDIS build system accepts several build options to control compilation. The following options are available:
- BUILD_SHARED_LIBS - Boolean value to specify whether to build OpenDIS libraries as shared (ON/TRUE) or static (OFF/FALSE). Default is ON.
- BUILD_EXAMPLES - Boolean value to specify whether to build example sender/receiver applications. Default is OFF.
- BUILD_TESTS - Boolean value to specify whether to build unit tests. Default is OFF.
Example application build options. Only valid if BUILD_EXAMPLES is enabled.
- SDL2_PATH - Installation path of SDL2
- SDL2_NET_PATH - Installation path of SDL2_net
These options are passed to cmake as arguments. Example: cmake -DBUILD_SHARED_LIBS=ON -DBUILD_EXAMPLES=ON ..
- Run
mkdir build - Run
cd build - Run
cmake .. - Optionally,
-DCMAKE_INSTALL_PREFIX=<custom-path-to-install>to set a custom directory to install the bin, include, and lib output directories. - Run
make- this will output the libOpenDIS6.so, and libOpenDIS7.so libraries in the build directory along with the Example Applications. - The below steps are optional
- Run
make packageto build Linux package files. Currently this will produce a Red Hat RPM package, Debian DEB package, and 2 compressed tarball (XZ, GZ). - Run
make installto install bin, lib, and dir, intoCMAKE_INSTALL_PREFIXWARNING:CMAKE_INSTALL_PREFIXdefault can to somewhere/usr/local/, if not specified with the-Dflag as shown in Step 3.1. If you're unsure where to install, and want to keep your/usr/local/directory clean, runcmake .. -DCMAKE_INSTALL_PREFIX=./install. This will causemake installto create a local install directory, from which you can move files elsewhere at a later date.
- Open
CMake (cmake-gui)via the the start menu. - Enter the open-dis-cpp directory path into the Source and Build fields.
- Click the
+ Add Entrybutton and enter the following details: Name:SDL2_PATHType:PATHValue:<SDL2-install-folder>(if you follow the below SDL2 Windows Install Instruction this will beC:/SDL2) - Click the
+ Add Entrybutton and enter the following details: Name:SDL2_NET_PATHType:PATHValue:<SDL2-install-folder>(if you follow the below SDL2 Windows Install Instruction this will beC:/SDL2) - Click the
+ Add Entrybutton and enter the following details: Name:CMAKE_LIBRARY_ARCHITECTUREType:STRINGValue:x64(64 bit) orx86(32 bit) - Click Configure and follow the prompts, selecting the correct generator (i.e. Visual Studio version).
- Click Generate
- Click Open Project - This should open the generates solution file in Visual Studio
- Build the Solution (
Ctrl + Shift + B)
These steps were tested with Visual Studio 16 2019 (Community Edition).
Currently, only OpenDIS 6 and the Example Applications compile.
The library and executable files are output to a Debug directory.
To run the executables, either the value of the SDL2_PATH/lib/CMAKE_LIBRARY_ARCHITECUTRE should be added to your path,
or SDL2.dll and SDL2_net.dll need to be copied to the Debug directory.
To quickly clean up CMake output files, use git clean -xdf.
Note: Use with care if you are actually developing open-dis-cpp, as git clean removes untracked files.
- premake5 is required to build the platform specific projects. Download it and make sure it's available on your path, or specify the path to it.
- Run
premake5 gmake - Run
make config=release
- Run
premake5 vs2015 - Open the solution and build.
The latest doxygen docs for the Open DIS master branch can be found here.
Arch: sudo pacman -S sdl2 sdl2_net
Fedora: sudo dnf install SDL2-devel SDL2_net-devel
Ubuntu: sudo apt-get install libsdl2-dev libsdl2-net-dev
If you're unable to install the correct packages, try installing from source
These are the installation steps that have been tested with open-dis-cpp, however there are other methods for installation. Experienced users should feel free to customise their install.
-
Navigate to the SDL2 Download page, and download the latest Development Libraries.
Alternatively, the version tested with open-dis-cpp, 2.0.12-VC, can be downloaded from this direct link.
-
Extract the SDL2-devel-2.0.12-VC.zip file directly to your
C:\. -
Rename the resulting
SDL2-2.0.12folder toSDL2. -
Add
C:\SDL2\lib\x64to your System Path for 64-bit systems, or addC:\SDL2\lib\x86for 32-bit systems.
-
Navigate to the SDL2_net project page, and download the latest Development Libraries.
Alternatively, the version tested with open-dis-cpp, 2.0.1-VC, can be downloaded from this direct link.
-
Extract the SDL2-devel-2.0.12-VC.zip
-
Copy the
includeandlibdirectories from the resulting folder into youC:\SDL2\folder
Run the following commands:
-
wget http://libsdl.org/release/SDL2-2.0.12.tar.gzOr, Download via your favourite web browser.
NOTE: check the download page for new releases
-
tar -xvf SDL2-2.0.9.tar.gz -
pushd SDL2-2.0.9/ -
./configure --prefix=/usr && make && sudo make install -
popd
-
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.0.1.tar.gzOr, Download via your favourite web browser.
NOTE: check https://www.libsdl.org/projects/SDL_net page for new releases
-
tar -xvf SDL2_net-2.0.1.tar.gz -
pushd SDL2_net-2.0.1/ -
./configure --prefix=/usr && make && sudo make install -
popd