diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-05-19 16:37:56 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-05-19 16:37:56 +0200 |
| commit | da2f2f64a67b9aa9bd8ef73f7a9940acc739fbb1 (patch) | |
| tree | 579a72dd282595f751171a30b31606d43a31b01e | |
| parent | f61df0b33ea2a2de064f1fa2a9cde191b790a5ba (diff) | |
| download | turns-da2f2f64a67b9aa9bd8ef73f7a9940acc739fbb1.tar.xz turns-da2f2f64a67b9aa9bd8ef73f7a9940acc739fbb1.zip | |
lib: move enum definitions
| -rw-r--r-- | cmake/Modules/GlibMkenums.cmake | 93 | ||||
| -rw-r--r-- | lib/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | lib/src/turns-enums.c.in | 1 | ||||
| -rw-r--r-- | lib/src/turns-enums.h.in | 25 | ||||
| -rw-r--r-- | lib/src/turns-init.cpp | 1 | ||||
| -rw-r--r-- | lib/src/turns-participant.cpp | 2 | ||||
| -rw-r--r-- | lib/src/turns-participant.h | 5 | ||||
| -rw-r--r-- | lib/src/turns-turn-order.cpp | 1 | ||||
| -rw-r--r-- | lib/src/turns-turn-order.h | 3 | ||||
| -rw-r--r-- | lib/src/turnsmm/turn-order.cpp | 1 |
10 files changed, 63 insertions, 70 deletions
diff --git a/cmake/Modules/GlibMkenums.cmake b/cmake/Modules/GlibMkenums.cmake index 58ae4ee..c3d75e6 100644 --- a/cmake/Modules/GlibMkenums.cmake +++ b/cmake/Modules/GlibMkenums.cmake @@ -21,58 +21,79 @@ function(target_add_glib_enums TARGET) ) if(NOT TARGET "${TARGET}") - message(FATAL_ERROR "Target '${TARGET}' does not exist") + message(FATAL_ERROR "GlibMkenums: Target '${TARGET}' does not exist") endif() if(NOT _HEADERS) - message(FATAL_ERROR "Missing enum headers") + message(FATAL_ERROR "GlibMkenums: No headers to be parsed were specified") endif() - if(NOT _HEADER_TEMPLATE OR NOT _SOURCE_TEMPLATE) - message(FATAL_ERROR "Missing templates") + if(NOT _HEADER_TEMPLATE) + message(STATUS "GlibMkenums: no header template was provided, skipping header generation") + set(_SKIP_HEADER YES) endif() - if(NOT _OUTPUT_NAME) - message(FATAL_ERROR "Missing output name") + 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") - add_custom_command(OUTPUT - ${SOURCE_FILE} - ${HEADER_FILE} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMAND "${GLIB_MKENUMS_BIN}" - ARGS - "--template=${_SOURCE_TEMPLATE}" - "--output=${SOURCE_FILE}" - ${_HEADERS} - COMMAND "${GLIB_MKENUMS_BIN}" - ARGS - "--template=${_HEADER_TEMPLATE}" - "--output=${HEADER_FILE}" - ${_HEADERS} - VERBATIM - COMMENT "Generating enum sources" - DEPENDS - ${_HEADERS} - ${_SOURCE_TEMPLATE} - ${_HEADER_TEMPLATE} - ) + 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}" ) - target_sources("${TARGET}" PUBLIC - FILE_SET HEADERS - FILES - "${HEADER_FILE}" - ) - - target_include_directories("${TARGET}" PUBLIC - "${CMAKE_CURRENT_BINARY_DIR}" - ) + if(NOT _SKIP_HEADER) + target_sources("${TARGET}" PUBLIC + FILE_SET HEADERS + FILES + "${HEADER_FILE}" + ) + endif() endfunction() diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index b9365c8..998504b 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -100,7 +100,6 @@ set_target_properties("lib" PROPERTIES ) target_add_glib_enums("lib" - HEADER_TEMPLATE "src/turns-enums.h.in" SOURCE_TEMPLATE "src/turns-enums.c.in" OUTPUT_NAME "turns-enums" HEADERS ${HEADERS} diff --git a/lib/src/turns-enums.c.in b/lib/src/turns-enums.c.in index 2f75d77..635ea33 100644 --- a/lib/src/turns-enums.c.in +++ b/lib/src/turns-enums.c.in @@ -1,5 +1,4 @@ /*** BEGIN file-header ***/ -#include "turns-enums.h" /*** END file-header ***/ /*** BEGIN file-production ***/ diff --git a/lib/src/turns-enums.h.in b/lib/src/turns-enums.h.in deleted file mode 100644 index de93e31..0000000 --- a/lib/src/turns-enums.h.in +++ /dev/null @@ -1,25 +0,0 @@ -/*** BEGIN file-header ***/ -#ifndef TURNS_ENUMS_H -#define TURNS_ENUMS_H - -#include <glib.h> -#include <glib-object.h> - -G_BEGIN_DECLS -/*** END file-header ***/ - -/*** BEGIN file-production ***/ - -/* enumerations from "@basename@" */ -/*** END file-production ***/ - -/*** BEGIN value-header ***/ -GType @enum_name@_get_type (void) G_GNUC_CONST; -#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) -/*** END value-header ***/ - -/*** BEGIN file-tail ***/ -G_END_DECLS - -#endif -/*** END file-tail ***/ diff --git a/lib/src/turns-init.cpp b/lib/src/turns-init.cpp index 243434d..0d6a808 100644 --- a/lib/src/turns-init.cpp +++ b/lib/src/turns-init.cpp @@ -1,6 +1,5 @@ #include "turns-init.h" -#include "turns-enums.h" #include "turns-participant.h" #include "turns-turn-order.h" diff --git a/lib/src/turns-participant.cpp b/lib/src/turns-participant.cpp index 1e03c8b..0846532 100644 --- a/lib/src/turns-participant.cpp +++ b/lib/src/turns-participant.cpp @@ -1,7 +1,5 @@ #include "turns-participant.h" -#include "turns-enums.h" - #include <glib-object.h> #include <glib.h> #include <glibconfig.h> diff --git a/lib/src/turns-participant.h b/lib/src/turns-participant.h index f951ddb..7f5ff7b 100644 --- a/lib/src/turns-participant.h +++ b/lib/src/turns-participant.h @@ -1,8 +1,6 @@ #ifndef TURNS_PARTICIPANT_H #define TURNS_PARTICIPANT_H -#include "turns-enums.h" // IWYU pragma: export - #include <glib-object.h> #include <glib.h> #include <glibconfig.h> @@ -17,6 +15,9 @@ typedef enum TURNS_PARTICIPANT_DISPOSITION_SECRET, } TurnsParticipantDisposition; +GType turns_participant_disposition_get_type(void) G_GNUC_CONST; +#define TURNS_TYPE_PARTICIPANT_DISPOSITION (turns_participant_disposition_get_type()) + #define TURNS_TYPE_PARTICIPANT turns_participant_get_type() G_DECLARE_FINAL_TYPE(TurnsParticipant, turns_participant, TURNS, PARTICIPANT, GObject) diff --git a/lib/src/turns-turn-order.cpp b/lib/src/turns-turn-order.cpp index 496ef2d..3337bb5 100644 --- a/lib/src/turns-turn-order.cpp +++ b/lib/src/turns-turn-order.cpp @@ -1,6 +1,5 @@ #include "turns-turn-order.h" -#include "turns-enums.h" #include "turns-participant.h" #include <gio/gio.h> diff --git a/lib/src/turns-turn-order.h b/lib/src/turns-turn-order.h index 9d5c4b7..fd888ec 100644 --- a/lib/src/turns-turn-order.h +++ b/lib/src/turns-turn-order.h @@ -14,6 +14,9 @@ typedef enum TURNS_TURN_ORDER_SORT_MODE_ASCENDING, } TurnsTurnOrderSortMode; +GType turns_turn_order_sort_mode_get_type(void) G_GNUC_CONST; +#define TURNS_TYPE_TURN_ORDER_SORT_MODE (turns_turn_order_sort_mode_get_type()) + #define TURNS_TYPE_TURN_ORDER turns_turn_order_get_type() G_DECLARE_FINAL_TYPE(TurnsTurnOrder, turns_turn_order, TURNS, TURN_ORDER, GObject) diff --git a/lib/src/turnsmm/turn-order.cpp b/lib/src/turnsmm/turn-order.cpp index 1636be9..00fb30d 100644 --- a/lib/src/turnsmm/turn-order.cpp +++ b/lib/src/turnsmm/turn-order.cpp @@ -16,7 +16,6 @@ #include <giomm/listmodel.h> #include <glib-object.h> -#include <turns-enums.h> #include <bit> #include <cstddef> |
