Project Groups

From Lazarus wiki
Revision as of 23:19, 22 November 2015 by Mattias2 (talk | contribs) (Bugs / ToDos)


The package is available since Lazarus 1.5.

  • Go to Package > Install/Uninstall Packages.
  • Search in Available for installation for lazprojectgroups'.
  • Select it.
  • Click on Install selection.
  • Save and rebuild IDE. The IDE will ask for confirmation, then it build the package, links it in and restarts itself.


Menu items

  • New project group - creates a new project group with the active project as target.
  • Open project group - opens a dialog to select an .lpg file
  • Open recent project group - list of recently opened groups
  • Save project group - same function as the editor Save button.
  • Saves project group as - same function as the editor More / Save As button.


  • Save - saves the .lpg including the .lpg files of nested project groups.
  • Add project(s) *.lpi
    • Compile one or more build modes - if the project and build mode is active it calls the IDE function, otherwise it uses lazbuild to compile the project. lazbuild automatically compiles outdated packages used by the project.
    • Open, double click - this opens the project in the IDE (closing the currently active).
    • Settings - as open, except it also opens the Project Options.
    • Run - this loads the project in the IDE
  • Add package(s) *.lpk
  • Compile - Compile using lazbuild. It uses lazbuild to compile a package in order to build independent of any project. It uses the target OS and CPU of lazbuild. lazbuild automatically compiles outdated packages used by the package.
    • Open, Settings and double click - opens the package editor of the package.
  • Add Pascal file *.pas;*.pp;*.p
    • Compile - builds the file using the IDE directives.
    • Run - runs the file using the IDE directives.
    • Settings - opens the dialog to setup the IDE directives for Build and Run.
  • Add Project Group *.lpg
    • You can nest project groups.
  • You can add targets multiple times. For example add ProjectA with build mode Debug, then ProjectB, the ProjectA with build mode Release.
  • Compile from here - compiles this target and all targets below.
  • Earlier - moves the target one position up
  • Later - moves the target one position down
  • Remove - removes target from the list and puts it into removed targets.
    • Double click on a removed target opens the project, package, Pascal file
    • When you select a removed target and click Add the target is moved back to the project group at last position.
  • More / Save As - saves the project group as a different file.
    • Shows files and dependencies or project and packages.
  • Reload - reloads the current .lpg, rebuilding the whole tree.

Bugs / ToDos

  • Not yet updating menu items enabled state.
  • Changes in the IDE are not yet updating the project group editor. After altering should click Reload.
  • Changes on disk are not yet recognized. Use Reload.
  • Show active build mode, active project
  • find in files
  • "New" button to create a package/project/file and add to project groups
  • clean function, like the Run / Clean up and build dialog
  • drag and drop within the editor
    • reorder targets
    • move targets between sub groups
    • move file to another project/package
  • save session in project group, allowing to quickly switch the active project
  • load sub projects in IDE to use code navigation for files not in the active project
  • find references in files