From ef7488316a228d29f043e5bf0e722d6279831b30 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sat, 19 Sep 2015 14:02:39 +0200 Subject: [PATCH] fix, the target filename was not always correctly set --- src/ce_dubproject.pas | 44 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/ce_dubproject.pas b/src/ce_dubproject.pas index 282aea9e..5f53f9ad 100644 --- a/src/ce_dubproject.pas +++ b/src/ce_dubproject.pas @@ -615,36 +615,34 @@ begin end; procedure TCEDubProject.updateOutputNameFromJson; - procedure setFrom(obj: TJSONObject); - var - item: TJSONData; - begin - item := obj.Find('targetPath'); - if assigned(item) then - fOutputFileName := item.AsString; - item := obj.Find('targetName'); - if assigned(item) then - fOutputFileName += DirectorySeparator + item.AsString; - end; var conf: TJSONObject; item: TJSONData; + namePart, pathPart: string; + procedure setFrom(obj: TJSONObject); + var + n,p: TJSONData; + begin + p := obj.Find('targetPath'); + n := obj.Find('targetName'); + if assigned(p) then pathPart := p.AsString; + if assigned(n) then namePart := n.AsString; + end; begin fOutputFileName := ''; + item := fJSON.Find('name'); + if not assigned(item) then + exit; + namePart := item.AsString; + pathPart := fBasePath; setFrom(fJSON); conf := getCurrentCustomConfig; - if assigned(conf) then setFrom(conf); - if fOutputFileName <> '' then - begin - patchPlateformPath(fOutputFileName); - expandFilenameEx(fBasePath, fOutputFileName); - end - else - begin - item := fJSON.Find('name'); - if assigned(item) then - fOutputFileName := fBasePath + item.AsString; - end; + if assigned(conf) then + setFrom(conf); + pathPart := TrimRightSet(pathPart, ['/','\']); + fOutputFileName:= pathPart + DirectorySeparator + namePart; + patchPlateformPath(fOutputFileName); + fOutputFileName := expandFilenameEx(fBasePath, fOutputFileName); case fBinKind of executable: fOutputFileName += exeExt; staticlib: fOutputFileName += libExt;