blob: da71efd4fc67464879147021d5ea6997dc2f855c [file] [log] [blame]
Anas Nashif3ae52622019-04-06 09:08:09 -04001# SPDX-License-Identifier: Apache-2.0
2
Leandro Pereira39dc7d02018-04-05 13:59:33 -07003function(gen_kobj gen_dir_out)
4 if (PROJECT_BINARY_DIR)
5 set(gen_dir ${PROJECT_BINARY_DIR}/include/generated)
6 else ()
7 set(gen_dir ${CMAKE_BINARY_DIR}/include/generated)
8 endif ()
9
10 set(KOBJ_TYPES ${gen_dir}/kobj-types-enum.h)
11 set(KOBJ_OTYPE ${gen_dir}/otype-to-str.h)
Andrew Boie47fa8eb2018-05-16 10:11:17 -070012 set(KOBJ_SIZE ${gen_dir}/otype-to-size.h)
Leandro Pereira39dc7d02018-04-05 13:59:33 -070013
14 file(MAKE_DIRECTORY ${gen_dir})
15
16 add_custom_command(
Torsten Rasmussenc4c79f52021-02-09 22:27:59 +010017 OUTPUT ${KOBJ_TYPES} ${KOBJ_OTYPE} ${KOBJ_SIZE}
Leandro Pereira39dc7d02018-04-05 13:59:33 -070018 COMMAND
19 ${PYTHON_EXECUTABLE}
Torsten Rasmussend7862cf2020-02-12 15:42:09 +010020 ${ZEPHYR_BASE}/scripts/gen_kobject_list.py
Leandro Pereira39dc7d02018-04-05 13:59:33 -070021 --kobj-types-output ${KOBJ_TYPES}
22 --kobj-otype-output ${KOBJ_OTYPE}
Andrew Boie47fa8eb2018-05-16 10:11:17 -070023 --kobj-size-output ${KOBJ_SIZE}
Corey Whartonccd15df2020-02-29 14:51:42 -080024 ${gen_kobject_list_include_args}
Leandro Pereira39dc7d02018-04-05 13:59:33 -070025 $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:--verbose>
Corey Whartonccd15df2020-02-29 14:51:42 -080026 DEPENDS
Torsten Rasmussend7862cf2020-02-12 15:42:09 +010027 ${ZEPHYR_BASE}/scripts/gen_kobject_list.py
Andrew Boiec1c54b12020-03-16 12:48:00 -070028 ${PARSE_SYSCALLS_TARGET}
Leandro Pereira39dc7d02018-04-05 13:59:33 -070029 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
30 )
Sebastian Bøe1b86fb92019-01-14 16:39:33 +010031 add_custom_target(${KOBJ_TYPES_H_TARGET} DEPENDS ${KOBJ_TYPES} ${KOBJ_OTYPE})
Leandro Pereira39dc7d02018-04-05 13:59:33 -070032
33 set(${gen_dir_out} ${gen_dir} PARENT_SCOPE)
34
35endfunction ()