[fpc-pascal] Introducing PasBuild 1.0.0 - Maven-Inspired Build Tool for Free Pascal

Michael Van Canneyt michael at freepascal.org
Tue Dec 9 18:54:27 CET 2025



On Tue, 9 Dec 2025, Marco van de Voort via fpc-pascal wrote:

>
> Op 9-12-2025 om 17:28 schreef mailinglists--- via fpc-pascal:
>>
>> I'm excited to announce the first release of PasBuild v1.0.0, a
>> modern build automation tool for Free Pascal projects inspired by
>> Apache Maven!
>
> While I over the years I did some work on various FPC related build 
> systems, I wasn't involved in fpm(unit|make)'s specification and 
> requirements. Still some quick thoughts after scanning through the document:
>
> - The first is not a pasbuild criticism, but a realisation; reading this 
> does make you wonder why fpmake didn't go for the scanning solution and 
> requires such deep specification. Maybe to package only relevant units, 
> and not target Y specific units when building on X ? I have to admit, I 
> don't know the answer.

Nothing stops you from adding a loop that scans the (sub)directories and
adds units as targets. The fpmake from pas2js does that. We could maybe add
a convenience call to automate this.

As you noted, fpmake can do parallelism. In order to process files/packages 
in the correct order, you need to specify the dependencies correctly. This requires
rigourous analysis of the source files (uses clauses and include directives)
with all the correct defines in place etc.

When fpmake was written, there simply was no tool that could do this
correctly. Today such a tool exists, and we can think about automating 
this.

Note that if these dependencies are not correct, you run into all kinds of errors
when doing parallel compilation.
Pierre will probably paint a more complete picture than I do.

fpmake also prepares the installs and zips. 
You need to know what files need to be installed and what not. 
This can be automated to some degree, but never fully.

In summary: it's definitely possible to automate some things more than they
are today, but for complex systems, there will anyway be lots of configuration 
to be done.

And if I need to configure, then I prefer to do it in Pascal rather than XML.

Michael.


More information about the fpc-pascal mailing list