Building the ML SDK Scenario Runner
The build system must have:
CMake 3.25 or later.
C/C++ 17 compiler: GCC, or optionally Clang on Linux and MSVC on Windows®.
Python 3.10 or later. Required python libraries for building are listed in
tooling-requirements.txt.Ninja 1.10 or later.
The following dependencies are also needed:
stb headers
stb_image.handstb_image_write.h(these are downloaded automatically during CMake configure)GoogleTest. Optional, for testing.
For the preferred dependency versions see the manifest file.
Building with the script
To build on Linux, run the following command:
SDK_PATH="path/to/sdk"
python3 ${SDK_PATH}/sw/scenario-runner/scripts/build.py -j $(nproc) \
--flatbuffers-path ${SDK_PATH}/dependencies/flatbuffers \
--argparse-path ${SDK_PATH}/dependencies/argparse \
--json-path ${SDK_PATH}/dependencies/json \
--vulkan-headers-path ${SDK_PATH}/dependencies/Vulkan-Headers \
--glslang-path ${SDK_PATH}/dependencies/glslang \
--dxc-path ${SDK_PATH}/dependencies/DirectXShaderCompiler \
--spirv-headers-path ${SDK_PATH}/dependencies/SPIRV-Headers \
--spirv-tools-path ${SDK_PATH}/dependencies/SPIRV-Tools \
--vgf-lib-path ${SDK_PATH}/sw/vgf-lib \
--gtest-path ${SDK_PATH}/dependencies/googletest
To build on Windows®, run the following command:
$env:SDK_PATH="path\to\sdk"
$cores = [System.Environment]::ProcessorCount
python "$env:SDK_PATH\sw\scenario-runner\scripts\build.py" -j $cores `
--flatbuffers-path "$env:SDK_PATH\dependencies\flatbuffers" `
--argparse-path "$env:SDK_PATH\dependencies\argparse" `
--json-path "$env:SDK_PATH\dependencies\json" `
--vulkan-headers-path "$env:SDK_PATH\dependencies\Vulkan-Headers" `
--glslang-path "$env:SDK_PATH\dependencies\glslang" `
--dxc-path "$env:SDK_PATH\dependencies\DirectXShaderCompiler" `
--spirv-headers-path "$env:SDK_PATH\dependencies\SPIRV-Headers" `
--spirv-tools-path "$env:SDK_PATH\dependencies\SPIRV-Tools" `
--vgf-lib-path "$env:SDK_PATH\sw\vgf-lib" `
--gtest-path "$env:SDK_PATH\dependencies\googletest"
To cross compile for AArch64 architecture, you can add the following option:
SDK_PATH="path/to/sdk"
python3 $SDK_PATH/sw/scenario-runner/scripts/build.py -j $(nproc) \
--flatbuffers-path ${SDK_PATH}/dependencies/flatbuffers \
--argparse-path ${SDK_PATH}/dependencies/argparse \
--json-path ${SDK_PATH}/dependencies/json \
--vulkan-headers-path ${SDK_PATH}/dependencies/Vulkan-Headers \
--glslang-path ${SDK_PATH}/dependencies/glslang \
--dxc-path ${SDK_PATH}/dependencies/DirectXShaderCompiler \
--spirv-headers-path ${SDK_PATH}/dependencies/SPIRV-Headers \
--spirv-tools-path ${SDK_PATH}/dependencies/SPIRV-Tools \
--vgf-lib-path ${SDK_PATH}/sw/vgf-lib \
--gtest-path ${SDK_PATH}/dependencies/googletest \
--target-platform aarch64
(Experimental) To cross compile for Android™, and build an APK package, you must target Android™, provide the Android™
CMake toolchain, and request the apk package type.
SDK_PATH="path/to/sdk"
ANDROID_NDK_HOME="path/to/android-ndk"
python3 ${SDK_PATH}/sw/scenario-runner/scripts/build.py -j $(nproc) \
--target-platform android \
--cmake-toolchain-for-android ${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \
--flatbuffers-path ${SDK_PATH}/dependencies/flatbuffers \
--argparse-path ${SDK_PATH}/dependencies/argparse \
--json-path ${SDK_PATH}/dependencies/json \
--vulkan-headers-path ${SDK_PATH}/dependencies/Vulkan-Headers \
--glslang-path ${SDK_PATH}/dependencies/glslang \
--dxc-path ${SDK_PATH}/dependencies/DirectXShaderCompiler \
--spirv-headers-path ${SDK_PATH}/dependencies/SPIRV-Headers \
--spirv-tools-path ${SDK_PATH}/dependencies/SPIRV-Tools \
--vgf-lib-path ${SDK_PATH}/sw/vgf-lib \
--package-type apk
The APK build uses the gradle command, so Gradle 8.4 or later must be
available on your PATH. The Android™ SDK installation pointed to by
ANDROID_HOME should include build-tools;34.0.0 and
platforms;android-34, or other compatible versions.
To enable and run tests, use the --test flag. To lint the tests, use the
--lint flag. To enable tests and documentation building python dependencies
must be installed:
pip install -r requirements.txt
pip install -r tooling-requirements.txt
To build the documentation, use the --doc flag. To build the documentation,
you must have sphinx and doxygen installed on your machine.
You can install the build artifacts for this project into a specified location.
To install the build artifacts, pass the --install option with the required
path.
To create an archive with the build artifacts, you must add --package-type. The
archive is stored in the provided location.
For more command line options, consult the program help:
python3 $SDK_PATH/sw/scenario-runner/scripts/build.py --help