Skip to content

Commit 1821002

Browse files
authored
Improve west build: split off setup of build directory
1 parent c9a2cbf commit 1821002

File tree

3 files changed

+37
-10
lines changed

3 files changed

+37
-10
lines changed

pkg/maker/west.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2025 Arm Limited. All rights reserved.
2+
* Copyright (c) 2025-2026 Arm Limited. All rights reserved.
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -90,15 +90,24 @@ set(ENV_VARS
9090
ZEPHYR_TOOLCHAIN_VARIANT="` + westToolchain + `"
9191
)
9292
93-
# Compilation database
94-
add_custom_target(database
93+
# West setup and compilation database
94+
add_custom_target(database DEPENDS "${OUT_DIR}/CMakeCache.txt")
95+
add_custom_command(
96+
OUTPUT "${OUT_DIR}/CMakeCache.txt"
97+
BYPRODUCTS "${OUT_DIR}/compile_commands.json"
98+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Setup west build directory"
9599
COMMAND cmake -E env ${ENV_VARS} west` + westOptionsRef + ` build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto --cmake-only "${WEST_APP}"` + westDefsRef + `
100+
COMMENT ""
101+
DEPENDS "${CMAKE_CURRENT_LIST_FILE}"
96102
USES_TERMINAL
97103
)
98104
99105
# West build
100106
add_custom_target(west
101-
COMMAND cmake -E env ${ENV_VARS} west` + westOptionsRef + ` build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto "${WEST_APP}"` + westDefsRef + `
107+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Run west build"
108+
COMMAND west build -d "${OUT_DIR}"
109+
COMMENT ""
110+
DEPENDS database
102111
USES_TERMINAL
103112
)
104113
`

test/data/solutions/west/ref/core0.Debug+CM0/CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,23 @@ set(ENV_VARS
3333
ZEPHYR_TOOLCHAIN_VARIANT="armclang"
3434
)
3535

36-
# Compilation database
37-
add_custom_target(database
36+
# West setup and compilation database
37+
add_custom_target(database DEPENDS "${OUT_DIR}/CMakeCache.txt")
38+
add_custom_command(
39+
OUTPUT "${OUT_DIR}/CMakeCache.txt"
40+
BYPRODUCTS "${OUT_DIR}/compile_commands.json"
41+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Setup west build directory"
3842
COMMAND cmake -E env ${ENV_VARS} west build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto --cmake-only "${WEST_APP}" -- ${WEST_DEFS}
43+
COMMENT ""
44+
DEPENDS "${CMAKE_CURRENT_LIST_FILE}"
3945
USES_TERMINAL
4046
)
4147

4248
# West build
4349
add_custom_target(west
44-
COMMAND cmake -E env ${ENV_VARS} west build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto "${WEST_APP}" -- ${WEST_DEFS}
50+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Run west build"
51+
COMMAND west build -d "${OUT_DIR}"
52+
COMMENT ""
53+
DEPENDS database
4554
USES_TERMINAL
4655
)

test/data/solutions/west/ref/core1.Debug+CM0/CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,23 @@ set(ENV_VARS
3636
ZEPHYR_TOOLCHAIN_VARIANT="armclang"
3737
)
3838

39-
# Compilation database
40-
add_custom_target(database
39+
# West setup and compilation database
40+
add_custom_target(database DEPENDS "${OUT_DIR}/CMakeCache.txt")
41+
add_custom_command(
42+
OUTPUT "${OUT_DIR}/CMakeCache.txt"
43+
BYPRODUCTS "${OUT_DIR}/compile_commands.json"
44+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Setup west build directory"
4145
COMMAND cmake -E env ${ENV_VARS} west ${WEST_OPTIONS} build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto --cmake-only "${WEST_APP}" -- ${WEST_DEFS}
46+
COMMENT ""
47+
DEPENDS "${CMAKE_CURRENT_LIST_FILE}"
4248
USES_TERMINAL
4349
)
4450

4551
# West build
4652
add_custom_target(west
47-
COMMAND cmake -E env ${ENV_VARS} west ${WEST_OPTIONS} build -b ${WEST_BOARD} -d "${OUT_DIR}" -p auto "${WEST_APP}" -- ${WEST_DEFS}
53+
COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --blue " Run west build"
54+
COMMAND west build -d "${OUT_DIR}"
55+
COMMENT ""
56+
DEPENDS database
4857
USES_TERMINAL
4958
)

0 commit comments

Comments
 (0)