From fc8204d957cb7b4c170b9982321b6513ae1a6184 Mon Sep 17 00:00:00 2001 From: Pascal Packaging Team Date: Fri, 5 Jan 2024 08:40:08 +0100 Subject: [PATCH] relpath This patch adds an utility for computing relative path according to a given base directory. This is useful for libraries that are to install .lpk in order to be used with lazarus. As these libraries may be compiled without need to build depend on Lazarus, we add it in fp-utils package which is likely to be used by any big project which build depends on fp-compiler. Gbp-Pq: Name relpath.patch --- fpcsrc/utils/fpmake.pp | 1 + fpcsrc/utils/relpath.pas | 16 ++++++++++++++++ install/man/man1/relpath.1 | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 fpcsrc/utils/relpath.pas create mode 100644 install/man/man1/relpath.1 diff --git a/fpcsrc/utils/fpmake.pp b/fpcsrc/utils/fpmake.pp index ccd705b4..fc2c0719 100644 --- a/fpcsrc/utils/fpmake.pp +++ b/fpcsrc/utils/fpmake.pp @@ -89,6 +89,7 @@ begin P.Targets.AddProgram('mkinsadd.pp'); P.Targets.AddProgram('postw32.pp'); P.Targets.AddProgram('rmcvsdir.pp'); + P.Targets.AddProgram('relpath.pas'); P.Targets.AddProgram('grab_vcsa.pp',[linux]); T:=P.Targets.AddProgram('fpcsubst.pp'); T.Dependencies.AddUnit('usubst'); diff --git a/fpcsrc/utils/relpath.pas b/fpcsrc/utils/relpath.pas new file mode 100644 index 00000000..bbf7c3c5 --- /dev/null +++ b/fpcsrc/utils/relpath.pas @@ -0,0 +1,16 @@ +program relpath; +uses + SysUtils; + +var + BaseDir: string; + TargetDir: string; +begin + TargetDir := ParamStr(1); + BaseDir := ParamStr(2); + if BaseDir = '' + then begin + BaseDir := GetCurrentDir; + end; + WriteLn(ExtractRelativePath(IncludeTrailingPathDelimiter(BaseDir), TargetDir)); +end. diff --git a/install/man/man1/relpath.1 b/install/man/man1/relpath.1 new file mode 100644 index 00000000..0c1c0206 --- /dev/null +++ b/install/man/man1/relpath.1 @@ -0,0 +1,32 @@ +.TH relpath 1 "7 May 2013" "Free Pascal" "Relative path computing tool" +.SH NAME +relpath \- The Free Pascal file deletion tool. + +.SH SYNOPSIS + +.B relpath +[\fIfile or directory\fR] [\fIbase directory\fR] + +.SH DESCRIPTION + +.B relpath +This is an utility for computing relative path according to a given base +directory. This is useful for libraries that are to install .lpk in order to be +used with lazarus. As these libraries may be compiled without need to build +depend on Lazarus, we add it in fp-utils package which is likely to be used by +any big project which build depends on fp-compiler. + +.SH USAGE + +.B relpath +takes the following arguments: +.TP +.B file or directory +The target file or directory for which relative path should be computed. +.TP +.B base directory +The base directory according to which the relative patch should be computed. + +.SH SEE ALSO +.IP +.BR readlink (1) -- 2.30.2