From 55ad81533a7ed5bd9d22dc78688b9852f292bd11 Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Fri, 27 Oct 2017 00:06:17 +0300 Subject: 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 Tested-by: Mike Kaganski --- bin/gbuild-to-ide | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'bin/gbuild-to-ide') 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 -- cgit