summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-05-12 09:32:26 +0000
committerjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-05-12 09:32:26 +0000
commite168ed36edb9d6c014da883ecc7e3c38c0363a39 (patch)
tree87e836330fe810c14e699914c90e0c55f3528c97 /packages
parent2fc6d4414508f9e06aa997e88c7e58f481c9f626 (diff)
downloadfpc-e168ed36edb9d6c014da883ecc7e3c38c0363a39.tar.gz
* Do not sort the order of the unit, include and object path
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15260 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages')
-rw-r--r--packages/fpmkunit/src/fpmkunit.pp36
1 files changed, 28 insertions, 8 deletions
diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp
index fcebbc5d98..d693694d80 100644
--- a/packages/fpmkunit/src/fpmkunit.pp
+++ b/packages/fpmkunit/src/fpmkunit.pp
@@ -951,7 +951,13 @@ Procedure SplitCommand(Const Cmd : String; Var Exe,Options : String);
Implementation
-uses typinfo;
+uses typinfo, rtlconsts;
+
+type
+ TUnsortedDuplicatesStringList = class(TStringList)
+ public
+ function Add(const S: string): Integer; override;
+ end;
ResourceString
SErrInvalidCPU = 'Invalid CPU name "%s"';
@@ -1553,6 +1559,22 @@ end;
{****************************************************************************
+ TUnsortedDuplicatesStringList
+****************************************************************************}
+
+function TUnsortedDuplicatesStringList.Add(const S: string): Integer;
+
+begin
+ result := IndexOf(S);
+ If result > -1 then
+ Case DUplicates of
+ DupIgnore : Exit;
+ DupError : Error(SDuplicateString,0)
+ end;
+ inherited Add(S);
+end;
+
+{****************************************************************************
TNamedItem
****************************************************************************}
@@ -3610,7 +3632,8 @@ end;
Function TBuildEngine.GetCompilerCommand(APackage : TPackage; ATarget : TTarget) : String;
Var
- L,Args : TStringList;
+ L : TUnsortedDuplicatesStringList;
+ Args : TStringList;
i : Integer;
begin
if ATarget.TargetSourceFileName = '' then
@@ -3638,8 +3661,7 @@ begin
Args.Add('-FE'+APackage.GetBinOutputDir(Defaults.CPU,Defaults.OS));
Args.Add('-FU'+APackage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS));
// Object Path
- L:=TStringList.Create;
- L.Sorted:=true;
+ L:=TUnsortedDuplicatesStringList.Create;
L.Duplicates:=dupIgnore;
AddConditionalStrings(L,APackage.ObjectPath,Defaults.CPU,Defaults.OS);
AddConditionalStrings(L,ATarget.ObjectPath,Defaults.CPU,Defaults.OS);
@@ -3647,8 +3669,7 @@ begin
Args.Add('-Fo'+L[i]);
FreeAndNil(L);
// Unit Dirs
- L:=TStringList.Create;
- L.Sorted:=true;
+ L:=TUnsortedDuplicatesStringList.Create;
L.Duplicates:=dupIgnore;
AddDependencyUnitPaths(L,APackage);
AddConditionalStrings(L,APackage.UnitPath,Defaults.CPU,Defaults.OS);
@@ -3657,8 +3678,7 @@ begin
Args.Add('-Fu'+L[i]);
FreeAndNil(L);
// Include Path
- L:=TStringList.Create;
- L.Sorted:=true;
+ L:=TUnsortedDuplicatesStringList.Create;
L.Duplicates:=dupIgnore;
AddDependencyIncludePaths(L,ATarget);
AddConditionalStrings(L,APackage.IncludePath,Defaults.CPU,Defaults.OS);