All Units
| Name | Description |
|---|---|
| Command.Add | This unit contains procedures to configure and execute a command to add a new free pascal/lazarus unit tests project based on fpcunit test framework. Also allows to add code documentation capabilities to the project base on pasdoc |
| Command.Build | This unit contains procedures to configure and execute a command to build the specified project or to build the first project found on current dir. |
| Command.Check | This unit contains procedures to configure and execute a command to check the projects and packages for folders and units that lazbuild would not find. |
| Command.Clean | This unit contains procedures to configure and execute a command to clean folders. |
| Command.Coverage | This unit contains procedures to configure and execute a command to measure the coverage of the unit tests with kcov. FPC emits no .gcno/.gcda files, so gcov and lcov do not work with its executables. kcov reads the DWARF line info of the test executable instead and sets a breakpoint on each line, so it needs no instrumentation, only a build with debug info and no optimization: the Coverage build mode that the command adds to the test project. |
| Command.Deps | This unit contains procedures to configure and execute a command to install the boss dependencies of a workspace and make them available to every member. |
| Command.Docs | This unit contains procedures to configure and execute a command to generate the project documentation with pasdoc, from the pages in docs/generate and the project sources. It replaces the docs/generate/build.ps1 script that pasc add –docs used to create. |
| Command.Install | This unit contains the deprecated install command. pasc used to copy itself to $HOME/.pasc and change the PATH (~/.profile on Linux, /etc/paths on macOS, the user PATH on Windows), which was unreliable. The command now only shows how to install pasc with a package manager, manually or from source, and how to remove an old install. It does not change anything. |
| Command.Licenses | This unit contains the licenses command, which shows the license of pasc and the notices of the third-party software included in the executable, so they go with it even when it is copied without the release zip. The texts are the LICENSE and THIRD-PARTY-NOTICES.md files of the repository, embedded by resources/compile.sh. |
| Command.Lint | This unit contains procedures to configure and execute a command to lint the sources with the messages of the compiler: warnings, notes and hints, kept only for the sources of each member and not for the modules installed by boss, which are compiled with the project. Each project is built with lazbuild -B, so every unit is compiled again and repeats its messages, into lib/lint, so the normal build is not touched. |
| Command.New | This unit contains procedures to configure and execute a command to create a new free pascal/lazarus project. With also some basic repo initialization, boss package manager ready and support to use vscode with pre configured tasks. |
| Command.Test | This unit contains procedures to configure and execute a command to create dipslay unit tests colored output. Also should display source code location for each failed test. If a heap trace file is found on test project directory an output with possible leaks is generated. |
| Command.Watch | This unit contains procedures for setting up and executing a watch command in the current directory. If there are changes to files in that directory, specified commands are executed. |
| pasc |
|
| Utils.Adopt | Unit which contains functions to convert an existing project to the workspace layout. The project is first analyzed into a plan, that can be shown without changing anything, and then the plan is applied. Supported layouts: - an app with a .lpi and .lpr at the root (created by pasc new, with a src folder, or a plain lazarus app with its units at the root): it is moved to apps/name, while boss files stay at the root as the workspace manifest; - a repository with several projects or packages (or a .lpg project group): it is adopted in place, pasc.json lists the existing folders as members and nothing is moved. A boss library (sources consumed by other repositories through its "mainsrc") is refused, since it should stay in its own repository. |
| Utils.Boss | Unit which contains functions to clean up the output of the boss dependency manager before showing it to the user. On platforms other than Windows boss tries to install and build bpl-identifier, an internal Delphi-only tool, which always fails and floods the output with errors that have nothing to do with a free pascal project. |
| Utils.Check | Unit which checks the layout of a project or package against its file: the folders with units that are not in the search paths of every build mode, and for a package the units that are not in its files and the files that no longer exist, and the search paths that do not exist, like the modules folder of a workspace that was moved or not installed. FPC does not search the unit folders recursively and a package only compiles the units it lists, so each case would only fail later, with "Can't find unit" at the first uses that reaches it, or not at all while the old .ppu files are still in lib. |
| Utils.Coverage | Unit which has the functions used by pasc coverage: the Coverage build mode of a test project, the report that kcov writes and the units that the report does not have. kcov needs no instrumentation: it reads the DWARF line info of the executable and sets a breakpoint on each line. The Coverage build mode has the options of the Default one, with debug info, no optimization, so lines are not merged or removed, and no heaptrc. Its units go to lib/coverage, so they do not get mixed with the Default build, and its executable stays next to the Default one, with -coverage at the end of the name, because tests often find their files from the folder of the executable. |
| Utils.Interfaces | This unit contains the declaration of the interfaces used in the application. |
| Utils.IO | Unit which has a set of functions for manipulating files and their contents. It has some functions for content search as well. |
| Utils.Leak | Unit which has classes to process the trace file containing memory leak data generated by the application. |
| Utils.Lint | Unit which has the functions used by pasc lint: the messages of the compiler, kept only for the sources of a member, and the configuration in pasc.json that says which ones are ignored and which ones fail. The dependencies that boss installs in modules are compiled from source with the project, so a build with warnings as errors stops in code that is not ours. The messages are filtered by file after the compiler runs instead. |
| Utils.LintRules | Unit which has the own rules of pasc lint, the ones the compiler does not have. The sources are parsed with fcl-passrc, the parser that comes with FPC, also used by fpdoc and pas2js, and the rules walk the tree of each routine. The resolver of fcl-passrc is not used yet, so the rules only need the syntax. Each rule has an id, like PL001, and its findings are messages like the ones of the compiler, so they go through the same ignore and fail of pasc.json and the same output. The tree has the line of each element but not its column, so a finding is at column 1. |
| Utils.Output | Unit which contains functions to display colored output. |
| Utils.Resources | Unit which has functions to work with resources embedded into the application binary file. |
| Utils.Shell | Unit which has functions to work with system operational process execution |
| Utils.Templates | Unit which has the app templates used by pasc new –template. A template is a set of files embedded as resources, written to the app folder with the app name in place of {APPNAME}, and the boss dependencies the app needs. |
| Utils.Tests | Unit which has classes to parse the xml file containing tests report generated by the test application. Should be a file generated by fpcunit using xml format option. |
| Utils.Watcher | This unit contains a standard implmentation for IPathWatcher. |
| Utils.Workspace | Unit which contains functions to handle a pasc workspace: a repository with multiple apps and internal packages described by a pasc.json file at its root. Members reference each other as lazarus packages: the .lpi of an app (or the .lpk of a package) lists the required package with a relative DefaultFilename, so lazbuild builds it without a global registration. |
Generated by PasDoc 1.0.4.