From c0bdce1330be6e549f3dcfed2625c0983d898733 Mon Sep 17 00:00:00 2001 From: joost Date: Sat, 24 Oct 2015 22:09:06 +0000 Subject: [PATCH] * Fixed problem with search-masks in fpmake.pp-files in subdirectories git-svn-id: trunk@32142 - --- ide/fpmake.pp | 14 ++++++------- packages/fcl-base/fpmake.pp | 2 +- packages/fpmkunit/src/fpmkunit.pp | 35 +++++++++++++++++-------------- packages/gmp/fpmake.pp | 2 +- packages/gtk2/fpmake.pp | 18 ++++++++-------- packages/ibase/fpmake.pp | 2 +- packages/libcurl/fpmake.pp | 2 +- packages/libgbafpc/fpmake.pp | 2 +- packages/libgd/fpmake.pp | 2 +- packages/libndsfpc/fpmake.pp | 2 +- packages/libogcfpc/fpmake.pp | 2 +- packages/libxml/fpmake.pp | 2 +- packages/odbc/fpmake.pp | 2 +- packages/opengles/fpmake.pp | 2 +- packages/os2units/fpmake.pp | 2 +- packages/postgres/fpmake.pp | 2 +- packages/ptc/fpmake.pp | 2 +- packages/regexpr/fpmake.pp | 2 +- packages/svgalib/fpmake.pp | 2 +- packages/syslog/fpmake.pp | 2 +- packages/uuid/fpmake.pp | 2 +- 21 files changed, 53 insertions(+), 50 deletions(-) diff --git a/ide/fpmake.pp b/ide/fpmake.pp index 0a6e6d9fa6..f8671e798e 100644 --- a/ide/fpmake.pp +++ b/ide/fpmake.pp @@ -232,13 +232,13 @@ begin AddSrc('readme.txt'); AddSrc('todo.txt'); AddSrc('fp.ans'); - AddSrcFiles('*.tdf'); - AddSrcFiles('*.pas',true); - AddSrcFiles('*.inc',true); - AddSrcFiles('*.rc'); - AddSrcFiles('*.ico'); - AddSrcFiles('*.term'); - AddSrcFiles('*.pt'); + AddSrcFiles('*.tdf',P.Directory); + AddSrcFiles('*.pas',P.Directory,true); + AddSrcFiles('*.inc',P.Directory,true); + AddSrcFiles('*.rc',P.Directory); + AddSrcFiles('*.ico',P.Directory); + AddSrcFiles('*.term',P.Directory); + AddSrcFiles('*.pt',P.Directory); end; P.CleanFiles.Add('$(UNITSOUTPUTDIR)ppheap.ppu'); diff --git a/packages/fcl-base/fpmake.pp b/packages/fcl-base/fpmake.pp index 3e52943275..fc8166a6b1 100644 --- a/packages/fcl-base/fpmake.pp +++ b/packages/fcl-base/fpmake.pp @@ -121,7 +121,7 @@ begin end; T:=P.Targets.addUnit('advancedipc.pp'); // Additional sources - P.Sources.AddSrcFiles('src/win/fclel.*'); + P.Sources.AddSrcFiles('src/win/fclel.*', P.Directory); // Install windows resources P.InstallFiles.Add('src/win/fclel.res',AllWindowsOSes,'$(unitinstalldir)'); diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp index 00b2041a47..181051e443 100644 --- a/packages/fpmkunit/src/fpmkunit.pp +++ b/packages/fpmkunit/src/fpmkunit.pp @@ -732,10 +732,10 @@ Type Function AddExample(const AFiles : String) : TSource; Function AddExample(const AFiles : String; AInstallSourcePath : String) : TSource; Function AddTest(const AFiles : String) : TSource; - procedure AddDocFiles(const AFileMask: string; Recursive: boolean = False; AInstallSourcePath : String = ''); - procedure AddSrcFiles(const AFileMask: string; Recursive: boolean = False); - procedure AddExampleFiles(const AFileMask: string; Recursive: boolean = False; AInstallSourcePath : String = ''); - procedure AddTestFiles(const AFileMask: string; Recursive: boolean = False); + procedure AddDocFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean = False; AInstallSourcePath : String = ''); + procedure AddSrcFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean = False); + procedure AddExampleFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean = False; AInstallSourcePath : String = ''); + procedure AddTestFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean = False); Property SourceItems[Index : Integer] : TSource Read GetSourceItem Write SetSourceItem;default; end; @@ -1374,7 +1374,7 @@ Function GetCustomFpmakeCommandlineOptionValue(const ACommandLineOption : string Function AddProgramExtension(const ExecutableName: string; AOS : TOS) : string; Function GetImportLibraryFilename(const UnitName: string; AOS : TOS) : string; -procedure SearchFiles(const AFileName: string; Recursive: boolean; var List: TStrings); +procedure SearchFiles(AFileName, ASearchPathPrefix: string; Recursive: boolean; var List: TStrings); function GetDefaultLibGCCDir(CPU : TCPU;OS: TOS; var ErrorMessage: string): string; Implementation @@ -2402,7 +2402,7 @@ begin end; -procedure SearchFiles(const AFileName: string; Recursive: boolean; var List: TStrings); +procedure SearchFiles(AFileName, ASearchPathPrefix: string; Recursive: boolean; var List: TStrings); procedure AddRecursiveFiles(const SearchDir, FileMask: string; Recursive: boolean); var @@ -2425,12 +2425,16 @@ var BasePath: string; i: integer; begin + if IsRelativePath(AFileName) and (ASearchPathPrefix<>'') then + AFileName := IncludeTrailingPathDelimiter(ASearchPathPrefix) + AFileName; + BasePath := ExtractFilePath(ExpandFileName(AFileName)); + AddRecursiveFiles(BasePath, ExtractFileName(AFileName), Recursive); CurrDir:=GetCurrentDir; for i := 0 to Pred(List.Count) do - List[i] := ExtractRelativepath(IncludeTrailingPathDelimiter(CurrDir), List[i]); + List[i] := ExtractRelativepath(IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(CurrDir)+ASearchPathPrefix), List[i]); end; Const @@ -3166,53 +3170,52 @@ begin Result.FSourceType:=stTest; end; - -procedure TSources.AddDocFiles(const AFileMask: string; Recursive: boolean; AInstallSourcePath : String = ''); +procedure TSources.AddDocFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean; AInstallSourcePath: String); var List : TStrings; i: integer; begin List := TStringList.Create; - SearchFiles(AFileMask, Recursive, List); + SearchFiles(AFileMask, ASearchPathPrefix, Recursive, List); for i:= 0 to Pred(List.Count) do AddDoc(List[i], AInstallSourcePath); List.Free; end; -procedure TSources.AddSrcFiles(const AFileMask: string; Recursive: boolean); +procedure TSources.AddSrcFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean); var List : TStrings; i: integer; begin List := TStringList.Create; - SearchFiles(AFileMask, Recursive, List); + SearchFiles(AFileMask, ASearchPathPrefix, Recursive, List); for i:= 0 to Pred(List.Count) do AddSrc(List[i]); List.Free; end; -procedure TSources.AddExampleFiles(const AFileMask: string; Recursive: boolean; AInstallSourcePath : String = ''); +procedure TSources.AddExampleFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean; AInstallSourcePath: String); var List : TStrings; i: integer; begin List := TStringList.Create; - SearchFiles(AFileMask, Recursive, List); + SearchFiles(AFileMask, ASearchPathPrefix, Recursive, List); for i:= 0 to Pred(List.Count) do AddExample(List[i], AInstallSourcePath); List.Free; end; -procedure TSources.AddTestFiles(const AFileMask: string; Recursive: boolean); +procedure TSources.AddTestFiles(const AFileMask, ASearchPathPrefix: string; Recursive: boolean); var List : TStrings; i: integer; begin List := TStringList.Create; - SearchFiles(AFileMask, Recursive, List); + SearchFiles(AFileMask, ASearchPathPrefix, Recursive, List); for i:= 0 to Pred(List.Count) do AddTest(List[i]); List.Free; diff --git a/packages/gmp/fpmake.pp b/packages/gmp/fpmake.pp index d7840ef57b..e94b2b8dba 100644 --- a/packages/gmp/fpmake.pp +++ b/packages/gmp/fpmake.pp @@ -30,7 +30,7 @@ begin T:=P.Targets.AddUnit('gmp.pas'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/gtk2/fpmake.pp b/packages/gtk2/fpmake.pp index e10c471dce..d2f54ef5cf 100644 --- a/packages/gtk2/fpmake.pp +++ b/packages/gtk2/fpmake.pp @@ -1278,15 +1278,15 @@ begin AddInclude('htmldocument.inc'); AddInclude('htmlview.inc'); end;} - P.Sources.AddExampleFiles('examples/*',false,'.'); - P.Sources.AddExampleFiles('examples/filechooser/*',false,'filechooser'); - P.Sources.AddExampleFiles('examples/gettingstarted/*',false,'gettingstarted'); - P.Sources.AddExampleFiles('examples/gtk_demo/*',false,'gtk_demo'); - P.Sources.AddExampleFiles('examples/gtkglext/*',false,'gtkglext'); - P.Sources.AddExampleFiles('examples/helloworld/*',false,'helloworld'); - P.Sources.AddExampleFiles('examples/helloworld2/*',false,'helloworld2'); - P.Sources.AddExampleFiles('examples/plugins/*',false,'plugins'); - P.Sources.AddExampleFiles('examples/scribble_simple/*',false,'scribble_simple'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); + P.Sources.AddExampleFiles('examples/filechooser/*',P.Directory,false,'filechooser'); + P.Sources.AddExampleFiles('examples/gettingstarted/*',P.Directory,false,'gettingstarted'); + P.Sources.AddExampleFiles('examples/gtk_demo/*',P.Directory,false,'gtk_demo'); + P.Sources.AddExampleFiles('examples/gtkglext/*',P.Directory,false,'gtkglext'); + P.Sources.AddExampleFiles('examples/helloworld/*',P.Directory,false,'helloworld'); + P.Sources.AddExampleFiles('examples/helloworld2/*',P.Directory,false,'helloworld2'); + P.Sources.AddExampleFiles('examples/plugins/*',P.Directory,false,'plugins'); + P.Sources.AddExampleFiles('examples/scribble_simple/*',P.Directory,false,'scribble_simple'); {$ifndef ALLPACKAGES} diff --git a/packages/ibase/fpmake.pp b/packages/ibase/fpmake.pp index 807bbcf4b8..7699ce0185 100644 --- a/packages/ibase/fpmake.pp +++ b/packages/ibase/fpmake.pp @@ -45,7 +45,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testib40.pp'); P.Targets.AddExampleProgram('testib60.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/libcurl/fpmake.pp b/packages/libcurl/fpmake.pp index 4565d4f5f7..2b24588484 100644 --- a/packages/libcurl/fpmake.pp +++ b/packages/libcurl/fpmake.pp @@ -33,7 +33,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testcurl.pp'); P.Targets.AddExampleProgram('teststream.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} diff --git a/packages/libgbafpc/fpmake.pp b/packages/libgbafpc/fpmake.pp index b06f08a3f5..43cfe0ed16 100644 --- a/packages/libgbafpc/fpmake.pp +++ b/packages/libgbafpc/fpmake.pp @@ -70,7 +70,7 @@ begin AddInclude('mm_types.inc'); end; - P.Sources.AddExampleFiles('examples/*',true,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,true,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/libgd/fpmake.pp b/packages/libgd/fpmake.pp index 7687c8b195..332ef24cf4 100644 --- a/packages/libgd/fpmake.pp +++ b/packages/libgd/fpmake.pp @@ -27,7 +27,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('gdtestcgi.pp'); P.Targets.AddExampleProgram('gdtest.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/libndsfpc/fpmake.pp b/packages/libndsfpc/fpmake.pp index d6dd9e40c7..7e3ac65a5d 100644 --- a/packages/libndsfpc/fpmake.pp +++ b/packages/libndsfpc/fpmake.pp @@ -144,7 +144,7 @@ begin AddInclude('mm_types.inc'); end; - P.Sources.AddExampleFiles('examples/*',true,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,true,'.'); {$ifndef ALLPACKAGES} Run; end; diff --git a/packages/libogcfpc/fpmake.pp b/packages/libogcfpc/fpmake.pp index 88368535f2..1b9e6ce8c3 100644 --- a/packages/libogcfpc/fpmake.pp +++ b/packages/libogcfpc/fpmake.pp @@ -149,7 +149,7 @@ begin AddInclude('wpad.inc'); end; - P.Sources.AddExampleFiles('examples/*',true,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,true,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/libxml/fpmake.pp b/packages/libxml/fpmake.pp index 18f6f4fa09..af1d3975e8 100644 --- a/packages/libxml/fpmake.pp +++ b/packages/libxml/fpmake.pp @@ -88,7 +88,7 @@ begin P.Targets.AddExampleProgram('tree2.pas'); P.Targets.AddExampleProgram('exutils.pas'); P.Targets.AddExampleProgram('reader2.pas'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/odbc/fpmake.pp b/packages/odbc/fpmake.pp index 39b72b75f8..7532d7d217 100644 --- a/packages/odbc/fpmake.pp +++ b/packages/odbc/fpmake.pp @@ -34,7 +34,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testodbc.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/opengles/fpmake.pp b/packages/opengles/fpmake.pp index ebf7743061..7e378fec20 100644 --- a/packages/opengles/fpmake.pp +++ b/packages/opengles/fpmake.pp @@ -30,7 +30,7 @@ begin T:=P.Targets.AddUnit('gles20.pas',[linux,win32,win64,wince,darwin]); P.Targets.AddExampleProgram('examples/es2example1.pas'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} diff --git a/packages/os2units/fpmake.pp b/packages/os2units/fpmake.pp index 87bb89b779..55e217f944 100644 --- a/packages/os2units/fpmake.pp +++ b/packages/os2units/fpmake.pp @@ -46,7 +46,7 @@ begin P.Targets.AddExampleProgram('clktest.pas'); P.Targets.AddExampleProgram('ftptest.pas'); P.Targets.AddExampleProgram('lvmtest.pas'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/postgres/fpmake.pp b/packages/postgres/fpmake.pp index 07af11f32b..652cb4d6ea 100644 --- a/packages/postgres/fpmake.pp +++ b/packages/postgres/fpmake.pp @@ -57,7 +57,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testpg2.pp'); P.Targets.AddExampleProgram('testpg1.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/ptc/fpmake.pp b/packages/ptc/fpmake.pp index 9fdb7ade2e..18fe5b6d60 100644 --- a/packages/ptc/fpmake.pp +++ b/packages/ptc/fpmake.pp @@ -235,7 +235,7 @@ begin P.Targets.AddExampleProgram('tunnel3d.pp'); P.Targets.AddExampleProgram('ptcgl.pp', AllUnixOSes + [win32, win64]); P.Targets.AddExampleProgram('ptcgl2.pp', AllUnixOSes + [win32, win64]); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/regexpr/fpmake.pp b/packages/regexpr/fpmake.pp index e72b33b49a..ffb24bc645 100644 --- a/packages/regexpr/fpmake.pp +++ b/packages/regexpr/fpmake.pp @@ -34,7 +34,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testreg1.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/svgalib/fpmake.pp b/packages/svgalib/fpmake.pp index 0cfa355df4..fbaf4726a2 100644 --- a/packages/svgalib/fpmake.pp +++ b/packages/svgalib/fpmake.pp @@ -28,7 +28,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testvga.pp'); P.Targets.AddExampleProgram('vgatest.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/syslog/fpmake.pp b/packages/syslog/fpmake.pp index ca4dd14f26..47a31cc016 100644 --- a/packages/syslog/fpmake.pp +++ b/packages/syslog/fpmake.pp @@ -24,7 +24,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testlog.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES} Run; diff --git a/packages/uuid/fpmake.pp b/packages/uuid/fpmake.pp index bb85826bd3..fa088fe537 100644 --- a/packages/uuid/fpmake.pp +++ b/packages/uuid/fpmake.pp @@ -29,7 +29,7 @@ begin P.ExamplePath.Add('examples'); P.Targets.AddExampleProgram('testlibuid.pp'); P.Targets.AddExampleProgram('testuid.pp'); - P.Sources.AddExampleFiles('examples/*',false,'.'); + P.Sources.AddExampleFiles('examples/*',P.Directory,false,'.'); {$ifndef ALLPACKAGES}