summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2017-10-27 00:06:17 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2017-10-26 23:27:59 +0200
commit55ad81533a7ed5bd9d22dc78688b9852f292bd11 (patch)
treeadb4df49111d2bcc30b765eb13c0626182d39776 /bin
parentdd35dccdf6c20922c51d2a8d4acb8a94a30522fb (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-xbin/gbuild-to-ide7
-rwxr-xr-xbin/gbuild-to-ideNS7
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