-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathPackage.swift
More file actions
75 lines (71 loc) · 2.51 KB
/
Package.swift
File metadata and controls
75 lines (71 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// swift-tools-version: 6.3
import PackageDescription
let swiftSettings: [SwiftSetting] = [
.enableExperimentalFeature("Lifetimes"),
.enableExperimentalFeature("Extern"),
.enableUpcomingFeature("InternalImportsByDefault"),
.enableUpcomingFeature("MemberImportVisibility"),
.unsafeFlags(["-strict-memory-safety"]),
.treatAllWarnings(as: .error),
]
let cSettings: [CSetting] = [
.enableWarning("all"),
.enableWarning("extra"),
.treatAllWarnings(as: .error),
]
let package = Package(
name: "swift_os",
products: [
.executable(name: "Kernel", targets: ["Kernel"]),
.library(name: "KernLibc", targets: ["KernLibc"]),
.library(name: "AppLibc", targets: ["AppLibc"]),
],
traits: [
.default(enabledTraits: ["RASPI4"]),
.trait(name: "RASPI4", enabledTraits: ["RASPI"]),
.trait(name: "RASPI3", enabledTraits: ["RASPI"]),
.trait(name: "RASPI2", enabledTraits: ["RASPI"]),
.trait(name: "RASPI1", enabledTraits: ["RASPI"]),
.trait(name: "RASPI"),
],
targets: [
.executableTarget(
name: "Kernel",
dependencies: [
.target(name: "Boot"),
.target(name: "KernelCore"),
.target(name: "KernLibc"),
.target(name: "AsmSupport"),
.target(name: "LinkerSupport"),
.target(name: "RaspberryPi", condition: .when(traits: ["RASPI"])),
],
swiftSettings: swiftSettings,
),
.target(
name: "KernelCore",
dependencies: [
.target(name: "Hardware"),
.target(name: "Font"),
],
swiftSettings: swiftSettings,
),
.target(name: "Hardware", swiftSettings: swiftSettings),
.target(name: "KernLibc", swiftSettings: swiftSettings),
.target(
name: "RaspberryPi",
dependencies: [
.target(name: "Hardware"),
.target(name: "AsmSupport"),
.target(name: "LinkerSupport"),
],
swiftSettings: swiftSettings + [
.enableExperimentalFeature("Volatile")
],
),
.target(name: "Font", swiftSettings: swiftSettings),
.target(name: "LinkerSupport", swiftSettings: swiftSettings),
.target(name: "Boot", cSettings: cSettings),
.target(name: "AsmSupport", cSettings: cSettings),
.target(name: "AppLibc", swiftSettings: swiftSettings),
],
)