forked from nrfconnect/sdk-zephyr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvif.cmake
57 lines (51 loc) · 2.22 KB
/
vif.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Copyright (c) 2022 The Chromium OS Authors
# SPDX-License-Identifier: Apache-2.0
# Generates USB-C VIF policies in XML format from device tree.
set(gen_vif_script ${ZEPHYR_BASE}/scripts/generate_usb_vif/generate_vif.py)
set(dts_compatible usb-c-connector)
set(vif_xml vif.xml)
set(board_vif_xml ${BOARD}_${vif_xml})
set(vif_out ${PROJECT_BINARY_DIR}/${vif_xml})
set(cmd_gen_vif ${PYTHON_EXECUTABLE} ${gen_vif_script}
--edt-pickle ${EDT_PICKLE}
--compatible ${dts_compatible}
--vif-out ${vif_out}
)
if (CONFIG_GENVIF_INPUT_VIF_XML_PATH)
if (IS_ABSOLUTE ${CONFIG_GENVIF_INPUT_VIF_XML_PATH})
if (EXISTS ${CONFIG_GENVIF_INPUT_VIF_XML_PATH})
set(vif_source_xml ${CONFIG_GENVIF_INPUT_VIF_XML_PATH})
endif ()
elseif (EXISTS ${APPLICATION_CONFIG_DIR}/${CONFIG_GENVIF_INPUT_VIF_XML_PATH})
set(vif_source_xml ${APPLICATION_CONFIG_DIR}/${CONFIG_GENVIF_INPUT_VIF_XML_PATH})
endif ()
else ()
if (EXISTS ${APPLICATION_CONFIG_DIR}/boards/${board_vif_xml})
set(vif_source_xml ${APPLICATION_CONFIG_DIR}/boards/${board_vif_xml})
elseif (EXISTS ${APPLICATION_CONFIG_DIR}/${vif_xml})
set(vif_source_xml ${APPLICATION_CONFIG_DIR}/${vif_xml})
elseif (EXISTS ${BOARD_DIR}/${vif_xml})
set(vif_source_xml ${BOARD_DIR}/${vif_xml})
endif ()
endif ()
if (DEFINED vif_source_xml)
list(APPEND cmd_gen_vif --vif-source-xml ${vif_source_xml})
else ()
if (CONFIG_GENVIF_INPUT_VIF_XML_PATH)
message(FATAL_ERROR "Incorrect VIF source XML file path. To fix specify"
" correct XML file path at 'CONFIG_GENVIF_INPUT_VIF_XML_PATH'.")
else ()
message(FATAL_ERROR "No VIF source XML file found. To fix, create"
" '${board_vif_xml}' in 'boards' directory of application"
" directory, or create '${vif_xml}' file in application"
" directory or board directory, or supply a custom XML VIF path"
" using 'CONFIG_GENVIF_INPUT_VIF_XML_PATH'.")
endif ()
endif ()
add_custom_command(
OUTPUT ${vif_xml}
DEPENDS ${EDT_PICKLE}
COMMENT "Generating XML file at zephyr/vif.xml"
COMMAND ${cmd_gen_vif}
)
add_custom_target(gen_vif ALL DEPENDS ${vif_xml})