Quick Start Guide#

hyperion::platform supports both CMake and XMake, and incorporating it in your project is quick and easy.

CMake#

hyperion::platform is easily incorporated into a raw CMake project with FetchContent or other methods like add_subdirectory. Example for FetchContent:

CMakeLists.txt#
 1# Include FetchContent so we can use it
 2include(FetchContent)
 3
 4# Declare the dependency on hyperion-utils and make it available for use
 5FetchContent_Declare(hyperion_platform
 6    GIT_REPOSITORY "https://github.com/braxtons12/hyperion_platform"
 7    GIT_TAG "v0.5.0")
 8FetchContent_MakeAvailable(hyperion_platform)
 9
10# For this example, we create an executable target and link hyperion::platform to it
11add_executable(MyExecutable "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp")
12target_link_libraries(MyExecutable PRIVATE hyperion::platform)

hyperion::platform depends on fast_float for parsing of literals of the f32 and f64 floating point type aliases. Note that hyperion::platform has an optional feature, for the profiling macros it wraps in #include <hyperion/platform/def.h>. When this feature is enabled, it requires the optional dependency, Tracy.

By default, this is disabled. You can enable it by setting HYPERION_ENABLE_TRACY to ON. If enabled, by default FetchContent will be used to obtain this optional dependency, but you can disable this by setting HYPERION_USE_FETCH_CONTENT to OFF, in which case you will need to make sure the package is findable via CMake’s find_package.

XMake#

XMake is a new(er) Lua-based build system with integrated package management. It is the preferred way to use Hyperion packages. Example:

xmake.lua#
 1set_project("my_project")
 2
 3-- add the hyperion_packages git repository as an XMake repository
 4add_repositories("hyperion https://github.com/braxtons12/hyperion_packages.git")
 5
 6-- add hyperion_platform as a required dependency for the project
 7add_requires("hyperion_platform", {
 8    system = false,
 9    external = true,
10})
11
12-- For this example, we create an executable target and link hyperion::platform to it
13target("my_executable")
14    set_kind("binary")
15    add_packages("hyperion_platform")

Note that with XMake, hyperion::platform has the same optional features and dependencies as with the CMake build system. Third-party dependencies will be pulled from xmake-repo, the package repository/registry for XMake.

As with CMake, you can enable or disable the Tracy profiling macros (defaults to off) by setting the option hyperion_enable_tracy.