Skip to content

Commit f1c9ad9

Browse files
committed
Update manifest to tools version 5
This updates the manifest to tools version 5 so we can use the new API for setting linker flags. There is also a version-specific manifest for older Swift 4.2 clients. (cherry picked from commit c7333ce)
1 parent 4f77fc4 commit f1c9ad9

File tree

2 files changed

+128
-9
lines changed

2 files changed

+128
-9
lines changed

Diff for: Package.swift

+5-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
// swift-tools-version:4.0
1+
// swift-tools-version:5.0
22

33
// This file defines Swift package manager support for llbuild. See:
44
// https://github.com/apple/swift-package-manager/tree/master/Documentation
5-
//
6-
// You can build using:
7-
//
8-
// ```shell
9-
// swift build -Xlinker -lsqlite3 -Xlinker -lncurses $(utils/generate-version-h.sh)
10-
// ```
115

126
import PackageDescription
137

@@ -61,7 +55,8 @@ let package = Package(
6155
.target(
6256
name: "llbuildCore",
6357
dependencies: ["llbuildBasic"],
64-
path: "lib/Core"
58+
path: "lib/Core",
59+
linkerSettings: [.linkedLibrary("sqlite3")]
6560
),
6661
.target(
6762
name: "llbuildBuildSystem",
@@ -117,7 +112,8 @@ let package = Package(
117112

118113
.target(
119114
name: "llvmSupport",
120-
path: "lib/llvm/Support"
115+
path: "lib/llvm/Support",
116+
linkerSettings: [.linkedLibrary("ncurses")]
121117
),
122118
],
123119
cxxLanguageStandard: .cxx14

Diff for: [email protected]

+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
// swift-tools-version:4.2.0
2+
3+
// This file defines Swift package manager support for llbuild. See:
4+
// https://github.com/apple/swift-package-manager/tree/master/Documentation
5+
6+
import PackageDescription
7+
8+
let package = Package(
9+
name: "llbuild",
10+
products: [
11+
.library(
12+
name: "libllbuild",
13+
targets: ["libllbuild"]),
14+
.library(
15+
name: "llbuildSwift",
16+
targets: ["llbuildSwift"]),
17+
],
18+
targets: [
19+
/// The llbuild testing tool.
20+
.target(
21+
name: "llbuild",
22+
dependencies: ["llbuildCommands"],
23+
path: "products/llbuild"
24+
),
25+
26+
/// The custom build tool used by the Swift package manager.
27+
.target(
28+
name: "swift-build-tool",
29+
dependencies: ["llbuildBuildSystem"],
30+
path: "products/swift-build-tool"
31+
),
32+
33+
/// The custom build tool used by the Swift package manager.
34+
.target(
35+
name: "llbuildSwift",
36+
dependencies: ["libllbuild"],
37+
path: "products/llbuildSwift",
38+
exclude: ["llbuild.swift"]
39+
),
40+
41+
/// The public llbuild API.
42+
.target(
43+
name: "libllbuild",
44+
dependencies: ["llbuildCore", "llbuildBuildSystem"],
45+
path: "products/libllbuild"
46+
),
47+
48+
// MARK: Components
49+
50+
.target(
51+
name: "llbuildBasic",
52+
dependencies: ["llvmSupport"],
53+
path: "lib/Basic"
54+
),
55+
.target(
56+
name: "llbuildCore",
57+
dependencies: ["llbuildBasic"],
58+
path: "lib/Core"
59+
),
60+
.target(
61+
name: "llbuildBuildSystem",
62+
dependencies: ["llbuildCore"],
63+
path: "lib/BuildSystem"
64+
),
65+
.target(
66+
name: "llbuildNinja",
67+
dependencies: ["llbuildBasic"],
68+
path: "lib/Ninja"
69+
),
70+
.target(
71+
name: "llbuildCommands",
72+
dependencies: ["llbuildCore", "llbuildBuildSystem", "llbuildNinja"],
73+
path: "lib/Commands"
74+
),
75+
76+
// MARK: Test Targets
77+
78+
.target(
79+
name: "llbuildBasicTests",
80+
dependencies: ["llbuildBasic", "gtest"],
81+
path: "unittests/Basic"),
82+
.target(
83+
name: "llbuildCoreTests",
84+
dependencies: ["llbuildCore", "gtest"],
85+
path: "unittests/Core"),
86+
.target(
87+
name: "llbuildBuildSystemTests",
88+
dependencies: ["llbuildBuildSystem", "gtest"],
89+
path: "unittests/BuildSystem"),
90+
.target(
91+
name: "llbuildNinjaTests",
92+
dependencies: ["llbuildNinja", "gtest"],
93+
path: "unittests/Ninja"),
94+
95+
// MARK: GoogleTest
96+
97+
.target(
98+
name: "gtest",
99+
path: "utils/unittest/googletest/src",
100+
exclude: [
101+
"gtest-death-test.cc",
102+
"gtest-filepath.cc",
103+
"gtest-port.cc",
104+
"gtest-printers.cc",
105+
"gtest-test-part.cc",
106+
"gtest-typed-test.cc",
107+
"gtest.cc",
108+
]),
109+
110+
// MARK: Ingested LLVM code.
111+
.target(
112+
name: "llvmDemangle",
113+
path: "lib/llvm/Demangle"
114+
),
115+
116+
.target(
117+
name: "llvmSupport",
118+
dependencies: ["llvmDemangle"],
119+
path: "lib/llvm/Support"
120+
),
121+
],
122+
cxxLanguageStandard: .cxx14
123+
)

0 commit comments

Comments
 (0)