Platform | C++ Standard | Compiler | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
G++ | Clang | ||||||||||||||||||||
7 | 8 | 9 | 10 | 11 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||||||
Linux | C++ 11 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||||
C++ 14 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |||||
C++ 17 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |||||
C++ 20 | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | |||||
NetBSD | C++ 11 | ❔ | ❔ | ✔️ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | |||||||
C++ 14 | ❔ | ❔ | ✔️ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ||||||||
C++ 17 | ❌ | ❔ | ✔️ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ |
Platform | C++ Standard | Compiler | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
G++ | Apple Clang | ||||||||||||||||
7 | 8 | 9 | 10 | 11 | 10.15 | 11.6 | |||||||||||
macOS | C++ 11 | ✔️ (1) | ✔️ (1) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |||||||||
C++ 14 | ✔️ (1) | ✔️ (1) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||||||||||
C++ 17 | ✔️ (1) | ✔️ (1) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||||||||||
C++ 20 | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ |
(1): Programs built on Big Sur may crash on exception handle: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98805
Platform | C++ Standard | Compiler | |||||
---|---|---|---|---|---|---|---|
MSYS G++ | MSYS Clang | MSVC | |||||
mingw64 | ucrt64 | clang64 | 16.11 | 17.0 | |||
Windows | C++ 11 | ✔️ | ✔️ | ✔️ | N/A | ||
C++ 14 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
C++ 17 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
C++ 20 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
There are two ways to use this library: installation and embedding.
To install substrate, it really is as simple as:
meson build
ninja -C build install
Though, if you want to install to a specific location such as /usr, then you might want to specify --prefix=/usr
to meson.
To embed substrate, add the project as a submodule to your project, then set up your build system to view the 'substrate' folder in this repo as part of your compiler's include path.
Using meson this is acomplished by selecting this directory using include_directories()
If substrate is in your repo under deps/substrate, that looks like:
substrate = include_directories('deps/substrate')
To be included in your root meson.build. You would then specify substrate
as part of any library or executable include_directories specification.