c4c79f5f33
Fixes: #23449 This commit adds additional OUTPUT and BYPRODUCTS to custom command and targets in the Zephyr build system. This ensures that files produced during the build will be removed again when invoking ninja clean / make clean. The generated syscalls headers include folder is added to the syscall target using ADDITIONAL_CLEAN_FILES property. However, this property is new in CMake 3.15, so will not work when using older CMake with ninja. For CMake versions <=3.15 the ADDITIONAL_MAKE_CLEAN_FILES property is used. However, this only supports Makefile generator. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
36 lines
1 KiB
CMake
36 lines
1 KiB
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
function(gen_kobj gen_dir_out)
|
|
if (PROJECT_BINARY_DIR)
|
|
set(gen_dir ${PROJECT_BINARY_DIR}/include/generated)
|
|
else ()
|
|
set(gen_dir ${CMAKE_BINARY_DIR}/include/generated)
|
|
endif ()
|
|
|
|
set(KOBJ_TYPES ${gen_dir}/kobj-types-enum.h)
|
|
set(KOBJ_OTYPE ${gen_dir}/otype-to-str.h)
|
|
set(KOBJ_SIZE ${gen_dir}/otype-to-size.h)
|
|
|
|
file(MAKE_DIRECTORY ${gen_dir})
|
|
|
|
add_custom_command(
|
|
OUTPUT ${KOBJ_TYPES} ${KOBJ_OTYPE} ${KOBJ_SIZE}
|
|
COMMAND
|
|
${PYTHON_EXECUTABLE}
|
|
${ZEPHYR_BASE}/scripts/gen_kobject_list.py
|
|
--kobj-types-output ${KOBJ_TYPES}
|
|
--kobj-otype-output ${KOBJ_OTYPE}
|
|
--kobj-size-output ${KOBJ_SIZE}
|
|
${gen_kobject_list_include_args}
|
|
$<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose>
|
|
DEPENDS
|
|
${ZEPHYR_BASE}/scripts/gen_kobject_list.py
|
|
${PARSE_SYSCALLS_TARGET}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
)
|
|
add_custom_target(${KOBJ_TYPES_H_TARGET} DEPENDS ${KOBJ_TYPES} ${KOBJ_OTYPE})
|
|
|
|
set(${gen_dir_out} ${gen_dir} PARENT_SCOPE)
|
|
|
|
endfunction ()
|