[fpc-devel] Lazarus IDE / Packages - SetAlternativeCompile for Before and After

Mathias m_burkhard at gmx.ch
Sun Sep 9 18:25:16 CEST 2018


Hello Lazarus team,

i build an AVR package for the Lazarus IDE.
It is absolutely necessary, that I can enter something with compiler 
commands, with "afterwards". There comes in an avrdude call.

This works, I made the following changes in Lazarus.
It would be nice who the Lazarus team could put this firmly in place.

Even more ingenious would be who you could even read it out, eg. with 
"GetAlternativeCompile"

The current state of my AVR package I have on GitHub. 
https://github.com/sechshelme/AVR-Lazarus/tree/master/AVR_Package



// === Lazarus 1.9.0 r58920M ===

        

       // components/ideintf/compoptsintf.pas: Zeile 454

       // old

          procedureSetAlternativeCompile(constCommand:string;
       ScanFPCMsgs:boolean); virtual; abstract;// disable normal compile and call this instead

       // new

          procedureSetAlternativeCompile(constCommand:string;
       ScanFPCMsgs:boolean; After:Boolean=False); virtual; abstract;// disable normal compile and call this instead

        

        

       // ide/compileroptions.pp: Zeile 499 + 3695

        

       // old
       

          procedureSetAlternativeCompile(constCommand:string;
       ScanFPCMsgs:boolean); override;

       .....

       procedureTBaseCompilerOptions.SetAlternativeCompile(constCommand:string;

         ScanFPCMsgs:boolean);

       begin

         CompilerPath:='';

         ExecuteBefore.Command:=Command;

        ifScanFPCMsgsthen

           ExecuteBefore.Parsers.Text:=SubToolFPC+LineEnding+SubToolMake

        else

           ExecuteBefore.Parsers.Clear;

       end;

        

       // new

          procedureSetAlternativeCompile(constCommand:string;
       ScanFPCMsgs:boolean; After:Boolen); override;

       .....

       procedureTBaseCompilerOptions.SetAlternativeCompile(constCommand:string;

         ScanFPCMsgs:boolean; After:Boolen);

       begin

         CompilerPath:='';

        

        ifAfterthenbegin

           ExecuteAfter.Command:=Command;

          ifScanFPCMsgsthen

             ExecuteAfter.Parsers.Text:=SubToolFPC+LineEnding+SubToolMake

          else

             ExecuteAfter.Parsers.Clear;

        endelsebegin

           ExecuteBefore.Command:=Command;

          ifScanFPCMsgsthen

             ExecuteBefore.Parsers.Text:=SubToolFPC+LineEnding+SubToolMake

          else

             ExecuteBefore.Parsers.Clear;

        end;

       end;

        

       // ide/project.pp: Zeile 551 + 6255

        

       // old

          procedureSetAlternativeCompile(constCommand:string;
       ScanFPCMsgs:boolean); override;

       .....

       procedureTProjectCompilerOptions.SetAlternativeCompile(constCommand:string;

         ScanFPCMsgs:boolean);

       begin

        inheritedSetAlternativeCompile(Command,ScanFPCMsgs);

         CompileReasons:=[];

       end;

        

       // new

          procedureSetAlternativeCompile(constCommand:string;
       ScanFPCMsgs:boolean; After:Boolean); override;

       .....

       procedureTProjectCompilerOptions.SetAlternativeCompile(constCommand:string;

         ScanFPCMsgs:boolean; After:Boolean);

       begin

        inheritedSetAlternativeCompile(Command,ScanFPCMsgs,After);

         CompileReasons:=[];

       end;

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20180909/8883a6c0/attachment.html>


More information about the fpc-devel mailing list