Sub sub modules. #22
Replies: 2 comments 7 replies
-
|
It's already supported. Just you don't need to dot-notation. Simply reference the module you want to compile, and PasBuild will figure our any dependencies and compile everything in order so your selected target module compiles. Looking at fpGUI as an example: graemeg@graeme-linux-desktop:/data/devel/fpgui (develop)$ pasbuild dependency-tree --all
[INFO] PasBuild 1.9.0-git — Born 2026-05-14. Raised by Graeme Geldenhuys.
[INFO] Compiler: FPC (fpc)
[INFO] Executing goal: dependency-tree
[INFO] ------------------------------------------------------------------------
[INFO] Dependency Tree
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] fpgui-svg2hvif 2.1.0 [application]
[INFO] (no dependencies)
[INFO]
[INFO] fpgui-framework 2.1.0 [library]
[INFO] └─ fpgui-svg2hvif [module]
[INFO]
[INFO] fpgui-ide 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] fpgui-docview 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] fpgui-uidesigner 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] fpgui-vertex 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] fpgui-examples 2.1.0 [aggregator]
[INFO] (no dependencies)
[INFO]
[INFO] examples-gui 2.1.0 [aggregator]
[INFO] (no dependencies)
[INFO]
[INFO] examples-gui-aboutdialog 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] examples-gui-alignment 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] examples-gui-lmborder 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] examples-gui-lmflow 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] examples-gui-lmmig 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] examples-gui-stdimages 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] examples-gui-treeview 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] pasbuild-docs-compile 2.1.0 [application]
[INFO] (no dependencies)
[INFO]
[INFO] fpgui-hvif-dump 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] fpgui-imgcnv 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
[INFO] fpgui-vertex-canvas-demo 2.1.0 [application]
[INFO] └─ fpgui-framework [module]
[INFO]
graemeg@graeme-linux-desktop:/data/devel/fpgui (develop)$ pasbuild compile -m examples-gui-lmmig -p unix
[INFO] PasBuild 1.9.0-git — Born 2026-05-14. Raised by Graeme Geldenhuys.
[INFO] Compiler: FPC (fpc)
[INFO] Executing goal: reactor-compile
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order (selected: examples-gui-lmmig):
[INFO]
[INFO] fpgui-svg2hvif
[INFO] fpgui-framework
[INFO] examples-gui-lmmig
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building fpgui-svg2hvif [1/3]
[INFO] ------------------------------------------------------------------------
[INFO] Executing goal: process-resources
[INFO] No resources directory found (src/main/resources), skipping
[INFO] Executing goal: compile
[INFO] Compiling project...
[INFO] Found 2 source file(s)
[INFO] Activating profile: unix
[INFO] Build successful (see target/pasbuild-status/compile/compiler.log for details)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS [ 1.148 s]
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building fpgui-framework [2/3]
[INFO] ------------------------------------------------------------------------
[INFO] Executing goal: process-resources
[INFO] Processing resources from src/main/resources...
[INFO] Filtering enabled
[INFO] Resources processed successfully
[INFO] Executing goal: compile
[INFO] Compiling project...
[INFO] Generating bootstrap program for library...
[INFO] Discovered 259 units
[INFO] Bootstrap program generated: target/bootstrap_program.pas
[INFO] Found 275 source file(s)
[INFO] Found 62 include file(s)
[INFO] Activating profile: unix
[INFO] Build successful (see target/pasbuild-status/compile/compiler.log for details)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS [ 6.278 s]
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building examples-gui-lmmig [3/3]
[INFO] ------------------------------------------------------------------------
[INFO] Executing goal: process-resources
[INFO] No resources directory found (src/main/resources), skipping
[INFO] Executing goal: compile
[INFO] Compiling project...
[INFO] Found 9 source file(s)
[INFO] Activating profile: unix
[INFO] Build successful (see target/pasbuild-status/compile/compiler.log for details)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS [ 1.218 s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] fpgui-svg2hvif ........ SUCCESS [ 1.148 s]
[INFO] fpgui-framework ....... SUCCESS [ 6.278 s]
[INFO] examples-gui-lmmig .... SUCCESS [ 1.218 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.644 s
[INFO] ------------------------------------------------------------------------
|
Beta Was this translation helpful? Give feedback.
-
|
ohhhh that's good to know 🤣 sorry for the noise. I need to update |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I think it would be really useful if a “super” parent project could target nested modules directly, something like:
pasbuild --module mymodule.submodule
Where
mymoduleis apom-style module, and you can keep going deeper (mymodule.submodule.child, etc.).Right now it feels like you can only really target top-level modules easily, which gets a bit awkward once a project starts having more structure. Being able to point directly at a nested module from the root would make things a lot smoother, especially for scripting or quick builds.
Why this helps
Idea in short
--moduleaccept dot-separated pathsBeta Was this translation helpful? Give feedback.
All reactions