Installation Guide
Binary Release
The easiest way to install is to visit the Releases page and download the latest release for your platform.
2.2 vcpkg
[!NOTE]
slxiois not yet available on vcpkg, once it is published, you will be able to install it using:vcpkg install slxio
2.3 Conan Recipe
See Conan.
[!NOTE]
slxiois not yet available on the Conan package manager, once it is published, you will be able to add it to your project using a Conan recipe.
3.0 Building from Source
This section describes how to build slxio, see 2.1 describes the dependencies,
3.1 Dependencies
Slxio has its own modular build wrapper, written on top of CMake, similar to many open‑source projects. All core dependencies are vendored with the source code in the ThirdParty directory to maximize platform compatibility and reduce reliance on external build/fetch rules. Optional dependencies may either use system‑wide installations or be fetched externally depending on configuration options, via CMake package managers or other internal helpers.
| Library | Version | Introduced In | Depends On | Notes |
|---|---|---|---|---|
| slog | Latest | v0.1.0 | ||
| json-c | Latest | v0.1.0 | ||
| zlib | 1.2.8 | v0.1.0 | ||
| libzip | 1.11.4 | v0.1.0 | zlib | |
| libxml2 | 2.14.5 | v0.1.0 | ||
| TinyXML2 | v0.1.0 | Not yet used | ||
| HDF5 | 1.14.1 | v0.3.0 | zlib | experimental |
| matio | 1.5.28 | v0.3.0 | zlib, HDF5 | experimental |
| cxxopts | 3.3.1 | v0.3.0 | experimental | |
| doctest | 1.14.0 | v0.3.0 | ||
| libuv | v0.3.0 |
3.1.1 zlib
Support for compressed SLX, JSON, MAT, and h5 file formats requires the zlib library. Version 1.2.8 of zlib is bundled with the code and will be built automatically if not found by CMake in the system path. Other versions are not officially supported.
3.1.1 HDF5
Support for MATLAB MAT files, used for reading Simulink-related data structures, is provided through matio, which itself requires the HDF5 library. Additionally, for serializing SLX files into standard .h5 data files, SLXIO depends on the HDF5 library. If the library is not found, it is automatically fetched and built via CPM. However, it is recommended to use a prebuilt binary, as this significantly reduces the build and compilation time.
3.2 Building Slxio
Building the library from source can be time‑consuming depending on your system configuration and setup. For a quicker installation, we recommend using the binary distribution for each platform
3.2.1 Quick Build Guide
mkdir build && cd build
cmake -G "MinGW Makefiles" ..
cmake --build .
cmake --install .
3.2.2 Configure Options
| Option | Description | Default | Supported Since |
|---|---|---|---|
| BUILD_SHARED_LIBS | Build as shared libraries | OFF | |
| ENABLE_PYTHON_BINDING | Enable building Python interface | ON | |
| ENABLE_TESTING | Build C++ unit tests | ON | 0.1.0 |
| ENABLE_BINDING_TEST | Build binding interface tests | ON | |
| ENABLE_NAMESPACE | Enable global namespace | TRUE | |
| ENABLE_ABI_NAMESPACE | Enable ABI namespace (requires ENABLE_NAMESPACE=ON) | ON | |
| USE_LOCAL_LIBS | Use locally installed libraries | ON | |
| ENABLE_OPENMP | Enable compiling with OpenMP support | ON | 0.1.0 |
| ENABLE_AVX | Enable AVX optimizations where available | ON | |
| ENABLE_HDF5 | Enable HDF5 support | ON | 0.1.0 |
| ENABLE_MATLAB | Enable MATLAB support | OFF | |
| ENABLE_PKGCONFIG | Generate pkg-config file | ON | |
| ENABLE_INSTALL | Enable installation after build | OFF | |
| ENABLE_SANITIZER | Enable sanitizers (ASan/UBSan/etc.) | OFF | |
| ENABLE_CLANG_TIDY | Enable static analysis with clang-tidy | OFF | |
| ENABLE_CPPCHECK | Enable static analysis with cppcheck | ON | |
| ENABLE_CLANG_FORMAT | Enable Clang-Format support mode | ON | |
| ENABLE_COVERAGE | Enable code coverage reporting (GCC/Clang) | OFF | |
| ENABLE_FUZZING | Enable fuzzing support | OFF | |
| ENABLE_DOCUMENTATION | Enable documentation generation | OFF | 0.1.0 |
| BUILD_EXAMPLES | Build example applications | OFF | 0.1.0 |
| CMAKE_INSTALL_PREFIX | Default install path | ${CMAKE_BINARY_DIR}/install | 0.1.0 |