summaryrefslogtreecommitdiff
path: root/compilerswitchupdateunit.pas
blob: 0b2814b3602b63bff1bd1169a176e3bd7e54145b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
unit compilerswitchupdateunit;

{$mode objfpc}{$H+}

{$INCLUDE Compilerswitches.inc}
{$R compilerswitchupdateunit.rc}

interface

uses
  Classes, SysUtils;

implementation

uses myStringListUnit,refreshExecutableUnit;

var
  ciRuntime,ciCompiletime: tMyStringList;
  update:                  boolean;

initialization
  ciRuntime:=tMyStringList.create;
  ciCompiletime:=tMyStringList.create;

  ciRuntime.loadFromFile(extractFilePath(paramstr(0))+'/Compilerswitches.inc');
  ciCompiletime.loadFromResource('COMPILERSWITCHES_INC');

  update:=ciCompiletime.text<>ciRuntime.text;

  ciCompiletime.free;
  ciRuntime.free;

  if update then begin
    writeln(stderr,'Recompiling due to new compiler switches.');
    refreshExecutable(extractFilePath(paramstr(0)));
  end;
end.