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.Flatbuffers flatc compiler 25.2.10 or later.
Ninja 1.10 or later.
The following dependencies are also needed:
GoogleTest. Optional, for testing.
For the preferred dependency versions see the manifest file.
Providing Flatc
There are 3 options for providing the flatc binary and headers.
Using the default path. When the repository is initialized using the repo manifest, the flatbuffers source is checked out in
<repo-root>/dependencies/flatbuffers/. The VGF Library cmake scripts automatically find and build flatc in this location.Providing a custom flatc path. If flatc cannot be found in the default
<repo-root>/dependencies/flatbufferspath, you can provide a custom binary file path to the build script using the--flatc-path <path_to_flatc>option, see Building with the script.Installing flatc to the system. If flatc cannot be found in the default path and no custom path is provided, it will be searched using
PATH. To install flatc to the system and make it available on the searchablePATH, see the flatbuffers documentation. For example, on Linux navigate to the flatbuffers checkout location and run the following commands:
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build --target install
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 \
--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" `
--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 \
--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
To enable and run tests, use the --test flag. To lint the tests, use the
--lint flag. 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. 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