Przeglądaj źródła

Merged in bugfix/PROTO-66-generated-header-guards-missing (pull request #30)

Defined a header guard with the path to prevent problems with the same file names in different folders.
Bart Hertog 5 lat temu
rodzic
commit
076be683a5
2 zmienionych plików z 6 dodań i 5 usunięć
  1. 3 3
      generator/Header_Template.h
  2. 3 2
      generator/protoc-gen-eams.py

+ 3 - 3
generator/Header_Template.h

@@ -537,8 +537,8 @@ class {{ msg.name }} final: public ::EmbeddedProto::MessageInterface
  */
 
 // This file is generated. Please do not edit!
-#ifndef _{{filename.upper()}}_H_
-#define _{{filename.upper()}}_H_
+#ifndef _{{header_guard}}_H_
+#define _{{header_guard}}_H_
 
 #include <cstdint>
 {% if messages %}
@@ -572,5 +572,5 @@ namespace {{ namespace }} {
 {% for namespace in namespaces|reverse %}
 } // End of namespace {{ namespace }}
 {% endfor %}
-#endif // _{{filename.upper()}}_H_
+#endif // _{{header_guard}}_H_
 

+ 3 - 2
generator/protoc-gen-eams.py

@@ -306,6 +306,7 @@ def generate_code(request, respones):
 
         filename_with_folder = os.path.splitext(proto_file.name)[0]
         filename_without_folder = os.path.basename(filename_with_folder)
+        file_header_guard = filename_with_folder.replace("/", "_").upper()
 
         imported_dependencies = []
         if proto_file.dependency:
@@ -316,8 +317,8 @@ def generate_code(request, respones):
             namespace_names = proto_file.package.split(".")
 
         try:
-            file_str = template.render(filename=filename_without_folder, namespaces=namespace_names,
-                                       messages=messages_array[number_of_processed_msg:],
+            file_str = template.render(filename=filename_without_folder, header_guard=file_header_guard,
+                                       namespaces=namespace_names, messages=messages_array[number_of_processed_msg:],
                                        enums=enums_generator, dependencies=imported_dependencies)
 
         except jinja2.TemplateError as e: