Having all requirements set, here you can find how to quickly build and run the application.
Important
Workflow presets are only available in CMake version 3.25 and up.
The quickest way possible to get an actual distributable from zero is using the available CMake workflows. For Linux and Windows:
cmake --workflow --preset dist
And for macOS with Xcode:
cmake --workflow --preset xcode-dist
Usually available build modes are Debug
, Release
, and RelWithDebInfo
.
To run a debug build:
cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -B build/debug
cmake --build build/debug
To run a release build:
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -B build/release
cmake --build build/release
On macOS Xcode should be used as generator via -GXcode
. For example creating a release build with XCode. It is also
necessary to specify the Apple architecture via CMAKE_OSX_ARCHITECTURES
, for example for a universal executable using
the value x86_64;arm64"
.
# Using Xcode, create universal executable
cmake -GXcode -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -B build/xcode
cmake --build build/xcode --config Release
When not running through an IDE like CLion, the built application can be run by directly executing the generated binary.
To run a debug build:
./build/debug/src/app/App.app/Contents/MacOS/App
To run a release build:
./build/release/src/app/App.app/Contents/MacOS/App
To run a debug build created with Xcode:
./build/xcode/src/app/Debug/App.app/Contents/MacOS/App
To run a release build created with Xcode:
./build/xcode/src/app/Release/App.app/Contents/MacOS/App
To run a debug build:
build/debug/src/app/App.exe
To run a release build:
build/release/src/app/App.exe
To run a debug build:
./build/debug/src/app/App
To run a release build:
./build/release/src/app/App
To bundle the application and create a distribution package CPack is used. Before executing CPack a release build needs to be generated.
cpack --config build/release/CPackConfig.cmake
On any generated build tests can be executed by using CTest, e.g. a Debug build:
ctest --test-dir build/debug
Here a preview of the app running on macOS, Windows, and Linux (Ubuntu), in that order.
Next up: Where is What?