From 45488504483793195947a200f59527432ad5b31a Mon Sep 17 00:00:00 2001 From: Maksims Svecovs Date: Wed, 28 Sep 2022 14:43:07 +0100 Subject: MLECO-3518: Separates CMakePrests Separates CMakePresets to respective. Adds options preset file with log-level and single-input for use-cases. Adds use-case file with base build preset with all the targets. Adds a configurable targets to all build presets. Adds additional config/build preset to show-off options-presets. Signed-off-by: Maksims Svecovs Change-Id: Id82ce9c5b8d7cc48b80d784141dc22efa2690222 --- CMakePresets.json | 328 ++++++++++--------------- scripts/cmake/options-preset.json | 71 ++++++ scripts/cmake/platforms/platforms-preset.json | 62 +++++ scripts/cmake/toolchains/toolchain-preset.json | 43 ++++ source/use_case/usecase-preset.json | 27 ++ 5 files changed, 339 insertions(+), 192 deletions(-) create mode 100644 scripts/cmake/options-preset.json create mode 100644 scripts/cmake/platforms/platforms-preset.json create mode 100644 scripts/cmake/toolchains/toolchain-preset.json create mode 100644 source/use_case/usecase-preset.json diff --git a/CMakePresets.json b/CMakePresets.json index 819dd01..3500329 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -1,195 +1,139 @@ { - "version": 3, - "cmakeMinimumRequired": { - "major": 3, - "minor": 21, - "patch": 0 + "version": 4, + "cmakeMinimumRequired": { + "major": 3, + "minor": 23, + "patch": 0 + }, + "include": [ + "scripts/cmake/options-preset.json", + "scripts/cmake/platforms/platforms-preset.json", + "scripts/cmake/toolchains/toolchain-preset.json", + "source/use_case/usecase-preset.json" + ], + "configurePresets": [ + { + "name": "simple-gcc", + "displayName": "simple-gcc", + "description": "Target simple platform build with bare-metal gcc toolchain.", + "inherits": [ + "simple-platform", + "gcc-toolchain" + ] }, - "configurePresets": [ - { - "name": "base", - "description": "Base configuration, sets build directory.", - "hidden": true, - "generator": "Unix Makefiles" - }, - { - "name": "gcc-toolchain", - "description": "Use gcc toolchain.", - "hidden": true, - "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": { - "type": "STRING", - "value": "${sourceDir}/scripts/cmake/toolchains/bare-metal-gcc.cmake" - } - } - }, - { - "name": "armclang-toolchain", - "description": "Use armclang toolchain.", - "hidden": true, - "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": { - "type": "STRING", - "value": "${sourceDir}/scripts/cmake/toolchains/bare-metal-armclang.cmake" - } - } - }, - { - "name": "mps3-300", - "description": "Target mps3 board, SSE-300 subsystem.", - "hidden": true, - "cacheVariables": { - "TARGET_PLATFORM": { - "type": "STRING", - "value": "mps3" - }, - "TARGET_SUBSYSTEM": { - "type": "STRING", - "value": "sse-300" - } - } - }, - { - "name": "mps3-310", - "description": "Target mps3 board, SSE-310 subsystem.", - "hidden": true, - "cacheVariables": { - "TARGET_PLATFORM": { - "type": "STRING", - "value": "mps3" - }, - "TARGET_SUBSYSTEM": { - "type": "STRING", - "value": "sse-310" - } - } - }, - { - "name": "simple-platform", - "description": "Target simple platform.", - "hidden": true, - "cacheVariables": { - "TARGET_PLATFORM": { - "type": "STRING", - "value": "simple_platform" - } - } - }, - { - "name": "simple-gcc", - "displayName": "simple-gcc", - "description": "Target simple platform build with bare-metal gcc toolchain.", - "inherits": [ - "base", - "simple-platform", - "gcc-toolchain" - ] - }, - { - "name": "simple-clang", - "displayName": "simple-armclang", - "description": "Target simple platform build with bare-metal armclang toolchain.", - "inherits": [ - "base", - "simple-platform", - "armclang-toolchain" - ] - }, - { - "name": "mps3-300-gcc", - "displayName": "mps3-300-gcc", - "description": "Target mps3 board, SSE-300 subsystem with bare-metal gcc toolchain.", - "inherits": [ - "base", - "mps3-300", - "gcc-toolchain" - ] - }, - { - "name": "mps3-300-clang", - "displayName": "mps3-300-armclang", - "description": "Target mps3 board, SSE-300 subsystem with bare-metal armclang toolchain.", - "inherits": [ - "base", - "mps3-300", - "armclang-toolchain" - ] - }, - { - "name": "mps3-310-gcc", - "displayName": "mps3-310-gcc", - "description": "Target mps3 board, SSE-310 subsystem with bare-metal gcc toolchain.", - "inherits": [ - "base", - "mps3-310", - "gcc-toolchain" - ] - }, - { - "name": "mps3-310-clang", - "displayName": "mps3-310-armclang", - "description": "Target mps3 board, SSE-310 subsystem with bare-metal armclang toolchain.", - "inherits": [ - "base", - "mps3-310", - "armclang-toolchain" - ] - }, - { - "name": "native", - "inherits": [ - "base" - ], - "displayName": "native", - "description": "Target native system.", - "cacheVariables": { - "TARGET_PLATFORM": { - "type": "STRING", - "value": "native" - }, - "CMAKE_TOOLCHAIN_FILE": { - "type": "STRING", - "value": "${sourceDir}/scripts/cmake/toolchains/native-gcc.cmake" - } - } - } - ], - "buildPresets": [ - { - "name": "native", - "configurePreset": "native" - }, - { - "name": "mps3-300-gcc", - "configurePreset": "mps3-300-gcc" - }, - { - "name": "mps3-300-clang", - "configurePreset": "mps3-300-clang" - }, - { - "name": "mps3-310-gcc", - "configurePreset": "mps3-310-gcc" - }, - { - "name": "mps3-310-clang", - "configurePreset": "mps3-310-clang" - }, - { - "name": "simple-gcc", - "configurePreset": "simple-gcc" - }, - { - "name": "simple-clang", - "configurePreset": "simple-clang" - } - ], - "testPresets": [ - { - "name": "native-tests", - "description": "native tests", - "displayName": "Run native tests.", - "configurePreset": "native" - } - ] + { + "name": "simple-clang", + "displayName": "simple-armclang", + "description": "Target simple platform build with bare-metal armclang toolchain.", + "inherits": [ + "simple-platform", + "armclang-toolchain" + ] + }, + { + "name": "mps3-300-gcc", + "displayName": "mps3-300-gcc", + "description": "Target mps3 board, SSE-300 subsystem with bare-metal gcc toolchain.", + "inherits": [ + "mps3-300-platform", + "gcc-toolchain" + ] + }, + { + "name": "mps3-300-clang", + "displayName": "mps3-300-armclang", + "description": "Target mps3 board, SSE-300 subsystem with bare-metal armclang toolchain.", + "inherits": [ + "mps3-300-platform", + "armclang-toolchain" + ] + }, + { + "name": "mps3-310-gcc", + "displayName": "mps3-310-gcc", + "description": "Target mps3 board, SSE-310 subsystem with bare-metal gcc toolchain.", + "inherits": [ + "mps3-310-platform", + "gcc-toolchain" + ] + }, + { + "name": "mps3-310-clang", + "displayName": "mps3-310-armclang", + "description": "Target mps3 board, SSE-310 subsystem with bare-metal armclang toolchain.", + "inherits": [ + "mps3-310-platform", + "armclang-toolchain" + ] + }, + { + "name": "native", + "displayName": "native", + "description": "Target native system.", + "inherits": [ + "native-platform", + "native-toolchain" + ] + }, + { + "name": "mps3-300-gcc-custom", + "displayName": "mps3-300-gcc-custom", + "description": "mps3-300-gcc with debug enabled, default option for inference.", + "inherits": [ + "mps3-300-gcc", + "log-debug", + "single-input" + ] + } + ], + "buildPresets": [ + { + "name": "native", + "configurePreset": "native", + "inherits": "usecase-targets" + }, + { + "name": "mps3-300-gcc", + "configurePreset": "mps3-300-gcc", + "inherits": "usecase-targets" + }, + { + "name": "mps3-300-gcc-custom", + "configurePreset": "mps3-300-gcc-custom", + "inherits": "usecase-targets" + }, + { + "name": "mps3-300-clang", + "configurePreset": "mps3-300-clang", + "inherits": "usecase-targets" + }, + { + "name": "mps3-310-gcc", + "configurePreset": "mps3-310-gcc", + "inherits": "usecase-targets" + }, + { + "name": "mps3-310-clang", + "configurePreset": "mps3-310-clang", + "inherits": "usecase-targets" + }, + { + "name": "simple-gcc", + "configurePreset": "simple-gcc", + "inherits": "usecase-targets" + }, + { + "name": "simple-clang", + "configurePreset": "simple-clang", + "inherits": "usecase-targets" + } + ], + "testPresets": [ + { + "name": "native-tests", + "description": "native tests", + "displayName": "Run native tests.", + "configurePreset": "native" + } + ] } diff --git a/scripts/cmake/options-preset.json b/scripts/cmake/options-preset.json new file mode 100644 index 0000000..57b7a7d --- /dev/null +++ b/scripts/cmake/options-preset.json @@ -0,0 +1,71 @@ +{ + "version": 4, + "cmakeMinimumRequired": { + "major": 3, + "minor": 23, + "patch": 0 + }, + "configurePresets": [ + { + "name": "log-trace", + "hidden": true, + "cacheVariables": { + "LOG_LEVEL": { + "type": "STRING", + "value": "LOG_LEVEL_TRACE" + } + } + }, + { + "name": "log-debug", + "hidden": true, + "cacheVariables": { + "LOG_LEVEL": { + "type": "STRING", + "value": "LOG_LEVEL_DEBUG" + } + } + }, + { + "name": "log-info", + "hidden": true, + "cacheVariables": { + "LOG_LEVEL": { + "type": "STRING", + "value": "LOG_LEVEL_INFO" + } + } + }, + { + "name": "log-warning", + "hidden": true, + "cacheVariables": { + "LOG_LEVEL": { + "type": "STRING", + "value": "LOG_LEVEL_WARN" + } + } + }, + { + "name": "log-error", + "hidden": true, + "cacheVariables": { + "LOG_LEVEL": { + "type": "STRING", + "value": "LOG_LEVEL_ERROR" + } + } + }, + { + "name": "single-input", + "hidden": true, + "description": "Use single default input data for each use case.", + "cacheVariables": { + "USE_SINGLE_INPUT": { + "type": "BOOL", + "value": "TRUE" + } + } + } + ] +} \ No newline at end of file diff --git a/scripts/cmake/platforms/platforms-preset.json b/scripts/cmake/platforms/platforms-preset.json new file mode 100644 index 0000000..7a96d7a --- /dev/null +++ b/scripts/cmake/platforms/platforms-preset.json @@ -0,0 +1,62 @@ +{ + "version": 4, + "cmakeMinimumRequired": { + "major": 3, + "minor": 23, + "patch": 0 + }, + "configurePresets": [ + { + "name": "mps3-300-platform", + "description": "Target mps3 board, SSE-300 subsystem.", + "hidden": true, + "cacheVariables": { + "TARGET_PLATFORM": { + "type": "STRING", + "value": "mps3" + }, + "TARGET_SUBSYSTEM": { + "type": "STRING", + "value": "sse-300" + } + } + }, + { + "name": "mps3-310-platform", + "description": "Target mps3 board, SSE-310 subsystem.", + "hidden": true, + "cacheVariables": { + "TARGET_PLATFORM": { + "type": "STRING", + "value": "mps3" + }, + "TARGET_SUBSYSTEM": { + "type": "STRING", + "value": "sse-310" + } + } + }, + { + "name": "simple-platform", + "description": "Target simple platform.", + "hidden": true, + "cacheVariables": { + "TARGET_PLATFORM": { + "type": "STRING", + "value": "simple_platform" + } + } + }, + { + "name": "native-platform", + "description": "Target native platform.", + "hidden": true, + "cacheVariables": { + "TARGET_PLATFORM": { + "type": "STRING", + "value": "native" + } + } + } + ] +} \ No newline at end of file diff --git a/scripts/cmake/toolchains/toolchain-preset.json b/scripts/cmake/toolchains/toolchain-preset.json new file mode 100644 index 0000000..728547f --- /dev/null +++ b/scripts/cmake/toolchains/toolchain-preset.json @@ -0,0 +1,43 @@ +{ + "version": 4, + "cmakeMinimumRequired": { + "major": 3, + "minor": 23, + "patch": 0 + }, + "configurePresets": [ + { + "name": "gcc-toolchain", + "description": "Use gcc toolchain.", + "hidden": true, + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": { + "type": "STRING", + "value": "${sourceDir}/scripts/cmake/toolchains/bare-metal-gcc.cmake" + } + } + }, + { + "name": "armclang-toolchain", + "description": "Use armclang toolchain.", + "hidden": true, + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": { + "type": "STRING", + "value": "${sourceDir}/scripts/cmake/toolchains/bare-metal-armclang.cmake" + } + } + }, + { + "name": "native-toolchain", + "description": "Use native toolchain.", + "hidden": true, + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": { + "type": "STRING", + "value": "${sourceDir}/scripts/cmake/toolchains/native-gcc.cmake" + } + } + } + ] +} \ No newline at end of file diff --git a/source/use_case/usecase-preset.json b/source/use_case/usecase-preset.json new file mode 100644 index 0000000..330fc10 --- /dev/null +++ b/source/use_case/usecase-preset.json @@ -0,0 +1,27 @@ +{ + "version": 4, + "cmakeMinimumRequired": { + "major": 3, + "minor": 23, + "patch": 0 + }, + "buildPresets": [ + { + "name": "usecase-targets", + "description": "Base preset for specifying use-case targets in build presets.", + "hidden": true, + "targets": [ + "all", + "ethos-u-ad", + "ethos-u-asr", + "ethos-u-img_class", + "ethos-u-inference_runner", + "ethos-u-kws_asr", + "ethos-u-kws", + "ethos-u-noise_reduction", + "ethos-u-object_detection", + "ethos-u-vww" + ] + } + ] +} \ No newline at end of file -- cgit v1.2.1