# Copyright (c) 2026 Dominic Masters # # This software is released under the MIT License. # https://opensource.org/licenses/MIT function(dusk_csv_to_enum INPUT_PATH OUTPUT_NAME_RELATIVE TYPEDEF PREFIX TAKE_COLUMN) set(NULL_ENTRY TRUE) set(COUNT_ENTRY TRUE) # Take NULL_ENTRY and COUNT_ENTRY from ARGN foreach(ARG IN LISTS ARGN) if(ARG STREQUAL "NO_NULL_ENTRY") set(NULL_ENTRY FALSE) elseif(ARG STREQUAL "NO_COUNT_ENTRY") set(COUNT_ENTRY FALSE) endif() endforeach() set(DUSK_DEFS_TARGET_NAME "DUSK_DEFS_${OUTPUT_NAME_RELATIVE}") string(REPLACE "." "_" DUSK_DEFS_TARGET_NAME ${DUSK_DEFS_TARGET_NAME}) string(REPLACE "/" "_" DUSK_DEFS_TARGET_NAME ${DUSK_DEFS_TARGET_NAME}) dusk_run_python( ${DUSK_DEFS_TARGET_NAME} tools.csv_to_enum --csv ${INPUT_PATH} --output ${DUSK_GENERATED_HEADERS_DIR}/${OUTPUT_NAME_RELATIVE} --typedef ${TYPEDEF} --prefix ${PREFIX} --take-column ${TAKE_COLUMN} --null-entry ${NULL_ENTRY} --count-entry ${COUNT_ENTRY} ) add_dependencies(${DUSK_LIBRARY_TARGET_NAME} ${DUSK_DEFS_TARGET_NAME}) endfunction()