[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