[fpc-pascal] Introducing PasBuild 1.0.0 - Maven-Inspired Build Tool for Free Pascal
Graeme Geldenhuys
mailinglists at geldenhuys.co.uk
Fri May 1 16:10:45 CEST 2026
On Tuesday, 9 December 2025 20:00:14 BST Marco van de Voort via fpc-pascal
wrote:
> > As for the 'pascal' in the path. I have plans for future expansion,
> > like a src/main/asciidoc or src/main/ipf etc directories. In the
> > future, PasBuild could compile application or framework help files, or
> > the project website, side-by-side with the source code.
>
> I'm a bit wary of everything but the kitchen sink kind of tools. Usually
> they excel in neither aspect very well.
Following up on this comment: the forward planning has already paid off in
spades!
PasBuild’s convention—a preferred project directory layout—means that if it is
followed, the code is logically organised and easy to find, regardless of the
language used.
In the Blaise compiler project, I have:
<root>/rtl/
+- src/main/
+- c/
+ C shim code compiled with gcc
+- pascal/
+ All RTL .pas code here
In fpGUI's DocView (help viewer) module, I have:
<root>/docview/
+- src/main/
+- ipf/
+ .ipf help file source compiled with wipfc
+- pascal/
+ DocView's application code
In both examples, I use a small PasBuild plugin -- local to each project --
that calls out to gcc, qbe, or wipfc to compile the relevant code. It then
outputs the results into the `target/` directory, where they can be processed
further or packaged into a binary release.
The benefits are clear:
* No hard-coded paths.
* No changes were needed in the project.xml file.
* Projects can be quickly cleaned with `pasbuild clean`.
* It works on every platform PasBuild runs on.
On a side note:
PasBuild plugins are language-agnostic and external to
PasBuild itself; they can be a .bat file, a *nix shell
script, or a compiled binary. They integrate seamlessly
in the build pipeline.
Regards,
Graeme
More information about the fpc-pascal
mailing list