You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.2 KiB
57 lines
2.2 KiB
# 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})
|
|
|