diff --git a/lcm/lcm_version.h b/lcm/lcm_version.h index 86aa986f8..498b200e3 100644 --- a/lcm/lcm_version.h +++ b/lcm/lcm_version.h @@ -14,3 +14,13 @@ #define LCM_MAJOR_VERSION LCM_VERSION_MAJOR #define LCM_MINOR_VERSION LCM_VERSION_MINOR #define LCM_MICRO_VERSION LCM_VERSION_PATCH + +// Macro required indirection. +#define _MACRO_LCM_STRINGIFY(x) #x +/// Surround x in quotes. x may be the result of another macro. +#define MACRO_LCM_STRINGIFY(x) _MACRO_LCM_STRINGIFY(x) + +/// "x.y.z" +#define LCM_VERSION_STRING \ + MACRO_LCM_STRINGIFY(LCM_VERSION_MAJOR) \ + "." MACRO_LCM_STRINGIFY(LCM_VERSION_MINOR) "." MACRO_LCM_STRINGIFY(LCM_VERSION_PATCH) diff --git a/lcmgen/emit_c.c b/lcmgen/emit_c.c index d63ce91a9..61d51fbfb 100644 --- a/lcmgen/emit_c.c +++ b/lcmgen/emit_c.c @@ -9,6 +9,7 @@ #endif #include +#include "../lcm/lcm_version.h" #include "lcmgen.h" #define INDENT(n) (4 * (n)) @@ -78,7 +79,7 @@ static void emit_auto_generated_warning(FILE *f) "// THIS IS AN AUTOMATICALLY GENERATED FILE. DO NOT MODIFY\n" "// BY HAND!!\n" "//\n" - "// Generated by lcm-gen\n\n"); + "// Generated by lcm-gen " LCM_VERSION_STRING "\n\n"); } // Some types do not have a 1:1 mapping from lcm types to native C diff --git a/lcmgen/emit_cpp.c b/lcmgen/emit_cpp.c index 8913d5b1d..600faaa58 100644 --- a/lcmgen/emit_cpp.c +++ b/lcmgen/emit_cpp.c @@ -13,6 +13,7 @@ #include #include +#include "../lcm/lcm_version.h" #include "lcmgen.h" #define INDENT(n) (4 * (n)) @@ -149,7 +150,8 @@ static void emit_auto_generated_warning(FILE *f) "/** THIS IS AN AUTOMATICALLY GENERATED FILE. DO NOT MODIFY\n" " * BY HAND!!\n" " *\n" - " * Generated by lcm-gen\n" + " * Generated by lcm-gen " LCM_VERSION_STRING + "\n" " **/\n\n"); } diff --git a/lcmgen/emit_csharp.c b/lcmgen/emit_csharp.c index fb2aed446..037472642 100644 --- a/lcmgen/emit_csharp.c +++ b/lcmgen/emit_csharp.c @@ -7,6 +7,7 @@ #include #include +#include "../lcm/lcm_version.h" #include "getopt.h" #include "lcmgen.h" @@ -346,7 +347,8 @@ int emit_csharp(lcmgen_t *lcm) emit(0, "/* LCM type definition class file\n" - " * This file was automatically generated by lcm-gen\n" + " * This file was automatically generated by lcm-gen " LCM_VERSION_STRING + "\n" " * DO NOT MODIFY BY HAND!!!!\n" " */\n"); diff --git a/lcmgen/emit_go.c b/lcmgen/emit_go.c index c22717695..ac4cdfae3 100644 --- a/lcmgen/emit_go.c +++ b/lcmgen/emit_go.c @@ -12,6 +12,7 @@ #define __STDC_FORMAT_MACROS // Enable integer types #endif +#include "../lcm/lcm_version.h" #include "lcmgen.h" #define TABS "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" @@ -382,7 +383,7 @@ static void emit_auto_generated_warning(FILE *f) "// THIS IS AN AUTOMATICALLY GENERATED FILE. DO NOT MODIFY\n" "// BY HAND!!\n" "//\n" - "// Generated by lcm-gen\n\n"); + "// Generated by lcm-gen " LCM_VERSION_STRING "\n\n"); } /* diff --git a/lcmgen/emit_java.c b/lcmgen/emit_java.c index 0b94b23ff..56eb6a018 100644 --- a/lcmgen/emit_java.c +++ b/lcmgen/emit_java.c @@ -7,6 +7,7 @@ #include #include +#include "../lcm/lcm_version.h" #include "getopt.h" #include "lcmgen.h" @@ -499,6 +500,8 @@ int emit_java(lcmgen_t *lcm) "/* LCM type definition class file\n" " * This file was automatically generated by lcm-gen\n" " * DO NOT MODIFY BY HAND!!!!\n" + " * lcm-gen " LCM_VERSION_STRING + "\n" " */\n"); if (strlen(lr->structname->package) > 0) diff --git a/lcmgen/emit_lua.c b/lcmgen/emit_lua.c index 59a9fd3b6..60df74b05 100644 --- a/lcmgen/emit_lua.c +++ b/lcmgen/emit_lua.c @@ -11,6 +11,7 @@ #include #include +#include "../lcm/lcm_version.h" #include "lcmgen.h" // lua uses just 2 spaces per indent @@ -922,6 +923,8 @@ static int emit_package(lcmgen_t *lcm, _package_contents_t *pc) "LCM package init.lua file\n" "This file automatically generated by lcm-gen.\n" "DO NOT MODIFY BY HAND!!!!\n" + "lcm-gen " LCM_VERSION_STRING + "\n" "--]]\n" "\n" "local M = {}\n" @@ -1059,7 +1062,8 @@ static int emit_package(lcmgen_t *lcm, _package_contents_t *pc) fprintf(f, "--[[\n" "LCM type definitions\n" - "This file automatically generated by lcm.\n" + "This file automatically generated by lcm " LCM_VERSION_STRING + ".\n" "DO NOT MODIFY BY HAND!!!!\n" "--]]\n" "\n" diff --git a/lcmgen/emit_python.c b/lcmgen/emit_python.c index cb305a02f..f2d9eebdd 100644 --- a/lcmgen/emit_python.c +++ b/lcmgen/emit_python.c @@ -11,6 +11,7 @@ #include #include +#include "../lcm/lcm_version.h" #include "lcmgen.h" #define INDENT(n) (4 * (n)) @@ -808,6 +809,7 @@ emit_package (lcmgen_t *lcm, _package_contents_t *package) fprintf (init_py_fp, "\"\"\"LCM package __init__.py file\n" "This file automatically generated by lcm-gen.\n" "DO NOT MODIFY BY HAND!!!!\n" + "lcm-gen " LCM_VERSION_STRING "\n" "\"\"\"\n\n"); } else { while(!feof(init_py_fp)) { @@ -862,6 +864,7 @@ emit_package (lcmgen_t *lcm, _package_contents_t *package) fprintf(f, "\"\"\"LCM type definitions\n" "This file automatically generated by lcm.\n" "DO NOT MODIFY BY HAND!!!!\n" + "lcm-gen " LCM_VERSION_STRING "\n" "\"\"\"\n" "\n" "from io import BytesIO\n"