Skip to main content

Prerequisites

  • 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

Debug Mode:
  • Runtime Library: MultiThreadedDebugDLL
  • Exception Handling: Enabled
Release Mode:
  • /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

1

Open the solution

Open Osiris.sln in Visual Studio 2022
2

Set build configuration

Set build configuration to Release | x64 from the configuration dropdown
3

Build

Press Build Solution (or press Ctrl+Shift+B)
4

Locate output

You should receive Osiris.dll in the output directory

Optional: Enable Tests

To build with tests enabled:
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS="unit;functional" -B build
cmake --build build -j $(nproc --all)
The ENABLE_TESTS variable accepts a list of test types to enable (e.g., “unit;functional”).

Assembly Components

Osiris includes platform-specific assembly files:
  • WindowsSyscall.asm (MASM): Used for direct system calls
  • CRTWindows.cpp: Custom C Runtime implementation for release builds

Troubleshooting

Ensure you have CMake 3.24 or newer installed. Check your version with:
cmake --version
On Linux, ensure you’re using:
  • GCC 11 or newer, or
  • Clang 18 or newer
Check your compiler version:
g++ --version
# or
clang++ --version
Ensure you have Visual Studio 2022 with the Desktop development with C++ workload installed.

Build docs developers (and LLMs) love