1- // swift-tools-version: 5.10
1+ // swift-tools-version: 6.0
22
33import PackageDescription
44
5+ /// Information about the current state of the package's git repository.
6+ let git = Context . gitInformation
7+
8+ /// Whether or not this package is being built for development rather than
9+ /// distribution as a package dependency.
10+ let buildingForDevelopment = ( git? . currentTag == nil )
11+
12+ func makeList< T> ( _ default: T ... , development: @autoclosure ( ) -> [ T ] ) -> [ T ] {
13+ if buildingForDevelopment {
14+ `default` + development( )
15+ } else {
16+ `default`
17+ }
18+ }
19+
520let package = Package (
621 name: " swiftui-visual-logger " ,
722 platforms: [
823 . iOS( . v15) ,
924 ] ,
10- products: [
25+ products: makeList (
1126 . library(
1227 name: " VisualLogger " ,
1328 targets: [
1429 " VisualLogger " ,
1530 ]
1631 ) ,
17- ] ,
18- targets: [
32+ development: [
33+ . library(
34+ name: " VisualLoggerModels " ,
35+ targets: [ " Models " ]
36+ ) ,
37+ . library(
38+ name: " VisualLoggerData " ,
39+ targets: [ " Data " ]
40+ ) ,
41+ . library(
42+ name: " VisualLoggerUI " ,
43+ targets: [ " UI " ]
44+ ) ,
45+ ]
46+ ) ,
47+ dependencies: makeList ( development: [
48+ . package ( url: " https://github.com/swiftlang/swift-testing.git " , branch: " 6.1.0 " ) ,
49+ ] ) ,
50+ targets: makeList (
1951 . target(
2052 name: " Models "
2153 ) ,
@@ -25,7 +57,8 @@ let package = Package(
2557 ) ,
2658 . target(
2759 name: " UI " ,
28- dependencies: [ " Data " ]
60+ dependencies: [ " Data " ] ,
61+ swiftSettings: buildingForDevelopment ? [ . define( " DEBUG_VIEWS " ) ] : [ ]
2962 ) ,
3063 . target(
3164 name: " VisualLogger " ,
@@ -35,5 +68,19 @@ let package = Package(
3568 " Models " ,
3669 ]
3770 ) ,
71+ development: [
72+ . testTarget(
73+ name: " DataTests " ,
74+ dependencies: [
75+ " Data " ,
76+ " Models " ,
77+ . product( name: " Testing " , package : " swift-testing " ) ,
78+ ]
79+ ) ,
80+ ]
81+ ) ,
82+ swiftLanguageModes: [
83+ . v5,
84+ . v6
3885 ]
3986)
0 commit comments