Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2025-12

PasBuild v1.1.0 Released - Multi-Module Build Support

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Unknown author

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/