diff --git a/utils/fpcmkcfg/fpcmkcfg.pp b/utils/fpcmkcfg/fpcmkcfg.pp index 9d1c80d3d6..ca4d3f0dec 100644 --- a/utils/fpcmkcfg/fpcmkcfg.pp +++ b/utils/fpcmkcfg/fpcmkcfg.pp @@ -1,5 +1,6 @@ {$mode objfpc} {$H+} +{$macro on} { This file is part of Free Pascal Build tools Copyright (c) 2005 by Michael Van Canneyt @@ -41,6 +42,19 @@ uses {$i fppkg.inc} {$i default.inc} +{$ifndef package_version_major} + {$define package_version_major:=0} +{$endif} +{$ifndef package_version_minor} + {$define package_version_minor:=0} +{$endif} +{$ifndef package_version_micro} + {$define package_version_micro:=0} +{$endif} +{$ifndef package_version_build} + {$define package_version_build:=0} +{$endif} + Const BuildVersion={$I %FPCVERSION%}; BuildTarget={$I %FPCTARGET%}; @@ -51,6 +65,10 @@ Const ExeExt = '.exe'; {$endif unix} + version_major = package_version_major; + version_minor = package_version_minor; + version_micro = package_version_micro; + version_build = package_version_build; Resourcestring SUsage00 = 'Usage: %s [options]'; @@ -71,6 +89,9 @@ Resourcestring Susage120 = ' -2 use built in fp.ini template'; Susage130 = ' -3 use built in fppkg.cfg template'; Susage140 = ' -4 use built in fppkg default compiler template'; + + SVersion = 'Version: %s'; + SErrUnknownOption = 'Error: Unknown option.'; SErrArgExpected = 'Error: Option "%s" requires an argument.'; SErrIncompletePair = 'Error: Incomplete name-value pair "%s".'; @@ -320,6 +341,24 @@ begin Halt(1); end; +Procedure Version; +var + Version: string; +begin + Version := ''; + if version_major <> -1 then + Version := Version + IntToStr(version_major); + if version_minor <> -1 then + Version := Version + '.' + IntToStr(version_minor); + if version_micro <> -1 then + Version := Version + '.' + IntToStr(version_micro); + if version_build <> -1 then + Version := Version + '-' + IntToStr(version_build); + + Writeln(Format(SVersion,[Version])); + Halt(0); +end; + Procedure UnknownOption(Const S : String); begin @@ -398,6 +437,7 @@ begin else case S[2] of 'v' : Verbose:=True; + 'V' : Version; 'h' : Usage; 'b' : ShowBuiltinCommand := true; 'm' : begin diff --git a/utils/fpcmkcfg/fpmake.pp b/utils/fpcmkcfg/fpmake.pp index 5ada3b815f..6a7788aa68 100644 --- a/utils/fpcmkcfg/fpmake.pp +++ b/utils/fpcmkcfg/fpmake.pp @@ -11,6 +11,7 @@ Var P : TPackage; T : TTarget; Data2IncBin : string; + VS: string; begin With Installer do @@ -31,6 +32,16 @@ begin P.Directory:=ADirectory; P.Version:='3.3.1'; + P.Options.Add('-Sm'); + Str(P.PackageVersion.Major, VS); + P.Options.Add('-dpackage_version_major:='+VS); + Str(P.PackageVersion.Minor, VS); + P.Options.Add('-dpackage_version_minor:='+VS); + Str(P.PackageVersion.Micro, VS); + P.Options.Add('-dpackage_version_micro:='+VS); + Str(P.PackageVersion.Build, VS); + P.Options.Add('-dpackage_version_build:='+VS); + P.Dependencies.Add('fcl-base'); P.Dependencies.Add('fpmkunit');