wisdom
Loading...
Searching...
No Matches
Getting Started

This page provides a quick path to build and consume Wisdom with modern CMake. It covers requirements, common install flows, and the current public targets.

Installation

Wisdom can be consumed in three common ways:

  • CMake dependency (FetchContent / add_subdirectory)
  • Installed package with find_package(wisdom CONFIG REQUIRED)
  • NuGet package for Visual Studio projects
Note
NuGet package is available at: https://www.nuget.org/packages/Wisdom/ Release archives are available at: https://github.com/Agrael1/Wisdom/releases/

One of the easiest integration options is CMake FetchContent:

include(FetchContent)
FetchContent_Declare(
Wisdom
GIT_REPOSITORY https://github.com/Agrael1/Wisdom.git
GIT_TAG master
)
FetchContent_MakeAvailable(Wisdom)

Requirements

  • CMake 3.22 or higher
  • C++20 compatible compiler
  • A supported backend environment:
    • Windows: DirectX 12 (default) and Vulkan
    • Linux: Vulkan

On Windows, Vulkan SDK is optional unless you explicitly force Vulkan. Most third-party dependencies are resolved by CMake during configure.

Consuming the library does not require C++20, as interface is C++11 compliant and C99 compatible. However building or header only usage may require C++20 for std::format an other advanced features.

Build Steps

Basic local build:

mkdir build
cd build
cmake -G Ninja ..
cmake --build .

To build only libraries (no tests/examples), configure options explicitly:

mkdir build
cd build
cmake -G Ninja .. -DWISDOM_BUILD_EXAMPLES=OFF -DWISDOM_BUILD_TESTS=OFF
cmake --build .

You can also use project presets when available for your platform/configuration.

Quick consume example

After install, use find_package and link one of the public targets:

find_package(wisdom CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE wis::wisdom)

Four binary targets are currently provided:

  • wis::wisdom
  • wis::wisdom-shared
  • wis::wisdom-platform
  • wis::wisdom-platform-shared

Header interface targets are also available (wis::wisdom-headers, wis::wisdom-platform-headers).

Library Structure provides an overview of the library structure and its components. Consumption provides more details for integration and build flags.