ldgen: fix library path parsing in windows
authorRenz Christian Bagaporo <renz@espressif.com>
Fri, 15 Mar 2019 10:31:30 +0000 (18:31 +0800)
committerRenz Christian Bagaporo <renz@espressif.com>
Sun, 17 Mar 2019 19:47:38 +0000 (03:47 +0800)
Closes https://github.com/espressif/esp-idf/issues/3173

tools/ldgen/generation.py

index cf45292e5e342fcb5ef3729d5412c2f68e894680..d42a4284eb9b8a92f0918d212d7182819ad18d6f 100644 (file)
@@ -20,7 +20,8 @@ import os
 import fnmatch
 
 from fragments import Sections, Scheme, Mapping, Fragment
-from pyparsing import Suppress, White, ParseException, Literal, Regex, Group, ZeroOrMore, Word, OneOrMore, nums, alphanums, alphas, Optional
+from pyparsing import Suppress, White, ParseException, Literal, Group, ZeroOrMore
+from pyparsing import Word, OneOrMore, nums, alphanums, alphas, Optional, LineEnd, printables
 from common import LdGenFailure
 
 
@@ -591,7 +592,10 @@ class SectionsInfo(dict):
     def add_sections_info(self, sections_info_file):
         first_line = sections_info_file.readline()
 
-        archive_path = Literal("In archive").suppress() + Regex(r"[^:]+").setResultsName("archive_path") + Literal(":").suppress()
+        archive_path = (Literal("In archive").suppress() +
+                        # trim the last character from archive_path, :
+                        Word(printables + " ").setResultsName("archive_path").setParseAction(lambda t: t[0][:-1]) +
+                        LineEnd())
         parser = archive_path
 
         results = None