diff options
Diffstat (limited to 'cmake/Modules/GlibMkenums.cmake')
| -rw-r--r-- | cmake/Modules/GlibMkenums.cmake | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/cmake/Modules/GlibMkenums.cmake b/cmake/Modules/GlibMkenums.cmake deleted file mode 100644 index f3f29d9..0000000 --- a/cmake/Modules/GlibMkenums.cmake +++ /dev/null @@ -1,102 +0,0 @@ -# SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com> -# SPDX-License-Identifier: LGPL-2.1-only - -include_guard() - -find_program(GLIB_MKENUMS_BIN - NAMES "glib-mkenums" - REQUIRED -) - -function(target_add_glib_enums TARGET) - set(SINGLE_VALUE_ARGS - "HEADER_TEMPLATE" - "OUTPUT_NAME" - "SOURCE_TEMPLATE" - ) - set(MULTI_VALUE_ARGS "HEADERS") - cmake_parse_arguments( - PARSE_ARGV 1 - "" - "${OPTIONS}" - "${SINGLE_VALUE_ARGS}" - "${MULTI_VALUE_ARGS}" - ) - - if(NOT TARGET "${TARGET}") - message(FATAL_ERROR "GlibMkenums: Target '${TARGET}' does not exist") - endif() - - if(NOT _HEADERS) - message(FATAL_ERROR "GlibMkenums: No headers to be parsed were specified") - endif() - - if(NOT _HEADER_TEMPLATE) - message(STATUS "GlibMkenums: no header template was provided, skipping header generation") - set(_SKIP_HEADER YES) - endif() - - if(NOT _SOURCE_TEMPLATE) - message(STATUS "GlibMkenums: no source template was provided, skipping header generation") - set(_SKIP_SOURCE YES) - endif() - - if(NOT _OUTPUT_NAME) - message(FATAL_ERROR "GlibMkenums: No output name was specified") - endif() - - if(_SKIP_HEADER AND _SKIP_SOURCE) - message(AUTHOR_WARNING "GlibMkenums: No templates were specified, skipping all generation") - return() - endif() - - set(SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/src/${_OUTPUT_NAME}.c") - set(HEADER_FILE "${CMAKE_CURRENT_SOURCE_DIR}/src/${_OUTPUT_NAME}.h") - - if(NOT _SKIP_HEADER) - add_custom_command(OUTPUT - ${HEADER_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMAND "${GLIB_MKENUMS_BIN}" - ARGS - "--template=${_HEADER_TEMPLATE}" - "--output=${HEADER_FILE}" - ${_HEADERS} - VERBATIM - COMMENT "Generating enum interface header" - DEPENDS - ${_HEADERS} - ${_HEADER_TEMPLATE} - ) - endif() - - if(NOT _SKIP_SOURCE) - add_custom_command(OUTPUT - ${SOURCE_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMAND "${GLIB_MKENUMS_BIN}" - ARGS - "--template=${_SOURCE_TEMPLATE}" - "--output=${SOURCE_FILE}" - ${_HEADERS} - VERBATIM - COMMENT "Generating enum interface source" - DEPENDS - ${_HEADERS} - ${_SOURCE_TEMPLATE} - ) - endif() - - target_sources("${TARGET}" PRIVATE - "${SOURCE_FILE}" - ) - - if(NOT _SKIP_HEADER) - target_sources("${TARGET}" PUBLIC - FILE_SET HEADERS - FILES - "${HEADER_FILE}" - ) - endif() - -endfunction() |
