e4f3f8fd69
Fix all documentation references of "OS X" to be "macOS", Apple's new brand. Code is left unchanged because we're matching .NET Core.
35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
Internals of build process
|
|
=========================================
|
|
|
|
The purpose of this document is to explain build process **internals** with subtle nuances.
|
|
This document is not by any means complete.
|
|
The ultimate source of truth is the code in `.\build.psm1` that's getting executed on the corresponding CI system.
|
|
|
|
This document assumes that you can successfully build PowerShell from sources for your platform.
|
|
|
|
|
|
Top directory
|
|
-----------
|
|
|
|
We are calling `dotnet` tool build for `$Top` directory
|
|
|
|
- `src\powershell-win-core` for CoreCLR on Windows.
|
|
- `src\powershell-unix` for CoreCLR on Linux and macOS.
|
|
- `src\powershell-win-full` for FullCLR builds (Windows only)
|
|
|
|
### Dummy dependencies
|
|
|
|
We use dummy dependencies between project.json files to leverage `dotnet` build functionality.
|
|
For example, `src\powershell-win-core\project.json` has dependency on `Microsoft.PowerShell.PSReadLine`,
|
|
but in reality, there is no build dependency.
|
|
|
|
Dummy dependencies allows us to build just `$Top` folder, instead of building several folders.
|
|
|
|
### Dummy dependencies rules
|
|
|
|
* If assembly is part of FullCLR build,
|
|
it should be listed as a dependency for FullCLR $Top folder (src\powershell-win-full)
|
|
|
|
* If assembly is part of CoreCLR build,
|
|
it should be listed as a dependency for $Top folder (src\powershell-unix or src\powershell-win-core)
|