diff --git a/pkg/maker/west.go b/pkg/maker/west.go index bb3014d..522afef 100644 --- a/pkg/maker/west.go +++ b/pkg/maker/west.go @@ -1,5 +1,5 @@ /* - * Copyright (c) 2025 Arm Limited. All rights reserved. + * Copyright (c) 2025-2026 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 */ @@ -90,15 +90,24 @@ set(ENV_VARS ZEPHYR_TOOLCHAIN_VARIANT="` + westToolchain + `" ) -# Compilation database -add_custom_target(database +# West setup and compilation database +add_custom_target(database DEPENDS "${OUT_DIR}/CMakeCache.txt") +add_custom_command( + OUTPUT "${OUT_DIR}/CMakeCache.txt" + BYPRODUCTS "${OUT_DIR}/compile_commands.json" + COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Setup west build directory" COMMAND cmake -E env ${ENV_VARS} west` + westOptionsRef + ` build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto --cmake-only "${WEST_APP}"` + westDefsRef + ` + COMMENT "" + DEPENDS "${CMAKE_CURRENT_LIST_FILE}" USES_TERMINAL ) # West build add_custom_target(west - COMMAND cmake -E env ${ENV_VARS} west` + westOptionsRef + ` build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto "${WEST_APP}"` + westDefsRef + ` + COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Run west build" + COMMAND west build -d "${OUT_DIR}" + COMMENT "" + DEPENDS database USES_TERMINAL ) ` diff --git a/test/data/solutions/west/ref/core0.Debug+CM0/CMakeLists.txt b/test/data/solutions/west/ref/core0.Debug+CM0/CMakeLists.txt index c8d3430..06a9138 100644 --- a/test/data/solutions/west/ref/core0.Debug+CM0/CMakeLists.txt +++ b/test/data/solutions/west/ref/core0.Debug+CM0/CMakeLists.txt @@ -33,14 +33,23 @@ set(ENV_VARS ZEPHYR_TOOLCHAIN_VARIANT="armclang" ) -# Compilation database -add_custom_target(database +# West setup and compilation database +add_custom_target(database DEPENDS "${OUT_DIR}/CMakeCache.txt") +add_custom_command( + OUTPUT "${OUT_DIR}/CMakeCache.txt" + BYPRODUCTS "${OUT_DIR}/compile_commands.json" + COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Setup west build directory" COMMAND cmake -E env ${ENV_VARS} west build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto --cmake-only "${WEST_APP}" -- ${WEST_DEFS} + COMMENT "" + DEPENDS "${CMAKE_CURRENT_LIST_FILE}" USES_TERMINAL ) # West build add_custom_target(west - COMMAND cmake -E env ${ENV_VARS} west build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto "${WEST_APP}" -- ${WEST_DEFS} + COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Run west build" + COMMAND west build -d "${OUT_DIR}" + COMMENT "" + DEPENDS database USES_TERMINAL ) diff --git a/test/data/solutions/west/ref/core1.Debug+CM0/CMakeLists.txt b/test/data/solutions/west/ref/core1.Debug+CM0/CMakeLists.txt index 25b1427..727f74a 100644 --- a/test/data/solutions/west/ref/core1.Debug+CM0/CMakeLists.txt +++ b/test/data/solutions/west/ref/core1.Debug+CM0/CMakeLists.txt @@ -36,14 +36,23 @@ set(ENV_VARS ZEPHYR_TOOLCHAIN_VARIANT="armclang" ) -# Compilation database -add_custom_target(database +# West setup and compilation database +add_custom_target(database DEPENDS "${OUT_DIR}/CMakeCache.txt") +add_custom_command( + OUTPUT "${OUT_DIR}/CMakeCache.txt" + BYPRODUCTS "${OUT_DIR}/compile_commands.json" + COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Setup west build directory" COMMAND cmake -E env ${ENV_VARS} west ${WEST_OPTIONS} build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto --cmake-only "${WEST_APP}" -- ${WEST_DEFS} + COMMENT "" + DEPENDS "${CMAKE_CURRENT_LIST_FILE}" USES_TERMINAL ) # West build add_custom_target(west - COMMAND cmake -E env ${ENV_VARS} west ${WEST_OPTIONS} build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto "${WEST_APP}" -- ${WEST_DEFS} + COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Run west build" + COMMAND west build -d "${OUT_DIR}" + COMMENT "" + DEPENDS database USES_TERMINAL )