summaryrefslogtreecommitdiff
path: root/cmake/Modules/GlibMkenums.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/GlibMkenums.cmake')
-rw-r--r--cmake/Modules/GlibMkenums.cmake102
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()