Hot++

Download the SDK

Where to get the SDK

The CI builds the Hot++ SDK after each change on the branch master. It puts the archives in the release latest. The release is a prerelease. Its notes give the commit of the build.

File System
hotpp-sdk-linux-x86_64.tar.gz Linux, x86_64
hotpp-sdk-windows-x86_64.zip Windows, x86_64, MSVC

Each archive has one top folder. This folder is the SDK prefix.

What the archive contains

The SDK is relocatable. You can unpack it in any folder.

What your machine needs

The CI tests the SDK on each system with an AOT host (MODE AOT). On Windows, the modes HOT_RELOAD and PRECOMPILED also need a clang++.exe with the same major version as the SDK LLVM (23). find_package(Hot) looks for clang++ in this order:

  1. The value of HOT_SCRIPT_COMPILER, if you set it.
  2. The Visual Studio component “C++ Clang tools” (VC/Tools/Llvm/x64/bin) of the Developer prompt or of the Visual Studio generator.
  3. A clang++ on PATH.

A clang++ with an other major version gives a CMake warning. The clang++.exe of the LLVM release 23 for Windows is the safe choice. See Windows.

Use the SDK in your project

Use find_package(Hot) and hot_add_host in your CMakeLists.txt:

cmake_minimum_required(VERSION 3.20)
project(myapp CXX)

find_package(Hot REQUIRED)

add_executable(myapp main.cpp)
hot_add_host(TARGET myapp MODE AOT SCRIPTS wolf.hot
             INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS Creature.h)

Set CMAKE_PREFIX_PATH to the SDK folder when you configure:

cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH=/path/to/hotpp-sdk-linux-x86_64
cmake --build build

On Windows, use the same commands in the UCRT64 shell, with the path of the Windows SDK. The sample samples/aot is a complete project of this type.

Test the SDK

The project tests/sdk_smoke is a small consumer of the SDK. The CI uses it on each system. To test an SDK on your machine, run this command in the source tree of Hot++:

cmake -DSDK=/path/to/sdk -P tests/sdk_smoke/run.cmake

The script configures, builds and runs the project. It passes when the program prints sdk_smoke: result=41.

See also SDK and portable binaries and Windows.