From 95b5b2e786cd1d3b9b484969baf798bbc9d76807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kr=C3=A4mer?= Date: Mon, 16 Dec 2024 11:52:09 +0100 Subject: [PATCH] Platform support (#152) docs: add platform support for SIL Kit Issues: SILKIT-1645 --------- Signed-off-by: Jan Kraemer --- README.rst | 4 +- docs/for-developers/developers.rst | 106 +++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index e2e46e28e..ec697ce16 100644 --- a/README.rst +++ b/README.rst @@ -17,7 +17,7 @@ The Vector SIL Kit .. |WinBadge| image:: https://github.com/vectorgrp/sil-kit/actions/workflows/build-win.yml/badge.svg :target: https://github.com/vectorgrp/sil-kit/actions/workflows/build-win.yml | |ReleaseBadge| |LicenseBadge| |DocsBadge| -| |AsanBadge| |UbsanBadge| |TsanBadge| |WinBadge| +| |AsanBadge| |UbsanBadge| |TsanBadge| |WinBadge| The Vector SIL Kit is an open-source library for connecting Software-in-the-Loop Environments. This README is intended to provide you with quick start on how to build the Vector SIL Kit. @@ -30,6 +30,8 @@ The SIL Kit source and documentation is licensed under a permissible open source license, see LICENSE file. For licenses of third party dependencies, see `ThirdParty/LICENSES.rst`. +For supported platforms, see `Developer Guide `_ + Related Projects ---------------- diff --git a/docs/for-developers/developers.rst b/docs/for-developers/developers.rst index 383eafdc1..64fbba61a 100644 --- a/docs/for-developers/developers.rst +++ b/docs/for-developers/developers.rst @@ -159,3 +159,109 @@ The final simulation setup can be run through the following commands: The complete source code of this sample can be found here: :download:`CMakeLists.txt<../code-samples/simple/CMakeLists.txt>` :download:`simple.cpp<../code-samples/simple/simple.cpp>` :download:`simple.yaml<../code-samples/simple/simple.yaml>` +Platform support +----------------------- + +SIL Kit provides three tiers of platform support + +.. list-table:: Support Tiers + :widths: 15 85 + + * - Tier 1 + - Essential targets. Continuously tested and + official binary packages are provided. + * - Tier 2 + - Officially supported targets. Continuously tested + but NO binary packages are provided + * - Tier 3 + - | Targets for which we have (limited) build support but which + | are not continuously tested and no packages are provided + +A platform is hereby defined by the combination of the used operating system (OS), the CPU architecture (eg. x86 or ARM64) and the compiler/toolchain used. +For example, `Ubuntu 20.04 x86_64 Clang 10`. + +SIL Kit should compile and run on +any POSIX platform. If you have feedback for different targets or platforms not listed here, +please report them using GitHub Issues. Thanks! + +A target may be upgraded to +`Tier 1` once we have continuous testing for it in place and we have binary +packages available for it. + + +Tier 1: Official Packages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Essential targets. Automatically tested and provided as official binary packages. + +.. list-table:: Platform Support + :header-rows: 1 + + * - OS + - Architecture + - Notes + * - Windows + - 64bit (x86_64) + - MSVC 19 with Toolset 14.1 + * - Windows + - 32bit (x86) + - MSVC 19 with Toolset 14.1 + * - Ubuntu 18.04 + - amd64 + - GCC 8 + * - Ubuntu 20.04 + - amd64 + - Clang 10, `.deb` + +Tier 2: CI Support +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Officially supported and automatically tested. NO binary packages provided + +.. list-table:: Platform Support + :header-rows: 1 + + * - Platform + - Architecture + - Notes + * - Windows + - 64bit (x86_64) + - MSYS2/Mingw: GCC 14 + * - Ubuntu 22.04 + - amd64 + - | GCC 11/Clang 18 + | + Address Sanitizer + | + Undefined Behaviour Sanitizer + | + Thread Sanitizer + * - Ubuntu 22.04 + - ARM64 + - Clang 18 + * - MAC OS + - ARM64/M1 + - AppleClang 15 + +Tier 3: Known to build +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Build and tested by individual contributors or users. +Since these are not part of the CI pipeline, compatibility with these platforms can be broken at any time! + +.. list-table:: Platform Support + :header-rows: 1 + + * - Platform + - Architecture + - Notes + * - Ubuntu 24.04 + - amd64 + - | GCC 13 + | Clang 18 + * - QNX 7.1 RTOS + - X86 64bit + - QNX GCC 8 + * - FreeBSD 14 + - X86 64bit + - FreeBSD Clang 18 + * - Android + - ARM64 + - NDK builds with default compiler, libc++_shared