From d1367f11503d9eab8bde75245af85bae1435d09e Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 23 Jun 2024 11:11:51 +1000 Subject: [PATCH 1/6] Updating next version to be v5.2.6 --- include/comms/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/comms/version.h b/include/comms/version.h index 2ad03a3..4bb82c3 100644 --- a/include/comms/version.h +++ b/include/comms/version.h @@ -17,7 +17,7 @@ #define COMMS_MINOR_VERSION 2U /// @brief Patch level of the library -#define COMMS_PATCH_VERSION 5U +#define COMMS_PATCH_VERSION 6U /// @brief Macro to create numeric version as single unsigned number #define COMMS_MAKE_VERSION(major_, minor_, patch_) \ From ca4b7c9faa52da29031ffb8695450fe072f34d08 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Mon, 29 Jul 2024 08:04:29 +1000 Subject: [PATCH 2/6] Allowing up to 100 member fields for messages and composite fields like Bundle. --- include/comms/details/fields_access.h | 308 +++++++++++++++++++++++++- 1 file changed, 307 insertions(+), 1 deletion(-) diff --git a/include/comms/details/fields_access.h b/include/comms/details/fields_access.h index c320875..41a6f94 100644 --- a/include/comms/details/fields_access.h +++ b/include/comms/details/fields_access.h @@ -191,7 +191,156 @@ #define COMMS_FIELD_ACC_FUNC_50(T_, t_, n_, ...) \ COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_49(T_, t_, __VA_ARGS__)) - +#define COMMS_FIELD_ACC_FUNC_51(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_49(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_52(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_51(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_53(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_52(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_54(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_53(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_55(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_54(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_56(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_55(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_57(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_56(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_58(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_57(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_59(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_58(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_60(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_59(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_61(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_60(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_62(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_61(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_63(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_62(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_64(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_63(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_65(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_64(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_66(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_65(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_67(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_66(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_68(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_67(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_69(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_68(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_70(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_69(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_71(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_70(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_72(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_71(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_73(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_72(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_74(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_73(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_75(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_74(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_76(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_75(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_77(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_76(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_78(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_77(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_79(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_78(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_80(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_79(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_81(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_80(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_82(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_81(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_83(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_82(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_84(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_83(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_85(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_84(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_86(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_85(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_87(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_86(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_88(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_87(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_89(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_88(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_90(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_89(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_91(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_90(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_92(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_91(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_93(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_92(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_94(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_93(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_95(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_94(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_96(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_95(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_97(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_96(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_98(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_97(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_99(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_98(T_, t_, __VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_100(T_, t_, n_, ...) \ + COMMS_FIELD_ACC_FUNC(T_, t_, n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_99(T_, t_, __VA_ARGS__)) #define COMMS_CHOOSE_FIELD_ACC_FUNC_(N, T_, t_, ...) COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_ ## N(T_, t_, __VA_ARGS__)) #define COMMS_CHOOSE_FIELD_ACC_FUNC(N, T_, t_, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_(N, T_, t_, __VA_ARGS__)) @@ -352,6 +501,163 @@ #define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_48(n_, ...) \ COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_47(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_49(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_48(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_50(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_49(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_51(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_50(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_52(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_51(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_53(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_52(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_54(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_53(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_55(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_54(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_56(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_55(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_57(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_56(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_58(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_57(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_59(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_58(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_60(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_59(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_61(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_60(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_62(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_61(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_63(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_62(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_64(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_63(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_65(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_64(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_66(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_65(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_67(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_66(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_68(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_67(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_69(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_68(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_70(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_69(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_71(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_70(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_72(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_71(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_73(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_72(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_74(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_73(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_75(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_74(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_76(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_75(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_77(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_76(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_78(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_77(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_79(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_78(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_80(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_79(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_81(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_80(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_82(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_81(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_83(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_82(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_84(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_83(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_85(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_84(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_86(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_85(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_87(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_86(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_88(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_87(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_89(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_88(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_90(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_89(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_91(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_90(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_92(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_91(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_93(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_92(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_94(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_93(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_95(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_94(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_96(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_95(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_97(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_96(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_98(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_97(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_99(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_98(__VA_ARGS__)) +#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_100(n_, ...) \ + COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \ + COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_99(__VA_ARGS__)) + #define COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE_(N, ...) COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_ ## N(__VA_ARGS__)) #define COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE(N, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE_(N, __VA_ARGS__)) From 1202114d96c88e739bf2939291a9e2a8723a7d9f Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 1 Sep 2024 09:37:41 +1000 Subject: [PATCH 3/6] Trying ubuntu-22.04 runners in github actions. --- .github/workflows/actions_build.yml | 93 +++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 43c2d88..911b237 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -116,6 +116,52 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Prepare Install + run: sudo apt-get update --fix-missing + + - name: Install Packages + run: sudo apt install doxygen dia gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DCC_COMMS_BUILD_UNIT_TESTS=ON + env: + CC: gcc-${{matrix.cc_ver}} + CXX: g++-${{matrix.cc_ver}} + + - name: Build + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} --target install + env: + VERBOSE: 1 + + - name: Test + working-directory: ${{runner.workspace}}/build + shell: bash + run: ctest -V + + - name: Documentation + working-directory: ${{runner.workspace}}/build + shell: bash + run: make doc_comms + + build_gcc_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [13, 14] + cpp: [11, 14, 17, 20] + + steps: + - uses: actions/checkout@v4 + - name: Prepare Install run: sudo apt-get update --fix-missing @@ -264,6 +310,52 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Prepare Install + run: sudo apt-get update --fix-missing + + - name: Install Packages + run: sudo apt install doxygen dia clang-${{matrix.cc_ver}} + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DCC_COMMS_BUILD_UNIT_TESTS=ON + env: + CC: clang-${{matrix.cc_ver}} + CXX: clang++-${{matrix.cc_ver}} + + - name: Build + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} --target install + env: + VERBOSE: 1 + + - name: Test + working-directory: ${{runner.workspace}}/build + shell: bash + run: ctest -V + + - name: Documentation + working-directory: ${{runner.workspace}}/build + shell: bash + run: make doc_comms + +build_clang_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [16, 17, 18] + cpp: [11, 14, 17, 20] + + steps: + - uses: actions/checkout@v4 + - name: Prepare Install run: sudo apt-get update --fix-missing @@ -298,6 +390,7 @@ jobs: shell: bash run: make doc_comms + build_msvc_2019: runs-on: windows-2019 strategy: From e33de292d220db4aa835964e4afb56131ef4bcf8 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 1 Sep 2024 09:40:07 +1000 Subject: [PATCH 4/6] Reverting some of the gitub actions configuration change. --- .github/workflows/actions_build.yml | 47 ----------------------------- 1 file changed, 47 deletions(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 911b237..5dd9465 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -310,52 +310,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Prepare Install - run: sudo apt-get update --fix-missing - - - name: Install Packages - run: sudo apt install doxygen dia clang-${{matrix.cc_ver}} - - - name: Create Build Environment - run: cmake -E make_directory ${{runner.workspace}}/build - - - name: Configure CMake - shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DCC_COMMS_BUILD_UNIT_TESTS=ON - env: - CC: clang-${{matrix.cc_ver}} - CXX: clang++-${{matrix.cc_ver}} - - - name: Build - working-directory: ${{runner.workspace}}/build - shell: bash - run: cmake --build . --config ${{matrix.type}} --target install - env: - VERBOSE: 1 - - - name: Test - working-directory: ${{runner.workspace}}/build - shell: bash - run: ctest -V - - - name: Documentation - working-directory: ${{runner.workspace}}/build - shell: bash - run: make doc_comms - -build_clang_ubuntu_24_04: - runs-on: ubuntu-24.04 - strategy: - fail-fast: false - matrix: - type: [Debug, Release, MinSizeRel] - cc_ver: [16, 17, 18] - cpp: [11, 14, 17, 20] - - steps: - - uses: actions/checkout@v4 - - name: Prepare Install run: sudo apt-get update --fix-missing @@ -390,7 +344,6 @@ build_clang_ubuntu_24_04: shell: bash run: make doc_comms - build_msvc_2019: runs-on: windows-2019 strategy: From fd9fecd3ac8f309d369658d803e1744254f9dcf0 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 1 Sep 2024 09:41:19 +1000 Subject: [PATCH 5/6] Trying clang on ubuntu-24.04 in github actions. --- .github/workflows/actions_build.yml | 48 ++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 5dd9465..8d8a403 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -342,7 +342,53 @@ jobs: - name: Documentation working-directory: ${{runner.workspace}}/build shell: bash - run: make doc_comms + run: make doc_comms + + build_clang_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [16, 17, 18] + cpp: [11, 14, 17, 20] + + steps: + - uses: actions/checkout@v4 + + - name: Prepare Install + run: sudo apt-get update --fix-missing + + - name: Install Packages + run: sudo apt install doxygen dia clang-${{matrix.cc_ver}} + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} -DCC_COMMS_BUILD_UNIT_TESTS=ON + env: + CC: clang-${{matrix.cc_ver}} + CXX: clang++-${{matrix.cc_ver}} + + - name: Build + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} --target install + env: + VERBOSE: 1 + + - name: Test + working-directory: ${{runner.workspace}}/build + shell: bash + run: ctest -V + + - name: Documentation + working-directory: ${{runner.workspace}}/build + shell: bash + run: make doc_comms build_msvc_2019: runs-on: windows-2019 From f43c22a6b22bc6e92b662ea0bbd6d950df27287f Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 1 Sep 2024 09:50:04 +1000 Subject: [PATCH 6/6] Not building documentation in ubuntu-24.04 github actions runner. --- .github/workflows/actions_build.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 8d8a403..8097135 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -191,11 +191,6 @@ jobs: shell: bash run: ctest -V - - name: Documentation - working-directory: ${{runner.workspace}}/build - shell: bash - run: make doc_comms - build_clang_old_ubuntu_20_04: runs-on: ubuntu-20.04 strategy: @@ -385,11 +380,6 @@ jobs: shell: bash run: ctest -V - - name: Documentation - working-directory: ${{runner.workspace}}/build - shell: bash - run: make doc_comms - build_msvc_2019: runs-on: windows-2019 strategy: