From 4768f662851ae907ec847397405ea930231f4e2c Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Wed, 20 Aug 2014 23:49:50 -0400 Subject: Clean empty values from Info.plist before serializing. Follows Xcode behavior, and prevents potential build failures due to slight behavior change in a following commit. Change-Id: Id0afa15c4493e460faa029fd914a19d9c3140d84 Reviewed-by: Joerg Bornemann --- share/qbs/imports/qbs/DarwinTools/darwin-tools.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'share/qbs/imports/qbs/DarwinTools') diff --git a/share/qbs/imports/qbs/DarwinTools/darwin-tools.js b/share/qbs/imports/qbs/DarwinTools/darwin-tools.js index 56a727399..59ea8f87f 100644 --- a/share/qbs/imports/qbs/DarwinTools/darwin-tools.js +++ b/share/qbs/imports/qbs/DarwinTools/darwin-tools.js @@ -133,3 +133,18 @@ function expandPlistEnvironmentVariables(obj, env, warn) { expandRecursive(obj, env, []); return obj; } + +/** + * Recursively removes any undefined, null, or empty string values from the property list. + */ +function cleanPropertyList(plist) { + if (typeof(plist) !== "object") + return; + + for (var key in plist) { + if (plist[key] === undefined || plist[key] === null || plist[key] === "") + delete plist[key]; + else + cleanPropertyList(plist[key]); + } +} -- cgit v1.2.1