diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2017-10-27 00:06:17 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2017-10-26 23:27:59 +0200 |
commit | 55ad81533a7ed5bd9d22dc78688b9852f292bd11 (patch) | |
tree | adb4df49111d2bcc30b765eb13c0626182d39776 /bin | |
parent | dd35dccdf6c20922c51d2a8d4acb8a94a30522fb (diff) |
gbuild-to-ide: handle -U undefs correctly
Previously, defines string like this:
-DDBG_UTIL -DNOMINMAX -D_DLL -UNOMINMAX
would produce this defines list:
DBG_UTIL;NOMINMAX;_DLL -UNOMINMAX
where last "define" is incorrect; proper list should be
DBG_UTIL;_DLL
so that the undef'ed element would be properly eliminated from the
result. This patch takes care of this.
Change-Id: Ia66a1d6d0a6e0bbfd0022b22285b005609871336
Reviewed-on: https://gerrit.libreoffice.org/43923
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/gbuild-to-ide | 7 | ||||
-rwxr-xr-x | bin/gbuild-to-ideNS | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index 0ff7579e1c84..d50801c3e6ca 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -67,10 +67,15 @@ class GbuildParser: defs = {} alldefs = [defswitch.strip() for defswitch in defsline.strip().lstrip('-D').split(' -D') if len(defswitch) > 2] for d in alldefs: - defparts = d.split('=') + dparts = d.split(' -U') + """after dparts.pop(0), dparts will contain only undefs""" + defparts = dparts.pop(0).strip().split('=') if len(defparts) == 1: defparts.append(None) defs[defparts[0]] = defparts[1] + """Drop undefed items (if any) from previous defs""" + for u in dparts: + defs.pop(u.strip(), '') defs["LIBO_INTERNAL_ONLY"] = None return defs diff --git a/bin/gbuild-to-ideNS b/bin/gbuild-to-ideNS index 44970c466b77..5fca58cf227d 100755 --- a/bin/gbuild-to-ideNS +++ b/bin/gbuild-to-ideNS @@ -106,10 +106,15 @@ class GbuildParser: defs = {} alldefs = [defswitch.strip() for defswitch in defsline.strip().lstrip('-D').split(' -D') if len(defswitch) > 2] for d in alldefs: - defparts = d.split('=') + dparts = d.split(' -U') + """after dparts.pop(0), dparts will contain only undefs""" + defparts = dparts.pop(0).strip().split('=') if len(defparts) == 1: defparts.append(None) defs[defparts[0]] = defparts[1] + """Drop undefed items (if any) from previous defs""" + for u in dparts: + defs.pop(u.strip(), '') defs["LIBO_INTERNAL_ONLY"] = None return defs |