Difference between revisions of "FPMake revamp"

From Lazarus wiki
Jump to navigationJump to search
Line 12: Line 12:
 
This means:
 
This means:
  
* No functionality to adapt the location of .ppu, .o, .frs, binaries, help-files, tests or any other files. (The '''UnitInstallDir''', '''UnitConfigFilesInstallDir''' etc)
+
* No functionality to adapt the location of .ppu, .o, .frs, binaries, help-files, tests or any other files. (The '''UnitInstallDir''', '''UnitConfigFilesInstallDir''' etc)
* No need anymore for macro's ('''$(target)''' and such)
+
* No need anymore for macro's ('''$(target)''' and such)
 +
* Options to do all kind of fancy stuff, like copying files around, calling external applications, zipping files are removed or limited. So they are not tempted to create their own packages-layouts.
 +
* etc
 +
 
 +
== Clear separation of responsibilities ==

Revision as of 22:05, 21 July 2022

Template:FPmake

FPMake is a build-system for Pascal code specifically. It can use a make-over, though.

This document is a place to gather basic design-principles and other ideas for the new version. It is all work-in-progress and input is very welcome.

Basic principles

Keep it simple

One of the things that makes fpmake so complex, is that it tries to do everything that it's predecessors also did. And tries to accommodate all kind of different package-designs as possible. The new version will not do this any more. Other package-managers (yarn, npm) and their onderlying build-systems show that enforcing one design is easier, and in the long term also more feasible.

This means:

  • No functionality to adapt the location of .ppu, .o, .frs, binaries, help-files, tests or any other files. (The UnitInstallDir, UnitConfigFilesInstallDir etc)
  • No need anymore for macro's ($(target) and such)
  • Options to do all kind of fancy stuff, like copying files around, calling external applications, zipping files are removed or limited. So they are not tempted to create their own packages-layouts.
  • etc

Clear separation of responsibilities