vapi: Fix build when directory contains @ 57/36057/1
authorRenato Botelho do Couto <renato@netgate.com>
Wed, 27 Apr 2022 20:51:20 +0000 (17:51 -0300)
committerRenato Botelho do Couto <renato@netgate.com>
Wed, 27 Apr 2022 20:54:50 +0000 (17:54 -0300)
During build some header guards are created based on full path where
build is happening.  If one directory contains @ character build breaks
because compiler believes it's a macro declaration.

Jenkins adds `@${EXECUTOR_NUMBER}` suffix to workspace directory when
it uses more than one executor for that job, breaking the build.

Replace any @ character on guard name by _ to get it fixed.

Type: fix
Change-Id: Id0f4cfc33fda95e168541aa4e353a0d08aa3b664
Signed-off-by: Renato Botelho do Couto <renato@netgate.com>
src/vpp-api/vapi/vapi_c_gen.py
src/vpp-api/vapi/vapi_cpp_gen.py

index b861158..debd734 100755 (executable)
@@ -712,7 +712,7 @@ def gen_json_unified_header(parser, logger, j, io, name):
     sys.stdout = io
     include_guard = "__included_%s" % (
         j.replace(".", "_").replace("/", "_").replace("-", "_").replace(
-            "+", "_"))
+            "+", "_").replace("@", "_"))
     print("#ifndef %s" % include_guard)
     print("#define %s" % include_guard)
     print("")
index c6aa009..7bc2e7f 100755 (executable)
@@ -139,7 +139,8 @@ def gen_json_header(parser, logger, j, io, gen_h_prefix, add_debug_comments):
     sys.stdout = io
     d, f = os.path.split(j)
     include_guard = "__included_hpp_%s" % (
-        f.replace(".", "_").replace("/", "_").replace("-", "_"))
+        f.replace(".", "_").replace("/", "_").replace("-", "_").replace(
+            "@", "_"))
     print("#ifndef %s" % include_guard)
     print("#define %s" % include_guard)
     print("")