[fpc-pascal] PasBuild v1.1.0 Released - Multi-Module Build Support
mailinglists at geldenhuys.co.uk
mailinglists at geldenhuys.co.uk
Fri Dec 19 17:54:48 CET 2025
PASBUILD v1.1.0 IS NOW AVAILABLE
GitHub: https://github.com/graemeg/PasBuild
I am pleased to announce the release of PasBuild v1.1.0, featuring
comprehensive multi-module build support for organising related
projects within a single build tree.
Multi-module build support
--------------------------
The major feature in this release enables you to structure complex
projects as a collection of coordinated modules:
- Aggregator projects that declare and coordinate child modules
- Three packaging types: 'pom' (aggregator), 'library' (shared code),
and 'application' (executables)
- Automatic dependency-based build ordering with cycle detection
- Simplified module references that replace brittle relative path
hacks
- Automatic bootstrap program generation for library modules
What this solves
----------------
Previously, building related projects required manual orchestration.
With v1.1.0:
- No more manual build ordering - the system handles it automatically
- No more hardcoding relative paths to framework artifacts in your
projects
- No more separate repositories for buildable units that should be
coordinated
- Missing or circular dependencies are caught at configuration time,
not compile time
Common use cases
----------------
Multi-module support excels for:
- Framework + Example Applications: Build a GUI toolkit and its demos
together
- Shared Libraries + Applications: Create common utilities used by
multiple executables
- Layered Frameworks: Foundation → Graphics → Widgets → Applications
- Plugin Architectures: Core application with separately-built
extension modules
Single command builds
---------------------
Run a single pasbuild compile command from your aggregator root
directory, and the system:
1. Discovers all modules
2. Calculates correct build order from your declared dependencies
3. Builds each module in sequence
4. Stops on first failure with clear error messages
Build only a specific module and its dependencies using the -m flag,
or run from a child module directory for selective builds.
Migration path
--------------
Existing single-project builds are completely unchanged. Multi-module
is opt-in. If you have related projects today, you can migrate at your
own pace using the new project structure and packaging types.
Getting started
---------------
Documentation includes:
- Updated quick-start guide with multi-module examples
- Sample projects demonstrating simple and complex scenarios
- Multi-module project creation via 'pasbuild init'
- Full design specification with architecture details
The pasbuild init command now guides you through creating either
single-project or multi-module structures.
Testing and stability
---------------------
The multi-module implementation underwent a structured and phased
development with comprehensive testing at each stage, covering module
discovery, dependency resolution, build ordering, and error handling.
Download PasBuild v1.1.0 and start organising your related projects as
a unified build system.
Your feedback and contributions are welcome! Please kindly use the
GitHub Issue Tracker. More features to come soon. :)
Regards,
- Graeme -
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
More information about the fpc-pascal
mailing list