Browse Source

* reading of search paths fixed to work as expected

peter 26 years ago
parent
commit
7ad9983cb7
1 changed files with 38 additions and 6 deletions
  1. 38 6
      compiler/options.pas

+ 38 - 6
compiler/options.pas

@@ -34,6 +34,10 @@ type
     NoPressEnter,
     NoPressEnter,
     DoWriteLogo : boolean;
     DoWriteLogo : boolean;
     FileLevel : longint;
     FileLevel : longint;
+    ParaIncludePath,
+    ParaUnitPath,
+    ParaObjectPath,
+    ParaLibraryPath : string;
     Constructor Init;
     Constructor Init;
     Destructor Done;
     Destructor Done;
     procedure WriteLogo;
     procedure WriteLogo;
@@ -482,16 +486,28 @@ begin
                        'D' : utilsdirectory:=FixPath(More,true);
                        'D' : utilsdirectory:=FixPath(More,true);
                        'e' : SetRedirectFile(More);
                        'e' : SetRedirectFile(More);
                        'E' : OutputExeDir:=FixPath(More,true);
                        'E' : OutputExeDir:=FixPath(More,true);
-                       'i' : AddPathToList(includesearchpath,More,not firstpass);
+                       'i' : if firstpass then
+                              AddPathToList(includesearchpath,More,false)
+                             else
+                              AddPathToList(ParaIncludePath,More,false);
                        'g' : Message2(option_obsolete_switch_use_new,'-Fg','-Fl');
                        'g' : Message2(option_obsolete_switch_use_new,'-Fg','-Fl');
-                       'l' : AddPathToList(LibrarySearchPath,More,not firstpass);
+                       'l' : if firstpass then
+                              AddPathToList(LibrarySearchPath,More,false)
+                             else
+                              AddPathToList(ParaLibraryPath,More,false);
                        'L' : if More<>'' then
                        'L' : if More<>'' then
                               ParaDynamicLinker:=More
                               ParaDynamicLinker:=More
                              else
                              else
                               IllegalPara(opt);
                               IllegalPara(opt);
-                       'o' : AddPathToList(objectsearchpath,More,not firstpass);
+                       'o' : if firstpass then
+                              AddPathToList(objectsearchpath,More,false)
+                             else
+                              AddPathToList(ParaObjectPath,More,false);
                        'r' : Msgfilename:=More;
                        'r' : Msgfilename:=More;
-                       'u' : AddPathToList(unitsearchpath,More,not firstpass);
+                       'u' : if firstpass then
+                              AddPathToList(unitsearchpath,More,false)
+                             else
+                              AddPathToList(ParaUnitPath,More,false);
                        'U' : OutputUnitDir:=FixPath(More,true);
                        'U' : OutputUnitDir:=FixPath(More,true);
                       else
                       else
                         IllegalPara(opt);
                         IllegalPara(opt);
@@ -554,7 +570,10 @@ begin
                           IllegalPara(Opt);
                           IllegalPara(Opt);
                         end;
                         end;
                      end;
                      end;
-              'I' : AddPathToList(includesearchpath,More,not firstpass);
+              'I' : if firstpass then
+                     AddPathToList(includesearchpath,More,false)
+                    else
+                     AddPathToList(ParaIncludePath,More,false);
               'k' : if more<>'' then
               'k' : if more<>'' then
                      ParaLinkOptions:=ParaLinkOptions+' '+More
                      ParaLinkOptions:=ParaLinkOptions+' '+More
                     else
                     else
@@ -963,6 +982,10 @@ begin
   NoPressEnter:=false;
   NoPressEnter:=false;
   FirstPass:=false;
   FirstPass:=false;
   FileLevel:=0;
   FileLevel:=0;
+  ParaIncludePath:='';
+  ParaObjectPath:='';
+  ParaUnitPath:='';
+  ParaLibraryPath:='';
 end;
 end;
 
 
 
 
@@ -1152,6 +1175,12 @@ begin
        inputextension:=target_os.pasext;
        inputextension:=target_os.pasext;
    end;
    end;
 
 
+{ Add paths specified with parameters to the searchpaths }
+  AddPathToList(UnitSearchPath,Option^.ParaUnitPath,true);
+  AddPathToList(ObjectSearchPath,Option^.ParaObjectPath,true);
+  AddPathToList(IncludeSearchPath,Option^.ParaIncludePath,true);
+  AddPathToList(LibrarySearchPath,Option^.ParaLibraryPath,true);
+
 { add unit environment and exepath to the unit search path }
 { add unit environment and exepath to the unit search path }
   if inputdir<>'' then
   if inputdir<>'' then
    AddPathToList(Unitsearchpath,inputdir,true);
    AddPathToList(Unitsearchpath,inputdir,true);
@@ -1188,7 +1217,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.19  1999-09-01 22:07:20  peter
+  Revision 1.20  1999-09-03 09:31:22  peter
+    * reading of search paths fixed to work as expected
+
+  Revision 1.19  1999/09/01 22:07:20  peter
     * turn off stripping if profiling or debugging
     * turn off stripping if profiling or debugging
 
 
   Revision 1.18  1999/08/28 17:46:10  peter
   Revision 1.18  1999/08/28 17:46:10  peter