-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPackage.swift
More file actions
89 lines (83 loc) · 2.24 KB
/
Package.swift
File metadata and controls
89 lines (83 loc) · 2.24 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// swift-tools-version: 6.2
import PackageDescription
let bridgePath = "Sources/AgentEventBridges"
let bridgeNames: [String] = [
"AdobeIllustratorBridge",
"AppleScriptUtilityBridge",
"AutomatorApplicationStubBridge",
"AutomatorBridge",
"BluetoothFileExchangeBridge",
"CalendarBridge",
"ConsoleBridge",
"ContactsBridge",
"DatabaseEventsBridge",
"DeveloperBridge",
"FinalCutProCreatorStudioBridge",
"FinderBridge",
"FirefoxBridge",
"FolderActionsSetupBridge",
"GoogleChromeBridge",
"ImageEventsBridge",
"InstrumentsBridge",
"KeynoteBridge",
"LogicProCreatorStudioBridge",
"MailBridge",
"MessagesBridge",
"MicrosoftEdgeBridge",
"MusicBridge",
"NotesBridge",
"NumbersBridge",
"NumbersCreatorStudioBridge",
"PagesBridge",
"PagesCreatorStudioBridge",
"PhotosBridge",
"PixelmatorProBridge",
"PreviewBridge",
"QuickTimePlayerBridge",
"RemindersBridge",
"SafariBridge",
"ScreenSharingBridge",
"ScriptEditorBridge",
"SeleniumBridge",
"ShortcutsBridge",
"ShortcutsEventsBridge",
"SimulatorBridge",
"SystemEventsBridge",
"SystemInformationBridge",
"SystemSettingsBridge",
"TerminalBridge",
"TextEditBridge",
"TVBridge",
"UTMBridge",
"VoiceOverBridge",
"WishBridge",
"XcodeScriptingBridge",
]
let allFiles = ["ScriptingBridgeCommon.swift"] + bridgeNames.map { "\($0).swift" }
let bridgeTargets: [Target] = bridgeNames.map { name in
.target(
name: name,
dependencies: ["ScriptingBridgeCommon"],
path: bridgePath,
exclude: allFiles.filter { $0 != "\(name).swift" },
sources: ["\(name).swift"]
)
}
let bridgeProducts: [Product] = bridgeNames.map { name in
.library(name: name, targets: [name])
}
let package = Package(
name: "AgentEventBridges",
platforms: [.macOS(.v26)],
products: [
.library(name: "ScriptingBridgeCommon", targets: ["ScriptingBridgeCommon"]),
] + bridgeProducts,
targets: [
.target(
name: "ScriptingBridgeCommon",
path: bridgePath,
exclude: bridgeNames.map { "\($0).swift" },
sources: ["ScriptingBridgeCommon.swift"]
),
] + bridgeTargets
)