Prerequisites
- Windows
- Linux
- Microsoft Visual Studio 2022 with Desktop development with C++ workload
Build Configuration
Osiris uses the following build configuration:- C++ Standard: C++20 (required)
- CMake Version: 3.24 minimum
- Position Independent Code: Enabled
- Symbol Visibility: Hidden (for both C and C++)
Compiler Flags
- Windows (MSVC)
- Linux (GCC/Clang)
Debug Mode:
- Runtime Library: MultiThreadedDebugDLL
- Exception Handling: Enabled
/sdl-: Disable Security Development Lifecycle checks/GS-: Disable buffer security checks/W4: Warning level 4- No exceptions (exception handling flags removed)
- Custom CRT implementation (no default libraries)
- Custom entry point:
DllMain _USE_STD_VECTOR_ALGORITHMS=0: Disable standard vector algorithms
Compiling
- Windows
- Linux
Optional: Enable Tests
To build with tests enabled:ENABLE_TESTS variable accepts a list of test types to enable (e.g., “unit;functional”).
Assembly Components
Osiris includes platform-specific assembly files:- Windows
- Linux
- WindowsSyscall.asm (MASM): Used for direct system calls
- CRTWindows.cpp: Custom C Runtime implementation for release builds
Troubleshooting
CMake version too old
CMake version too old
Ensure you have CMake 3.24 or newer installed. Check your version with:
Compiler not supported
Compiler not supported
On Linux, ensure you’re using:
- GCC 11 or newer, or
- Clang 18 or newer
Build fails on Windows
Build fails on Windows
Ensure you have Visual Studio 2022 with the Desktop development with C++ workload installed.