Skip to content

Commit 2ffc6bc

Browse files
committed
[WindowsBuild] Graphical overview
1 parent db7b80f commit 2ffc6bc

File tree

1 file changed

+66
-12
lines changed

1 file changed

+66
-12
lines changed

docs/WindowsBuild.md

Lines changed: 66 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,61 @@ set SDKROOT=
140140

141141
If you want to use an existing Swift toolchain to build the core libraries and other parts of the toolchain, make sure you have it in `%Path%`, and strip `S:/b/1/bin/` from every `-D CMAKE_{language}_COMPILER=S:/b/1/bin/{compiler}` option.
142142

143-
### Swift compiler
143+
Here is a graphical overview of all build steps from this guide.
144+
145+
```
146+
┌──────────────────────────────────────┐ ┌────────────────┐
147+
│ │ │ │
148+
│ 1. LLVM + Swift compiler │ │ │
149+
│ │ │ Existing Swift │
150+
│ ┌────────────────────────────┐ │ or │ toolchain │
151+
│ │ 2. Swift runtime libraries │ │ │ │
152+
│ └────────────────────────────┘ │ │ │
153+
└──────────────────────────────────────┘ └────────────────┘
154+
│ │
155+
└─────────┬────────────────────────┘
156+
157+
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
158+
┌──────────────────────┐ │
159+
│ │ 3. libdispatch │
160+
└──────────────────────┘ │
161+
│ Core ┌──────────────────────┐
162+
┌─ │ 4. Foundation │ │─┐
163+
│ │ libraries └──────────────────────┘ │
164+
│ ┌──────────────────────┐ │ │
165+
│ │ │ 5. XCTest │ │
166+
│ └──────────────────────┘ │ │
167+
│ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
168+
│ │
169+
│ ┌──────────────────────────────────────┐
170+
│ │ │
171+
│ │ 7. Toolchain dependencies │
172+
┌────────────────────────────┐ │ │
173+
│ 6. LLBuild │ ├────┬───────────┬────────┬────────────┤
174+
└────────────────────────────┘ │Yams│SwiftSystem│ ··· │IndexStoreDB│
175+
│ └────┴───────────┴────────┴────────────┘
176+
│ │
177+
│ │
178+
│ ┌────────────────────────────┐
179+
│ │ 8. TSC │
180+
│ └────────────────────────────┘
181+
│ │
182+
└─────────────────────┬────────────────────┘
183+
184+
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
185+
┌──────────────────────┐ │
186+
│ │ 9. Swift Driver │
187+
└──────────────────────┘ │
188+
│ Developer ┌──────────────────────┐
189+
│ 10. SwiftPM │ │
190+
│ tools └──────────────────────┘
191+
┌──────────────────────┐ │
192+
│ │ 11. SourceKit-LSP │
193+
└──────────────────────┘ │
194+
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
195+
```
196+
197+
### 1. Swift compiler
144198

145199
```cmd
146200
cmake -B S:\b\1 ^
@@ -188,7 +242,7 @@ path %PATH%;%ProgramFiles%\Git\usr\bin
188242
cmake --build S:\b\1 --target check-swift
189243
```
190244

191-
### Swift runtime libraries
245+
### 2. Swift runtime libraries
192246

193247
```cmd
194248
cmake -B S:\b\2 ^
@@ -223,7 +277,7 @@ cmake --build S:\b\2
223277

224278
> **NOTE:** Swift runtime libraries are also built along with the compiler. This step extracts them into a portable SDK where we will install core libraries alongside.
225279
226-
### libdispatch
280+
### 3. libdispatch
227281

228282
```cmd
229283
cmake -B S:\b\3 ^
@@ -255,7 +309,7 @@ Test libdispatch:
255309
cmake --build S:\b\3 --target test
256310
```
257311

258-
### Foundation (without tests)
312+
### 4. Foundation (without tests)
259313

260314
```cmd
261315
cmake -B S:\b\4 ^
@@ -279,7 +333,7 @@ cmake -B S:\b\4 ^
279333
cmake --build S:\b\4
280334
```
281335

282-
### XCTest
336+
### 5. XCTest
283337

284338
```cmd
285339
cmake -B S:\b\5 ^
@@ -313,7 +367,7 @@ path %PATH%;%ProgramFiles%\Git\usr\bin
313367
cmake --build S:\b\5 --target check-xctest
314368
```
315369

316-
### Foundation (with tests)
370+
### 4.1 Foundation (with tests)
317371

318372
```cmd
319373
cmake -B S:\b\4 ^
@@ -346,7 +400,7 @@ Test Foundation:
346400
cmake --build S:\b\4 --target test
347401
```
348402

349-
### LLBuild
403+
### 6. LLBuild
350404

351405
```cmd
352406
cmake -B S:\b\6 ^
@@ -381,7 +435,7 @@ Test LLBuild:
381435
cmake --build S:\b\6 --target test
382436
```
383437

384-
### Toolchain dependencies
438+
### 7. Toolchain dependencies
385439

386440
We're building the following libraries with `Release` preset and without tests here because they're independent packages that are directly or indirectly depended by Swift Driver, SwiftPM or SourceKit-LSP. For developing these libraries, use SwiftPM instead.
387441

@@ -533,7 +587,7 @@ cmake -B S:\b\7\IndexStoreDB ^
533587
cmake --build S:\b\7\IndexStoreDB
534588
```
535589

536-
### TSC (without tests)
590+
### 8. TSC (without tests)
537591

538592
```cmd
539593
cmake -B S:\b\8 ^
@@ -560,7 +614,7 @@ cmake -B S:\b\8 ^
560614
cmake --build S:\b\8
561615
```
562616

563-
### Swift Driver (without tests)
617+
### 9. Swift Driver (without tests)
564618

565619
```cmd
566620
cmake -B S:\b\9 ^
@@ -589,7 +643,7 @@ cmake -B S:\b\9 ^
589643
cmake --build S:\b\9
590644
```
591645

592-
### SwiftPM (without tests)
646+
### 10. SwiftPM (without tests)
593647

594648
```cmd
595649
cmake -B S:\b\10 ^
@@ -620,7 +674,7 @@ cmake -B S:\b\10 ^
620674
cmake --build S:\b\10
621675
```
622676

623-
### SourceKit-LSP (without tests)
677+
### 11. SourceKit-LSP (without tests)
624678

625679
```cmd
626680
cmake -B S:\b\11 ^

0 commit comments

Comments
 (0)