CommandLineToolkit
/
Package.swift
946 строк · 22.3 Кб
1// swift-tools-version:5.9
2import PackageDescription
3
4var targets = [Target]()
5// MARK: AtomicModels
6targets.append(
7.target(
8name: "AtomicModels",
9dependencies: [
10],
11path: "Sources/AtomicModels"
12)
13)
14// MARK: CLTCollections
15targets.append(
16.target(
17name: "CLTCollections",
18dependencies: [
19"Types",
20],
21path: "Sources/CLTCollections"
22)
23)
24// MARK: CLTExtensions
25targets.append(
26.target(
27name: "CLTExtensions",
28dependencies: [
29],
30path: "Sources/CLTExtensions"
31)
32)
33// MARK: CLTExtensionsTests
34targets.append(
35.testTarget(
36name: "CLTExtensionsTests",
37dependencies: [
38"CLTCollections",
39"CLTExtensions",
40"TestHelpers",
41],
42path: "Tests/CLTExtensionsTests"
43)
44)
45// MARK: CLTLogging
46targets.append(
47.target(
48name: "CLTLogging",
49dependencies: [
50"AtomicModels",
51"CLTLoggingModels",
52"DateProvider",
53"FileSystem",
54"Kibana",
55"KibanaModels",
56"PathLib",
57"ProcessController",
58"Tmp",
59.product(name: "Logging", package: "swift-log"),
60],
61path: "Sources/CLTLogging"
62)
63)
64// MARK: CLTLoggingModels
65targets.append(
66.target(
67name: "CLTLoggingModels",
68dependencies: [
69],
70path: "Sources/CLTLoggingModels"
71)
72)
73// MARK: CLTLoggingTestHelpers
74targets.append(
75.target(
76name: "CLTLoggingTestHelpers",
77dependencies: [
78"CLTLogging",
79"CLTLoggingModels",
80],
81path: "Tests/CLTLoggingTestHelpers"
82)
83)
84// MARK: CLTLoggingTests
85targets.append(
86.testTarget(
87name: "CLTLoggingTests",
88dependencies: [
89"CLTLogging",
90"CLTLoggingModels",
91"CLTLoggingTestHelpers",
92"DateProviderTestHelpers",
93"Kibana",
94"KibanaTestHelpers",
95"TestHelpers",
96"Tmp",
97],
98path: "Tests/CLTLoggingTests"
99)
100)
101// MARK: CLTTypes
102targets.append(
103.target(
104name: "CLTTypes",
105dependencies: [
106"CLTExtensions",
107],
108path: "Sources/CLTTypes"
109)
110)
111// MARK: Cloc
112targets.append(
113.target(
114name: "Cloc",
115dependencies: [
116"FileSystem",
117"PathLib",
118"ProcessController",
119],
120path: "Sources/Cloc"
121)
122)
123// MARK: CommandSupport
124targets.append(
125.target(
126name: "CommandSupport",
127dependencies: [
128"CLTExtensions",
129"Console",
130"DI",
131"PathLib",
132"TeamcityMessaging",
133.product(name: "ArgumentParser", package: "swift-argument-parser"),
134.product(name: "Logging", package: "swift-log"),
135],
136path: "Sources/CommandSupport"
137)
138)
139// MARK: CommandSupportTests
140targets.append(
141.testTarget(
142name: "CommandSupportTests",
143dependencies: [
144"CommandSupport",
145.product(name: "ArgumentParser", package: "swift-argument-parser"),
146],
147path: "Tests/CommandSupportTests"
148)
149)
150// MARK: Concurrency
151targets.append(
152.target(
153name: "Concurrency",
154dependencies: [
155"PathLib",
156],
157path: "Sources/Concurrency"
158)
159)
160// MARK: Console
161targets.append(
162.target(
163name: "Console",
164dependencies: [
165"AtomicModels",
166"DI",
167"SignalHandling",
168"TeamcityMessaging",
169.product(name: "Logging", package: "swift-log"),
170.product(name: "Yams", package: "Yams"),
171],
172path: "Sources/Console",
173exclude: [
174"ANSI/README.md",
175"target.json",
176]
177)
178)
179// MARK: ConsoleTestHelpers
180targets.append(
181.target(
182name: "ConsoleTestHelpers",
183dependencies: [
184"Console",
185.product(name: "Logging", package: "swift-log"),
186],
187path: "Tests/ConsoleTestHelpers"
188)
189)
190// MARK: ConsoleTests
191targets.append(
192.testTarget(
193name: "ConsoleTests",
194dependencies: [
195"Console",
196.product(name: "InlineSnapshotTesting", package: "swift-snapshot-testing"),
197.product(name: "Logging", package: "swift-log"),
198.product(name: "SnapshotTesting", package: "swift-snapshot-testing"),
199],
200path: "Tests/ConsoleTests"
201)
202)
203// MARK: DI
204targets.append(
205.target(
206name: "DI",
207dependencies: [
208],
209path: "Sources/DI",
210exclude: [
211"README.md",
212"target.json",
213]
214)
215)
216// MARK: DateProvider
217targets.append(
218.target(
219name: "DateProvider",
220dependencies: [
221"DI",
222],
223path: "Sources/DateProvider"
224)
225)
226// MARK: DateProviderTestHelpers
227targets.append(
228.target(
229name: "DateProviderTestHelpers",
230dependencies: [
231"DateProvider",
232],
233path: "Tests/DateProviderTestHelpers"
234)
235)
236// MARK: Downloader
237targets.append(
238.target(
239name: "Downloader",
240dependencies: [
241"DI",
242"DateProvider",
243"PathLib",
244.product(name: "Alamofire", package: "Alamofire"),
245],
246path: "Sources/Downloader"
247)
248)
249// MARK: Environment
250targets.append(
251.target(
252name: "Environment",
253dependencies: [
254"CLTExtensions",
255"DI",
256"PathLib",
257],
258path: "Sources/Environment"
259)
260)
261// MARK: FileSystem
262targets.append(
263.target(
264name: "FileSystem",
265dependencies: [
266"CLTExtensions",
267"DI",
268"PathLib",
269"Types",
270.product(name: "Glob", package: "Glob"),
271],
272path: "Sources/FileSystem"
273)
274)
275// MARK: FileSystemTestHelpers
276targets.append(
277.target(
278name: "FileSystemTestHelpers",
279dependencies: [
280"FileSystem",
281"PathLib",
282"Types",
283],
284path: "Tests/FileSystemTestHelpers"
285)
286)
287// MARK: FileSystemTests
288targets.append(
289.testTarget(
290name: "FileSystemTests",
291dependencies: [
292"FileSystem",
293"PathLib",
294"TestHelpers",
295"Tmp",
296"TmpTestHelpers",
297],
298path: "Tests/FileSystemTests"
299)
300)
301// MARK: Graphite
302targets.append(
303.target(
304name: "Graphite",
305dependencies: [
306"MetricsUtils",
307"SocketModels",
308.product(name: "Socket", package: "BlueSocket"),
309],
310path: "Sources/Graphite"
311)
312)
313// MARK: GraphiteTestHelpers
314targets.append(
315.target(
316name: "GraphiteTestHelpers",
317dependencies: [
318"Graphite",
319],
320path: "Tests/GraphiteTestHelpers"
321)
322)
323// MARK: GraphiteTests
324targets.append(
325.testTarget(
326name: "GraphiteTests",
327dependencies: [
328"AtomicModels",
329"Graphite",
330"SocketModels",
331"TestHelpers",
332.product(name: "Socket", package: "BlueSocket"),
333],
334path: "Tests/GraphiteTests"
335)
336)
337// MARK: JSONStream
338targets.append(
339.target(
340name: "JSONStream",
341dependencies: [
342"AtomicModels",
343],
344path: "Sources/JSONStream",
345exclude: [
346"README.md",
347"target.json",
348]
349)
350)
351// MARK: JSONStreamTests
352targets.append(
353.testTarget(
354name: "JSONStreamTests",
355dependencies: [
356"JSONStream",
357"TestHelpers",
358],
359path: "Tests/JSONStreamTests"
360)
361)
362// MARK: Kibana
363targets.append(
364.target(
365name: "Kibana",
366dependencies: [
367"CLTExtensions",
368"CLTTypes",
369"DateProvider",
370"SocketModels",
371],
372path: "Sources/Kibana"
373)
374)
375// MARK: KibanaModels
376targets.append(
377.target(
378name: "KibanaModels",
379dependencies: [
380"CLTTypes",
381],
382path: "Sources/KibanaModels"
383)
384)
385// MARK: KibanaTestHelpers
386targets.append(
387.target(
388name: "KibanaTestHelpers",
389dependencies: [
390"Kibana",
391],
392path: "Tests/KibanaTestHelpers"
393)
394)
395// MARK: KibanaTests
396targets.append(
397.testTarget(
398name: "KibanaTests",
399dependencies: [
400"DateProviderTestHelpers",
401"Kibana",
402"SocketModels",
403"TestHelpers",
404"URLSessionTestHelpers",
405],
406path: "Tests/KibanaTests"
407)
408)
409// MARK: LaunchdUtils
410targets.append(
411.target(
412name: "LaunchdUtils",
413dependencies: [
414],
415path: "Sources/LaunchdUtils"
416)
417)
418// MARK: LaunchdUtilsTests
419targets.append(
420.testTarget(
421name: "LaunchdUtilsTests",
422dependencies: [
423"LaunchdUtils",
424],
425path: "Tests/LaunchdUtilsTests"
426)
427)
428// MARK: MetricsRecording
429targets.append(
430.target(
431name: "MetricsRecording",
432dependencies: [
433"DateProvider",
434"Graphite",
435"Statsd",
436],
437path: "Sources/MetricsRecording"
438)
439)
440// MARK: MetricsTestHelpers
441targets.append(
442.target(
443name: "MetricsTestHelpers",
444dependencies: [
445"Graphite",
446"MetricsRecording",
447"Statsd",
448],
449path: "Tests/MetricsTestHelpers"
450)
451)
452// MARK: MetricsTests
453targets.append(
454.testTarget(
455name: "MetricsTests",
456dependencies: [
457"DateProviderTestHelpers",
458"Graphite",
459"MetricsRecording",
460"MetricsTestHelpers",
461"Statsd",
462"TestHelpers",
463],
464path: "Tests/MetricsTests"
465)
466)
467// MARK: MetricsUtils
468targets.append(
469.target(
470name: "MetricsUtils",
471dependencies: [
472],
473path: "Sources/MetricsUtils"
474)
475)
476// MARK: MutualTLS
477targets.append(
478.target(
479name: "MutualTLS",
480dependencies: [
481"DI",
482"Environment",
483"PathLib",
484"ProcessController",
485],
486path: "Sources/MutualTLS"
487)
488)
489// MARK: PathLib
490targets.append(
491.target(
492name: "PathLib",
493dependencies: [
494],
495path: "Sources/PathLib"
496)
497)
498// MARK: PathLibTests
499targets.append(
500.testTarget(
501name: "PathLibTests",
502dependencies: [
503"PathLib",
504"TestHelpers",
505],
506path: "Tests/PathLibTests"
507)
508)
509// MARK: PlistLib
510targets.append(
511.target(
512name: "PlistLib",
513dependencies: [
514"DI",
515"FileSystem",
516"PathLib",
517],
518path: "Sources/PlistLib",
519exclude: [
520"README.md",
521"target.json",
522]
523)
524)
525// MARK: PlistLibTests
526targets.append(
527.testTarget(
528name: "PlistLibTests",
529dependencies: [
530"PlistLib",
531"TestHelpers",
532],
533path: "Tests/PlistLibTests"
534)
535)
536// MARK: ProcessController
537targets.append(
538.target(
539name: "ProcessController",
540dependencies: [
541"AtomicModels",
542"Console",
543"DI",
544"DateProvider",
545"Environment",
546"FileSystem",
547"PathLib",
548"SignalHandling",
549"Timer",
550.product(name: "Logging", package: "swift-log"),
551],
552path: "Sources/ProcessController"
553)
554)
555// MARK: ProcessControllerTestHelpers
556targets.append(
557.target(
558name: "ProcessControllerTestHelpers",
559dependencies: [
560"ProcessController",
561"SynchronousWaiter",
562"Tmp",
563],
564path: "Tests/ProcessControllerTestHelpers"
565)
566)
567// MARK: ProcessControllerTests
568targets.append(
569.testTarget(
570name: "ProcessControllerTests",
571dependencies: [
572"DateProvider",
573"FileSystem",
574"PathLib",
575"ProcessController",
576"ProcessControllerTestHelpers",
577"SignalHandling",
578"TestHelpers",
579"Tmp",
580],
581path: "Tests/ProcessControllerTests"
582)
583)
584// MARK: RepoRoot
585targets.append(
586.target(
587name: "RepoRoot",
588dependencies: [
589"CLTExtensions",
590"DI",
591"Environment",
592"FileSystem",
593"PathLib",
594"ProcessController",
595],
596path: "Sources/RepoRoot"
597)
598)
599// MARK: RepoRootTests
600targets.append(
601.testTarget(
602name: "RepoRootTests",
603dependencies: [
604"FileSystem",
605"FileSystemTestHelpers",
606"PathLib",
607"RepoRoot",
608"TestHelpers",
609],
610path: "Tests/RepoRootTests"
611)
612)
613// MARK: SignalHandling
614targets.append(
615.target(
616name: "SignalHandling",
617dependencies: [
618"Types",
619.product(name: "Signals", package: "BlueSignals"),
620],
621path: "Sources/SignalHandling"
622)
623)
624// MARK: SignalHandlingTests
625targets.append(
626.testTarget(
627name: "SignalHandlingTests",
628dependencies: [
629"SignalHandling",
630.product(name: "Signals", package: "BlueSignals"),
631],
632path: "Tests/SignalHandlingTests"
633)
634)
635// MARK: SocketModels
636targets.append(
637.target(
638name: "SocketModels",
639dependencies: [
640"Types",
641],
642path: "Sources/SocketModels"
643)
644)
645// MARK: Statsd
646targets.append(
647.target(
648name: "Statsd",
649dependencies: [
650"AtomicModels",
651"MetricsUtils",
652"SocketModels",
653.product(name: "Socket", package: "BlueSocket"),
654],
655path: "Sources/Statsd"
656)
657)
658// MARK: StatsdTests
659targets.append(
660.testTarget(
661name: "StatsdTests",
662dependencies: [
663"MetricsRecording",
664"SocketModels",
665"Statsd",
666"TestHelpers",
667.product(name: "Socket", package: "BlueSocket"),
668],
669path: "Tests/StatsdTests"
670)
671)
672// MARK: SynchronousWaiter
673targets.append(
674.target(
675name: "SynchronousWaiter",
676dependencies: [
677"AtomicModels",
678],
679path: "Sources/SynchronousWaiter"
680)
681)
682// MARK: SynchronousWaiterTests
683targets.append(
684.testTarget(
685name: "SynchronousWaiterTests",
686dependencies: [
687"SynchronousWaiter",
688"TestHelpers",
689],
690path: "Tests/SynchronousWaiterTests"
691)
692)
693// MARK: TeamcityMessaging
694targets.append(
695.target(
696name: "TeamcityMessaging",
697dependencies: [
698"CLTExtensions",
699"DI",
700],
701path: "Sources/TeamcityMessaging"
702)
703)
704// MARK: TemporaryStuffTests
705targets.append(
706.testTarget(
707name: "TemporaryStuffTests",
708dependencies: [
709"PathLib",
710"TestHelpers",
711"Tmp",
712],
713path: "Tests/TemporaryStuffTests"
714)
715)
716// MARK: TestHelpers
717targets.append(
718.target(
719name: "TestHelpers",
720dependencies: [
721"AtomicModels",
722"CLTExtensions",
723"PathLib",
724],
725path: "Tests/TestHelpers",
726exclude: [
727"README.md",
728"target.json",
729]
730)
731)
732// MARK: Timer
733targets.append(
734.target(
735name: "Timer",
736dependencies: [
737],
738path: "Sources/Timer"
739)
740)
741// MARK: Tmp
742targets.append(
743.target(
744name: "Tmp",
745dependencies: [
746"CLTExtensions",
747"PathLib",
748],
749path: "Sources/Tmp"
750)
751)
752// MARK: TmpTestHelpers
753targets.append(
754.target(
755name: "TmpTestHelpers",
756dependencies: [
757"TestHelpers",
758"Tmp",
759],
760path: "Tests/TmpTestHelpers"
761)
762)
763// MARK: Types
764targets.append(
765.target(
766name: "Types",
767dependencies: [
768],
769path: "Sources/Types"
770)
771)
772// MARK: TypesTests
773targets.append(
774.testTarget(
775name: "TypesTests",
776dependencies: [
777"Types",
778],
779path: "Tests/TypesTests"
780)
781)
782// MARK: URLSessionTestHelpers
783targets.append(
784.target(
785name: "URLSessionTestHelpers",
786dependencies: [
787],
788path: "Tests/URLSessionTestHelpers"
789)
790)
791// MARK: UserDefaultsLib
792targets.append(
793.target(
794name: "UserDefaultsLib",
795dependencies: [
796"PlistLib",
797],
798path: "Sources/UserDefaultsLib",
799exclude: [
800"README.md",
801"target.json",
802]
803)
804)
805// MARK: UserDefaultsLibTestHelpers
806targets.append(
807.target(
808name: "UserDefaultsLibTestHelpers",
809dependencies: [
810"PlistLib",
811"UserDefaultsLib",
812],
813path: "Tests/UserDefaultsLibTestHelpers"
814)
815)
816// MARK: Waitable
817targets.append(
818.target(
819name: "Waitable",
820dependencies: [
821],
822path: "Sources/Waitable"
823)
824)
825// MARK: WaitableTests
826targets.append(
827.testTarget(
828name: "WaitableTests",
829dependencies: [
830"Waitable",
831],
832path: "Tests/WaitableTests"
833)
834)
835// MARK: XcodeLocator
836targets.append(
837.target(
838name: "XcodeLocator",
839dependencies: [
840"CLTExtensions",
841"DI",
842"FileSystem",
843"PathLib",
844"PlistLib",
845"XcodeLocatorModels",
846],
847path: "Sources/XcodeLocator"
848)
849)
850// MARK: XcodeLocatorModels
851targets.append(
852.target(
853name: "XcodeLocatorModels",
854dependencies: [
855"PathLib",
856],
857path: "Sources/XcodeLocatorModels"
858)
859)
860// MARK: XcodeLocatorTests
861targets.append(
862.testTarget(
863name: "XcodeLocatorTests",
864dependencies: [
865"FileSystem",
866"FileSystemTestHelpers",
867"PlistLib",
868"TestHelpers",
869"TmpTestHelpers",
870"XcodeLocator",
871"XcodeLocatorModels",
872],
873path: "Tests/XcodeLocatorTests"
874)
875)
876
877let package = Package(
878name: "CommandLineToolkit",
879platforms: [
880.macOS(.v13),
881],
882products: [
883.library(name: "AtomicModels", targets: ["AtomicModels"]),
884.library(name: "CLTCollections", targets: ["CLTCollections"]),
885.library(name: "CLTExtensions", targets: ["CLTExtensions"]),
886.library(name: "CLTLogging", targets: ["CLTLogging"]),
887.library(name: "CLTLoggingModels", targets: ["CLTLoggingModels"]),
888.library(name: "CLTLoggingTestHelpers", targets: ["CLTLoggingTestHelpers"]),
889.library(name: "CLTTypes", targets: ["CLTTypes"]),
890.library(name: "Cloc", targets: ["Cloc"]),
891.library(name: "CommandSupport", targets: ["CommandSupport"]),
892.library(name: "Concurrency", targets: ["Concurrency"]),
893.library(name: "Console", targets: ["Console"]),
894.library(name: "ConsoleTestHelpers", targets: ["ConsoleTestHelpers"]),
895.library(name: "DI", targets: ["DI"]),
896.library(name: "DateProvider", targets: ["DateProvider"]),
897.library(name: "DateProviderTestHelpers", targets: ["DateProviderTestHelpers"]),
898.library(name: "Downloader", targets: ["Downloader"]),
899.library(name: "Environment", targets: ["Environment"]),
900.library(name: "FileSystem", targets: ["FileSystem"]),
901.library(name: "FileSystemTestHelpers", targets: ["FileSystemTestHelpers"]),
902.library(name: "Graphite", targets: ["Graphite"]),
903.library(name: "GraphiteTestHelpers", targets: ["GraphiteTestHelpers"]),
904.library(name: "JSONStream", targets: ["JSONStream"]),
905.library(name: "Kibana", targets: ["Kibana"]),
906.library(name: "KibanaModels", targets: ["KibanaModels"]),
907.library(name: "KibanaTestHelpers", targets: ["KibanaTestHelpers"]),
908.library(name: "LaunchdUtils", targets: ["LaunchdUtils"]),
909.library(name: "MetricsRecording", targets: ["MetricsRecording"]),
910.library(name: "MetricsTestHelpers", targets: ["MetricsTestHelpers"]),
911.library(name: "MetricsUtils", targets: ["MetricsUtils"]),
912.library(name: "MutualTLS", targets: ["MutualTLS"]),
913.library(name: "PathLib", targets: ["PathLib"]),
914.library(name: "PlistLib", targets: ["PlistLib"]),
915.library(name: "ProcessController", targets: ["ProcessController"]),
916.library(name: "ProcessControllerTestHelpers", targets: ["ProcessControllerTestHelpers"]),
917.library(name: "RepoRoot", targets: ["RepoRoot"]),
918.library(name: "SignalHandling", targets: ["SignalHandling"]),
919.library(name: "SocketModels", targets: ["SocketModels"]),
920.library(name: "Statsd", targets: ["Statsd"]),
921.library(name: "SynchronousWaiter", targets: ["SynchronousWaiter"]),
922.library(name: "TeamcityMessaging", targets: ["TeamcityMessaging"]),
923.library(name: "TestHelpers", targets: ["TestHelpers"]),
924.library(name: "Timer", targets: ["Timer"]),
925.library(name: "Tmp", targets: ["Tmp"]),
926.library(name: "TmpTestHelpers", targets: ["TmpTestHelpers"]),
927.library(name: "Types", targets: ["Types"]),
928.library(name: "URLSessionTestHelpers", targets: ["URLSessionTestHelpers"]),
929.library(name: "UserDefaultsLib", targets: ["UserDefaultsLib"]),
930.library(name: "UserDefaultsLibTestHelpers", targets: ["UserDefaultsLibTestHelpers"]),
931.library(name: "Waitable", targets: ["Waitable"]),
932.library(name: "XcodeLocator", targets: ["XcodeLocator"]),
933.library(name: "XcodeLocatorModels", targets: ["XcodeLocatorModels"]),
934],
935dependencies: [
936.package(url: "https://github.com/Alamofire/Alamofire", exact: "5.5.0"),
937.package(url: "https://github.com/IBM-Swift/BlueSignals.git", exact: "1.0.21"),
938.package(url: "https://github.com/Kitura/BlueSocket.git", exact: "1.0.52"),
939.package(url: "https://github.com/Bouke/Glob", exact: "1.0.5"),
940.package(url: "https://github.com/jpsim/Yams.git", from: "4.0.6"),
941.package(url: "https://github.com/apple/swift-argument-parser", from: "1.1.3"),
942.package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"),
943.package(url: "https://github.com/pointfreeco/swift-snapshot-testing.git", from: "1.17.4"),
944],
945targets: targets
946)
947