From mailinglists at geldenhuys.co.uk Fri May 1 16:10:45 2026 From: mailinglists at geldenhuys.co.uk (Graeme Geldenhuys) Date: Fri, 01 May 2026 15:10:45 +0100 Subject: [fpc-pascal] Introducing PasBuild 1.0.0 - Maven-Inspired Build Tool for Free Pascal In-Reply-To: References: <3485d6028b621735905e629559bf7ace@geldenhuys.co.uk> Message-ID: <10802764.qlrv2o5Tob@graeme-linux-desktop> 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: /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: /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