Browse Source

Avoid rewriting revision.inc if content is unchanged

git-svn-id: trunk@45738 -
pierre 5 years ago
parent
commit
6b4c97f495
1 changed files with 18 additions and 12 deletions
  1. 18 12
      utils/fpcm/fpmake.pp

+ 18 - 12
utils/fpcm/fpmake.pp

@@ -132,6 +132,8 @@ begin
             SVNProcess.Free;
           end;
 
+          oldrev:=0;
+          olddate:='';
           // Write the latest change-date and revision to file revision.inc
           system.assign(f,BuildEngine.AddPathPrefix(P,'revision.inc'));
           io:=ioresult;
@@ -167,19 +169,23 @@ begin
                 end;
 
             end;
-
-          BuildEngine.Log(vlCommand,'revision.inc set to '''+lastdate+' rev '+IntToStr(lastrev)+'''');
-
-          system.assign(f,BuildEngine.AddPathPrefix(P,'revision.inc'));
-          rewrite(f);
-          io:=ioresult;
-          if io <> 0 then
+          if (lastdate=olddate) and (lastrev=oldrev) then
+            BuildEngine.Log(vlCommand,'revision.inc unchanged')
+           else
             begin
-              BuildEngine.Log(vlError, 'Error opening revision.inc for writing');
-              halt(3);
-            end;
-          Writeln(f,'''',lastdate,' rev ',lastrev,'''');
-          close(f);
+              BuildEngine.Log(vlCommand,'revision.inc set to '''+lastdate+' rev '+IntToStr(lastrev)+'''');
+
+              system.assign(f,BuildEngine.AddPathPrefix(P,'revision.inc'));
+              rewrite(f);
+              io:=ioresult;
+              if io <> 0 then
+                begin
+                  BuildEngine.Log(vlError, 'Error opening revision.inc for writing');
+                  halt(3);
+                end;
+              Writeln(f,'''',lastdate,' rev ',lastrev,'''');
+              close(f);
+            end
         end
       else
         BuildEngine.Log(vlWarning,'Subversion executable (svn) not found. Svn-revision in fpcmake executable might be out of date.');