@@ -6,7 +6,7 @@ description: "FieldWorks build guidelines and inner-loop tips"
66
77## Quick Start
88
9- FieldWorks uses the ** MSBuild Traversal SDK** for declarative build ordering. All builds use ` dirs .proj` .
9+ FieldWorks uses the ** MSBuild Traversal SDK** for declarative build ordering. All builds use ` FieldWorks .proj` .
1010
1111### Windows (PowerShell)
1212``` powershell
@@ -36,13 +36,13 @@ FieldWorks uses the **MSBuild Traversal SDK** for declarative build ordering. Al
3636- Declarative dependency ordering (110+ projects organized into 21 phases)
3737- Automatic parallel builds where safe
3838- Better incremental build performance
39- - Works with ` dotnet build dirs .proj `
39+ - Works with ` dotnet build FieldWorks .proj `
4040- Clear error messages when prerequisites missing
4141
4242## Build Architecture
4343
4444### Traversal Build Phases
45- The ` dirs .proj` file defines a declarative build order:
45+ The ` FieldWorks .proj` file defines a declarative build order:
4646
47471 . ** Phase 1** : FwBuildTasks (build infrastructure)
48482 . ** Phase 2** : Native C++ components (via ` allCppNoTest ` target)
@@ -78,9 +78,9 @@ Run: msbuild Build\Src\NativeBuild\NativeBuild.csproj
7878 - Generated code out of sync (delete ` Src/Common/ViewsInterfaces/Views.cs ` )
7979
8080### Choose the right path
81- - ** Full system build** : ` .\build.ps1 ` or ` ./build.sh ` (uses dirs .proj traversal)
82- - ** Direct MSBuild** : ` msbuild dirs .proj /p:Configuration=Debug /p:Platform=x64 /m `
83- - ** Dotnet CLI** : ` dotnet build dirs .proj ` (requires .NET SDK)
81+ - ** Full system build** : ` .\build.ps1 ` or ` ./build.sh ` (uses FieldWorks .proj traversal)
82+ - ** Direct MSBuild** : ` msbuild FieldWorks .proj /p:Configuration=Debug /p:Platform=x64 /m `
83+ - ** Dotnet CLI** : ` dotnet build FieldWorks .proj ` (requires .NET SDK)
8484- ** Single project** : ` msbuild Src/<Path>/<Project>.csproj ` (for quick iterations)
8585- ** Native only** : ` msbuild Build\Src\NativeBuild\NativeBuild.csproj ` (Phase 2 of traversal)
8686- ** Installer** : See ` Build/Installer.targets ` for installer build targets (requires WiX Toolset)
@@ -114,18 +114,18 @@ msbuild Build\Src\NativeBuild\NativeBuild.csproj /p:Configuration=Debug /p:Platf
114114### Build Order Issues
115115** Symptom** : Project X fails because it can't find assembly from project Y
116116
117- ** Solution** : The traversal build handles this automatically through ` dirs .proj` :
117+ ** Solution** : The traversal build handles this automatically through ` FieldWorks .proj` :
118118- Check that the dependency is listed in an earlier phase than the dependent
119- - Verify both projects are included in ` dirs .proj`
120- - If you find a missing dependency, update ` dirs .proj` phase ordering
119+ - Verify both projects are included in ` FieldWorks .proj`
120+ - If you find a missing dependency, update ` FieldWorks .proj` phase ordering
121121
122122### Parallel Build Race Conditions
123123** Symptom** : Random failures in parallel builds
124124
125125** Solution** :
126126- Traversal SDK respects dependencies and avoids races
127127- If you encounter race conditions, reduce parallelism: ` .\build.ps1 -MsBuildArgs @('/m:1') `
128- - Report race conditions so dependencies can be added to ` dirs .proj`
128+ - Report race conditions so dependencies can be added to ` FieldWorks .proj`
129129
130130### Clean Build Required
131131``` powershell
@@ -150,39 +150,39 @@ msbuild Build\Src\NativeBuild\NativeBuild.csproj /p:Configuration=Debug /p:Platf
150150### Direct MSBuild Invocation
151151``` powershell
152152# Traversal build with MSBuild
153- msbuild dirs .proj /p:Configuration=Debug /p:Platform=x64 /m
153+ msbuild FieldWorks .proj /p:Configuration=Debug /p:Platform=x64 /m
154154
155155# With tests
156- msbuild dirs .proj /p:Configuration=Debug /p:Platform=x64 /p:action=test /m
156+ msbuild FieldWorks .proj /p:Configuration=Debug /p:Platform=x64 /p:action=test /m
157157```
158158
159159### Building Specific Project Groups
160160``` powershell
161161# Native C++ only (Phase 2 of traversal)
162162msbuild Build\Src\NativeBuild\NativeBuild.csproj
163163
164- # Specific phase from dirs .proj (not typically needed)
164+ # Specific phase from FieldWorks .proj (not typically needed)
165165# The traversal build handles ordering automatically
166166```
167167
168168### Dotnet CLI (Traversal Only)
169169``` powershell
170- # Works with dirs .proj
171- dotnet build dirs .proj
170+ # Works with FieldWorks .proj
171+ dotnet build FieldWorks .proj
172172
173173# Restore packages
174- dotnet restore dirs .proj --packages packages/
174+ dotnet restore FieldWorks .proj --packages packages/
175175```
176176
177177## Don't modify build files lightly
178- - ** ` dirs .proj` ** : Traversal build order; verify changes don't create circular dependencies
178+ - ** ` FieldWorks .proj` ** : Traversal build order; verify changes don't create circular dependencies
179179- ** ` Build/mkall.targets ` ** : Native C++ build orchestration; changes affect all developers
180180- ** ` Build/SetupInclude.targets ` ** : Environment setup; touch only when absolutely needed
181181- ** ` Directory.Build.props ` ** : Shared properties for all projects; changes affect everyone
182182
183183## References
184184- ** CI/CD** : ` .github/workflows/ ` for CI steps
185185- ** Build Infrastructure** : ` Build/ ` for targets/props and build infrastructure
186- - ** Traversal Project** : ` dirs .proj` for declarative build order
186+ - ** Traversal Project** : ` FieldWorks .proj` for declarative build order
187187- ** Shared Properties** : ` Directory.Build.props ` for all projects
188188- ** Native Build** : ` Build/mkall.targets ` for C++ build orchestration
0 commit comments