# SPDX-License-Identifier: Apache-2.0 # These functions can be used to generate a CFB font include file from # a TrueType/OpenType font file or an image file. function(generate_cfb_font input_file # The TrueType/OpenType font file or the image file output_file # The generated header file width # Width of the CFB font elements in pixels height # Height of the CFB font elements in pixels ) add_custom_command( OUTPUT ${output_file} COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/scripts/gen_cfb_font_header.py --input ${input_file} --output ${output_file} --bindir ${CMAKE_BINARY_DIR} --width ${width} --height ${height} ${ARGN} # Extra arguments are passed to gen_cfb_font_header.py DEPENDS ${source_file} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) endfunction() function(generate_cfb_font_for_gen_target target # The cmake target that depends on the generated file input_file # The TrueType/OpenType font file or the image file output_file # The generated header file width # Width of the CFB font elements in pixels height # Height of the CFB font elements in pixels gen_target # The generated file target we depend on # Any additional arguments are passed on to # gen_cfb_font_header.py ) generate_cfb_font(${input_file} ${output_file} ${width} ${height} ${ARGN}) # Ensure 'output_file' is generated before 'target' by creating a # dependency between the two targets add_dependencies(${target} ${gen_target}) endfunction() function(generate_cfb_font_for_target target # The cmake target that depends on the generated file input_file # The TrueType/OpenType font file or image file output_file # The generated header file width # Width of the CFB font elements in pixels height # Height of the CFB font elements in pixels # Any additional arguments are passed on to # gen_cfb_font_header.py ) # Ensure 'output_file' is generated before 'target' by creating a # 'custom_target' for it and setting up a dependency between the two # targets # But first create a unique name for the custom target generate_unique_target_name_from_filename(${output_file} generated_target_name) add_custom_target(${generated_target_name} DEPENDS ${output_file}) generate_cfb_font_for_gen_target(${target} ${input_file} ${output_file} ${width} ${height} ${generated_target_name} ${ARGN}) endfunction()