mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2024-09-20 00:58:04 +03:00
Merge branch 'master' into fix-generation-order
This commit is contained in:
commit
ceee0d6115
@ -1,8 +1,8 @@
|
||||
version: 2
|
||||
jobs:
|
||||
macOS_swift_4.2:
|
||||
macOS_swift_5.0:
|
||||
macos:
|
||||
xcode: "10.0.0"
|
||||
xcode: "10.2.0"
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
@ -27,4 +27,4 @@ workflows:
|
||||
version: 2
|
||||
workflow:
|
||||
jobs:
|
||||
- macOS_swift_4.2
|
||||
- macOS_swift_5.0
|
||||
|
16
CHANGELOG.md
16
CHANGELOG.md
@ -3,12 +3,26 @@
|
||||
## Next Version
|
||||
|
||||
#### Added
|
||||
- Added support for `app-extension.intents-service` target type [#536](https://github.com/yonaskolb/XcodeGen/pull/536) @yonaskolb
|
||||
|
||||
#### Changed
|
||||
- Updated to xcodeproj 6.7.0 including its performance improvements [#536](https://github.com/yonaskolb/XcodeGen/pull/536) @yonaskolb
|
||||
- Updated default generated settings for Xcode 10.2 [#555](https://github.com/yonaskolb/XcodeGen/pull/555) @yonaskolb
|
||||
|
||||
#### Fixed
|
||||
- Fixed `optional` file sources not being added to the project [#557](https://github.com/yonaskolb/XcodeGen/pull/557) @yonaskolb
|
||||
- Fixed order of file generation. Plists are now generated before the project is generated so that the project includes the generated plists [#544](https://github.com/yonaskolb/XcodeGen/issues/544) @tomquist
|
||||
|
||||
## 2.4.0
|
||||
|
||||
#### Fixed:
|
||||
- Fixed installation when building in Swift 5 [#549](https://github.com/yonaskolb/XcodeGen/pull/549) @yonaskolb
|
||||
|
||||
#### Changed
|
||||
- Updated to Swift 5 and dropped Swift 4.2 [#549](https://github.com/yonaskolb/XcodeGen/pull/549) @yonaskolb
|
||||
|
||||
[Commits](https://github.com/yonaskolb/XcodeGen/compare/2.3.0...2.4.0)
|
||||
|
||||
## 2.3.0
|
||||
|
||||
#### Added
|
||||
@ -24,7 +38,7 @@
|
||||
|
||||
#### Fixed
|
||||
- Sources outside a project spec's directory will be correctly referenced as relative paths in the project file. [#524](https://github.com/yonaskolb/XcodeGen/pull/524)
|
||||
- Fixed error when `optional` path is missing [#527](https://github.com/yonaskolb/XcodeGen/pull/527) @yonaskolb
|
||||
- Fixed error when `optional` directory source is missing [#527](https://github.com/yonaskolb/XcodeGen/pull/527) @yonaskolb
|
||||
- Fixed excludes within included spec [#535](https://github.com/yonaskolb/XcodeGen/pull/535) @yonaskolb
|
||||
- Fixed paths in target templates within included files not being relative [#537](https://github.com/yonaskolb/XcodeGen/pull/537) @yonaskolb
|
||||
- Fix multi-platform target templates [#541](https://github.com/yonaskolb/XcodeGen/pull/541) @yonaskolb
|
||||
|
@ -227,9 +227,10 @@ This will provide default build settings for a certain product type. It can be a
|
||||
- `application.messages`
|
||||
- `application.watchapp`
|
||||
- `application.watchapp2`
|
||||
- `app-extension`
|
||||
- `app-extension.messages`
|
||||
- `app-extension.messages-sticker-pack`
|
||||
- `app-extension`
|
||||
- `app-extension.intents-service`
|
||||
- `bundle`
|
||||
- `bundle.unit-test`
|
||||
- `bundle.ui-testing`
|
||||
@ -242,6 +243,7 @@ This will provide default build settings for a certain product type. It can be a
|
||||
- `tv-app-extension`
|
||||
- `watchkit-extension`
|
||||
- `watchkit2-extension`
|
||||
- `xcode-extension`
|
||||
- `xpc-service`
|
||||
- ``""`` (used for legacy targets)
|
||||
|
||||
|
8
Makefile
8
Makefile
@ -1,6 +1,6 @@
|
||||
TOOL_NAME = XcodeGen
|
||||
export EXECUTABLE_NAME = xcodegen
|
||||
VERSION = 2.3.0
|
||||
VERSION = 2.4.0
|
||||
|
||||
PREFIX = /usr/local
|
||||
INSTALL_PATH = $(PREFIX)/bin/$(EXECUTABLE_NAME)
|
||||
@ -19,7 +19,7 @@ install: build
|
||||
cp -R $(CURRENT_PATH)/SettingPresets $(SHARE_PATH)/SettingPresets
|
||||
|
||||
build:
|
||||
swift build --disable-sandbox -c release -Xswiftc -static-stdlib
|
||||
swift build --disable-sandbox -c release
|
||||
|
||||
uninstall:
|
||||
rm -f $(INSTALL_PATH)
|
||||
@ -28,8 +28,8 @@ uninstall:
|
||||
format_code:
|
||||
swiftformat .
|
||||
|
||||
release: format_code
|
||||
sed -i '' 's|\(let version = try Version("\)\(.*\)\(")\)|\1$(VERSION)\3|' Sources/XcodeGen/main.swift
|
||||
release:
|
||||
sed -i '' 's|\(let version = Version("\)\(.*\)\(")\)|\1$(VERSION)\3|' Sources/XcodeGen/main.swift
|
||||
|
||||
git add .
|
||||
git commit -m "Update to $(VERSION)"
|
||||
|
@ -69,8 +69,8 @@
|
||||
"repositoryURL": "https://github.com/tuist/xcodeproj.git",
|
||||
"state": {
|
||||
"branch": null,
|
||||
"revision": "8e15cc74149ee946b7ae125685177915b4ff7317",
|
||||
"version": "6.4.0"
|
||||
"revision": "065f348754b6155b8037dc43876a8f2ee354b95d",
|
||||
"version": "6.7.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
// swift-tools-version:4.2
|
||||
// swift-tools-version:5.0
|
||||
|
||||
import PackageDescription
|
||||
|
||||
@ -15,7 +15,7 @@ let package = Package(
|
||||
.package(url: "https://github.com/yonaskolb/JSONUtilities.git", from: "4.1.0"),
|
||||
.package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"),
|
||||
.package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"),
|
||||
.package(url: "https://github.com/tuist/xcodeproj.git", .exact("6.4.0")),
|
||||
.package(url: "https://github.com/tuist/xcodeproj.git", .exact("6.7.0")),
|
||||
.package(url: "https://github.com/jakeheis/SwiftCLI.git", from: "5.2.0"),
|
||||
],
|
||||
targets: [
|
||||
|
@ -69,7 +69,7 @@ A project would be created with 2 connected targets, with all the required confi
|
||||
|
||||
## Installing
|
||||
|
||||
Make sure Xcode 9.3 is installed first.
|
||||
Make sure Xcode 10.2 is installed first.
|
||||
|
||||
### [Mint](https://github.com/yonaskolb/mint)
|
||||
```sh
|
||||
@ -105,7 +105,7 @@ swift run xcodegen
|
||||
Add the following to your Package.swift file's dependencies:
|
||||
|
||||
```swift
|
||||
.package(url: "https://github.com/yonaskolb/XcodeGen.git", from: "1.0.0"),
|
||||
.package(url: "https://github.com/yonaskolb/XcodeGen.git", from: "2.3.0"),
|
||||
```
|
||||
|
||||
And then import wherever needed: `import XcodeGenKit`
|
||||
|
@ -6,4 +6,4 @@ ENABLE_NS_ASSERTIONS: NO
|
||||
VALIDATE_PRODUCT: YES
|
||||
|
||||
# Swift Settings
|
||||
SWIFT_OPTIMIZATION_LEVEL: -Owholemodule
|
||||
SWIFT_COMPILATION_MODE: wholemodule
|
||||
|
@ -1 +0,0 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: YES
|
@ -1 +0,0 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: YES
|
@ -42,4 +42,4 @@ GCC_WARN_UNUSED_VARIABLE: YES
|
||||
|
||||
# Swift Settings
|
||||
PRODUCT_NAME: $(TARGET_NAME)
|
||||
SWIFT_VERSION: '4.2'
|
||||
SWIFT_VERSION: '5.0'
|
||||
|
@ -16,6 +16,7 @@ extension Target {
|
||||
.bundle,
|
||||
.commandLineTool,
|
||||
.instrumentsPackage,
|
||||
.intentsServiceExtension,
|
||||
.messagesApplication,
|
||||
.messagesExtension,
|
||||
.ocUnitTestBundle,
|
||||
|
@ -377,7 +377,7 @@ extension XCScheme.EnvironmentVariable: JSONObjectConvertible {
|
||||
value = try jsonDictionary.json(atKeyPath: "value")
|
||||
}
|
||||
let variable: String = try jsonDictionary.json(atKeyPath: "variable")
|
||||
let enabled: Bool = (try? jsonDictionary.json(atKeyPath: "isEnabled")) ?? true
|
||||
let enabled: Bool = jsonDictionary.json(atKeyPath: "isEnabled") ?? true
|
||||
self.init(variable: variable, value: value, enabled: enabled)
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,6 @@ import Foundation
|
||||
import ProjectSpec
|
||||
import XcodeGenCLI
|
||||
|
||||
let version = try Version("2.3.0")
|
||||
let version = Version("2.4.0")
|
||||
let cli = XcodeGenCLI(version: version)
|
||||
cli.execute()
|
||||
|
@ -20,8 +20,8 @@ import Foundation
|
||||
extension String {
|
||||
public var md5: String {
|
||||
if let data = data(using: .utf8, allowLossyConversion: true) {
|
||||
let message = data.withUnsafeBytes { bytes -> [UInt8] in
|
||||
return Array(UnsafeBufferPointer(start: bytes, count: data.count))
|
||||
let message = data.withUnsafeBytes { (bytes: UnsafeRawBufferPointer) -> [UInt8] in
|
||||
return Array(bytes)
|
||||
}
|
||||
|
||||
let MD5Calculator = MD5(message)
|
||||
|
@ -148,7 +148,7 @@ class SourceGenerator {
|
||||
// order by taking the last item in the sortedPaths array
|
||||
let currentVersionPath = findCurrentCoreDataModelVersionPath(using: versionedModels) ?? sortedPaths.last
|
||||
let currentVersion: PBXFileReference? = {
|
||||
guard let indexOf = sortedPaths.index(where: { $0 == currentVersionPath }) else { return nil }
|
||||
guard let indexOf = sortedPaths.firstIndex(where: { $0 == currentVersionPath }) else { return nil }
|
||||
return modelFileReferences[indexOf]
|
||||
}()
|
||||
let versionGroup = addObject(XCVersionGroup(
|
||||
@ -463,11 +463,6 @@ class SourceGenerator {
|
||||
/// creates source files
|
||||
private func getSourceFiles(targetType: PBXProductType, targetSource: TargetSource, path: Path) throws -> [SourceFile] {
|
||||
|
||||
if targetSource.optional && !Path(targetSource.path).exists {
|
||||
// Is optional so if it doesn't exist just return an empty array
|
||||
return []
|
||||
}
|
||||
|
||||
// generate excluded paths
|
||||
targetSourceExcludePaths = getSourceExcludes(targetSource: targetSource)
|
||||
|
||||
@ -521,6 +516,10 @@ class SourceGenerator {
|
||||
sourceFiles.append(sourceFile)
|
||||
|
||||
case .group:
|
||||
if targetSource.optional && !Path(targetSource.path).exists {
|
||||
// This group is missing, so if's optional just return an empty array
|
||||
return []
|
||||
}
|
||||
let (groupSourceFiles, groups) = try getGroupSources(targetType: targetType, targetSource: targetSource, path: path, isBaseGroup: true)
|
||||
let group = groups.first!
|
||||
if let name = targetSource.name {
|
||||
@ -561,7 +560,7 @@ class SourceGenerator {
|
||||
let versionPath = versionedModels.first(where: { $0.lastComponent == ".xccurrentversion" }),
|
||||
let data = try? versionPath.read(),
|
||||
let plist = try? PropertyListSerialization.propertyList(from: data, options: [], format: nil) as? [String: Any],
|
||||
let versionString = plist?["_XCCurrentVersionName"] as? String else {
|
||||
let versionString = plist["_XCCurrentVersionName"] as? String else {
|
||||
return nil
|
||||
}
|
||||
return versionedModels.first(where: { $0.lastComponent == versionString })
|
||||
|
@ -4,7 +4,7 @@ import ProjectSpec
|
||||
extension Project {
|
||||
|
||||
var xcodeVersion: String {
|
||||
return XCodeVersion.parse(options.xcodeVersion ?? "10.0")
|
||||
return XCodeVersion.parse(options.xcodeVersion ?? "10.2")
|
||||
}
|
||||
|
||||
var schemeVersion: String {
|
||||
@ -16,7 +16,7 @@ extension Project {
|
||||
}
|
||||
|
||||
var objectVersion: UInt {
|
||||
return 50
|
||||
return 51
|
||||
}
|
||||
|
||||
public func validateMinimumXcodeGenVersion(_ xcodeGenVersion: Version) throws {
|
||||
|
@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objectVersion = 51;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
@ -312,7 +312,7 @@
|
||||
0FBAE303E3CFC2ABAC876A7719B30922 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1000;
|
||||
LastUpgradeCheck = 1020;
|
||||
};
|
||||
buildConfigurationList = D91E14E36EC0B415578456F264E0161E /* Build configuration list for PBXProject "Project" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
@ -409,8 +409,8 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_VERSION = 5.0;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
@ -582,7 +582,7 @@
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
8
Tests/Fixtures/TestProject/Carthage/Build/.Result.version
generated
vendored
8
Tests/Fixtures/TestProject/Carthage/Build/.Result.version
generated
vendored
@ -2,26 +2,26 @@
|
||||
"Mac" : [
|
||||
{
|
||||
"name" : "Result",
|
||||
"hash" : "798b63be483da72a39b8b82eef99e204df84ae52776cd4eb3bc3a887a51d3556"
|
||||
"hash" : "f14569d60b4947d7467d06912c9969bac4caa5c2b62e19dec21bfd37ae146a9f"
|
||||
}
|
||||
],
|
||||
"watchOS" : [
|
||||
{
|
||||
"name" : "Result",
|
||||
"hash" : "ca05c8fa750b3737a39d134ae5a2bf675c1d6d8962bfd99fd7b4c3fcadeff364"
|
||||
"hash" : "80ed6de84fe4e9a468a10ca021db53f5a91edfa70874fdab0b5c1e61487604ea"
|
||||
}
|
||||
],
|
||||
"tvOS" : [
|
||||
{
|
||||
"name" : "Result",
|
||||
"hash" : "a8c876ce896eb86255745cd700e54034c231a929916bcd71669f87ee15448d54"
|
||||
"hash" : "28ba58a2f0caf9db17d544ea3f01908b3f100bca5777a10c8238386be054b9ce"
|
||||
}
|
||||
],
|
||||
"commitish" : "4.1.0",
|
||||
"iOS" : [
|
||||
{
|
||||
"name" : "Result",
|
||||
"hash" : "17b7a454596e240de059d0018168a70eb3d8b7ff5979057c4a062d4288053bf2"
|
||||
"hash" : "328ec56ff90373242dc848bda9f214eeb58c456ea5e4703855b3f7f207861a24"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1 @@
|
||||
|
@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objectVersion = 51;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXAggregateTarget section */
|
||||
@ -30,7 +30,6 @@
|
||||
0D281787B630CE62E91F9F7219EFF40D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D8A016580A3B8F72B820BFBF93749CD7 /* Assets.xcassets */; };
|
||||
0F7F220834A3E2B344322B64DB5140DF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB1B49A91B892152D68ED76D9D4E759 /* libc++.tbd */; };
|
||||
13C624ABA05AC67129468002144005A9 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0704B6CAFBB53E0EBB08F6B385901D43 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; };
|
||||
1985E98D7107DFCBB2F2AC7DC6A155B5 /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 73E7D4B860A5B6B80540E64703192744 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
1E105E72C258FF9843B21D8A3F520CFB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CE1F06D99242F4223D081F0DF78367F3 /* LaunchScreen.storyboard */; };
|
||||
205719BEDEFFC911468631925C617988 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = F2950763C4C568CC85021D185A35C1FB /* module.modulemap */; };
|
||||
21B9D91DC3573A47C3298339795D0D2A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B419F22EB75EDD4AB9B92F32F7D39755 /* Assets.xcassets */; };
|
||||
@ -108,7 +107,6 @@
|
||||
E32A04EF64C8989C8349A476E3DC1F19 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 41FC82ED1C4C3B7B3D7B2FB721574442 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
E48B36322124BDE8EE3AF22EB3B2B47C /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A58A16491CDDF968B0D56DE7EB96D92 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
E7555C1BCBCF88204907587DBD341663 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 2E1E747C7BC434ADB80CC269B7B595DC /* Headers */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
EA0D7CDB58D81E7D92E731535E41FB5E /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73E7D4B860A5B6B80540E64703192744 /* SomeFramework.framework */; };
|
||||
EEDCCB9427FA46F272DFC190FCCBE77A /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AC91042453E18DF74BA1C0F957D87DC /* StaticLibrary.swift */; };
|
||||
EF285B90A968453FA1CB0CDE8C0AD440 /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = 9A87A926D563773658FB87FEEE4DD132 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
EFBDE105D3397BE7AAC207B8AD3CC8BB /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D296BB7355994040E197A1EE5B41F583 /* Result.framework */; };
|
||||
@ -392,7 +390,6 @@
|
||||
files = (
|
||||
3799FF03E75F5D3C925CBB18B8BB7BF6 /* Framework2.framework in Embed Frameworks */,
|
||||
7856158603A68D4FF152F8E96305B3E7 /* Framework.framework in Embed Frameworks */,
|
||||
1985E98D7107DFCBB2F2AC7DC6A155B5 /* SomeFramework.framework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -448,7 +445,6 @@
|
||||
6BBE762F36D94AB6FFBFE834A99277EA /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = "<group>"; };
|
||||
70A8E15C81E454DC950C59F092CC1049 /* SomeXPCService.xpc */ = {isa = PBXFileReference; path = SomeXPCService.xpc; sourceTree = "<group>"; };
|
||||
72A14C887EF7E9C8CBE914ACC4DDF4D4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
73E7D4B860A5B6B80540E64703192744 /* SomeFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SomeFramework.framework; path = Vendor/SomeFramework.framework; sourceTree = "<group>"; };
|
||||
77C0C341F1865224E059608627CC2D82 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
7ACBAD7D485AA4E2542B9E0F9908D5B2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
7B5068D64404C61A67A184584E13804D /* MyBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MyBundle.bundle; sourceTree = "<group>"; };
|
||||
@ -515,7 +511,6 @@
|
||||
DE50B077EE4BFABAF128321B2A13886F /* Framework.framework in Frameworks */,
|
||||
29A79F030DD325754FD2C82C4A6E0AE6 /* Result.framework in Frameworks */,
|
||||
53B2D7C4FD56D5D1D8AF16B23110235D /* StaticLibrary_ObjC.a in Frameworks */,
|
||||
EA0D7CDB58D81E7D92E731535E41FB5E /* SomeFramework.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -893,7 +888,6 @@
|
||||
12809A79ACE69F501A5FE815B43985BD /* Carthage */,
|
||||
FDB2B6A77D39CD5602F2125F01DEF025 /* Contacts.framework */,
|
||||
0BB1B49A91B892152D68ED76D9D4E759 /* libc++.tbd */,
|
||||
73E7D4B860A5B6B80540E64703192744 /* SomeFramework.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@ -1436,7 +1430,7 @@
|
||||
0FBAE303E3CFC2ABAC876A7719B30922 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1000;
|
||||
LastUpgradeCheck = 1020;
|
||||
TargetAttributes = {
|
||||
020A320BB3736FCDE6CC4E703EE69AC0 = {
|
||||
ProvisioningStyle = Automatic;
|
||||
@ -2144,7 +2138,6 @@
|
||||
00FD318C7418F3351FC0074451FC8AF5 /* Test Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/watchOS",
|
||||
@ -2237,13 +2230,11 @@
|
||||
06E4383A2687EAD5877836CD308F610F /* Staging Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
"\"Vendor\"",
|
||||
);
|
||||
INFOPLIST_FILE = App_iOS/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -2483,7 +2474,6 @@
|
||||
196FEEE6C4B0DDE53AD16BD6E5645F0E /* Test Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
@ -2515,7 +2505,6 @@
|
||||
20803EC42C26E4EA13474E5A694068D1 /* Production Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/watchOS",
|
||||
@ -2532,7 +2521,6 @@
|
||||
234640A811EF6EB9CC9081CA803A4C19 /* Staging Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = App_iOS/App.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -2727,7 +2715,6 @@
|
||||
3FFEE1ED324166B88F5F9A451E59A29C /* Test Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
@ -2811,7 +2798,6 @@
|
||||
4621C6C8A78FBB1CF4078178688742F9 /* Production Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
@ -3008,13 +2994,11 @@
|
||||
545342CFDF7810F2EBFFFC5EEE5B87A6 /* Production Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
"\"Vendor\"",
|
||||
);
|
||||
INFOPLIST_FILE = App_iOS/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -3372,13 +3356,11 @@
|
||||
7931F229200F89B8CDC8A5E3B755C52E /* Test Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
"\"Vendor\"",
|
||||
);
|
||||
INFOPLIST_FILE = App_iOS/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -3407,7 +3389,6 @@
|
||||
7B2A1BE6CA654E9903A4C6802DBCE440 /* Staging Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/watchOS",
|
||||
@ -3613,7 +3594,6 @@
|
||||
94295771D06A8E3DC6DCC8ADE73874F7 /* Staging Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = App_iOS/App.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -3627,7 +3607,6 @@
|
||||
943D402E936EC5BD391F9FD0C7D926EA /* Production Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
@ -3684,7 +3663,6 @@
|
||||
97009625463EC8B19F53007A9D102A56 /* Staging Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
@ -3730,7 +3708,6 @@
|
||||
983ACA9F991B0B18D9760B122B42614C /* Test Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = App_iOS/App.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -3947,7 +3924,6 @@
|
||||
AABC1E325EADF86C5137D659051CC749 /* Production Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/watchOS",
|
||||
@ -3975,13 +3951,11 @@
|
||||
AE37A01B34B4B956E784082C03DEB579 /* Production Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
"\"Vendor\"",
|
||||
);
|
||||
INFOPLIST_FILE = App_iOS/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -4038,13 +4012,11 @@
|
||||
B008685BA25BB8FD771F0AE3B59FA06C /* Staging Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
"\"Vendor\"",
|
||||
);
|
||||
INFOPLIST_FILE = App_iOS/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -4143,7 +4115,7 @@
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_VERSION = 5.0;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0;
|
||||
};
|
||||
name = "Production Debug";
|
||||
@ -4204,7 +4176,6 @@
|
||||
BA5AD3137CD90C50E5E1BDA06645F11E /* Production Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = App_iOS/App.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -4297,8 +4268,8 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_VERSION = 5.0;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0;
|
||||
};
|
||||
@ -4307,7 +4278,6 @@
|
||||
C4397CDA0D458BAD55C911B0A4DC7868 /* Staging Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/watchOS",
|
||||
@ -4366,8 +4336,8 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_VERSION = 5.0;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0;
|
||||
};
|
||||
@ -4440,7 +4410,6 @@
|
||||
CB4F81A519CA89CAF5703DAB428CCE0A /* Test Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = App_iOS/App.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -4454,7 +4423,6 @@
|
||||
CBE9D80AD0719511A13A889E867077CC /* Staging Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
@ -4543,13 +4511,11 @@
|
||||
DC80DC0AF0B4F2B51DAB0A5276F79F05 /* Test Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
"\"Vendor\"",
|
||||
);
|
||||
INFOPLIST_FILE = App_iOS/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
@ -4566,7 +4532,6 @@
|
||||
DDECE7D81A63C1C46A08F1F47ACCE4DF /* Production Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = App_iOS/App.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
@ -4657,7 +4622,7 @@
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_VERSION = 5.0;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0;
|
||||
};
|
||||
name = "Staging Debug";
|
||||
@ -4839,7 +4804,7 @@
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_VERSION = 5.0;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0;
|
||||
};
|
||||
name = "Test Debug";
|
||||
@ -4903,7 +4868,6 @@
|
||||
F3AC6A112F81D0958A316D820549143D /* Test Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/watchOS",
|
||||
@ -5039,8 +5003,8 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_VERSION = 5.0;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0;
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -0,0 +1 @@
|
||||
|
@ -1,186 +0,0 @@
|
||||
// Generated by Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wgcc-compat"
|
||||
|
||||
#if !defined(__has_include)
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
#if !defined(__has_attribute)
|
||||
# define __has_attribute(x) 0
|
||||
#endif
|
||||
#if !defined(__has_feature)
|
||||
# define __has_feature(x) 0
|
||||
#endif
|
||||
#if !defined(__has_warning)
|
||||
# define __has_warning(x) 0
|
||||
#endif
|
||||
|
||||
#if __has_include(<swift/objc-prologue.h>)
|
||||
# include <swift/objc-prologue.h>
|
||||
#endif
|
||||
|
||||
#pragma clang diagnostic ignored "-Wauto-import"
|
||||
#include <objc/NSObject.h>
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#if !defined(SWIFT_TYPEDEFS)
|
||||
# define SWIFT_TYPEDEFS 1
|
||||
# if __has_include(<uchar.h>)
|
||||
# include <uchar.h>
|
||||
# elif !defined(__cplusplus)
|
||||
typedef uint_least16_t char16_t;
|
||||
typedef uint_least32_t char32_t;
|
||||
# endif
|
||||
typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
|
||||
typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
|
||||
typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
|
||||
typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
|
||||
typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
|
||||
typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
|
||||
#endif
|
||||
|
||||
#if !defined(SWIFT_PASTE)
|
||||
# define SWIFT_PASTE_HELPER(x, y) x##y
|
||||
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
|
||||
#endif
|
||||
#if !defined(SWIFT_METATYPE)
|
||||
# define SWIFT_METATYPE(X) Class
|
||||
#endif
|
||||
#if !defined(SWIFT_CLASS_PROPERTY)
|
||||
# if __has_feature(objc_class_property)
|
||||
# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
|
||||
# else
|
||||
# define SWIFT_CLASS_PROPERTY(...)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __has_attribute(objc_runtime_name)
|
||||
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
|
||||
#else
|
||||
# define SWIFT_RUNTIME_NAME(X)
|
||||
#endif
|
||||
#if __has_attribute(swift_name)
|
||||
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
|
||||
#else
|
||||
# define SWIFT_COMPILE_NAME(X)
|
||||
#endif
|
||||
#if __has_attribute(objc_method_family)
|
||||
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
|
||||
#else
|
||||
# define SWIFT_METHOD_FAMILY(X)
|
||||
#endif
|
||||
#if __has_attribute(noescape)
|
||||
# define SWIFT_NOESCAPE __attribute__((noescape))
|
||||
#else
|
||||
# define SWIFT_NOESCAPE
|
||||
#endif
|
||||
#if __has_attribute(warn_unused_result)
|
||||
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
|
||||
#else
|
||||
# define SWIFT_WARN_UNUSED_RESULT
|
||||
#endif
|
||||
#if __has_attribute(noreturn)
|
||||
# define SWIFT_NORETURN __attribute__((noreturn))
|
||||
#else
|
||||
# define SWIFT_NORETURN
|
||||
#endif
|
||||
#if !defined(SWIFT_CLASS_EXTRA)
|
||||
# define SWIFT_CLASS_EXTRA
|
||||
#endif
|
||||
#if !defined(SWIFT_PROTOCOL_EXTRA)
|
||||
# define SWIFT_PROTOCOL_EXTRA
|
||||
#endif
|
||||
#if !defined(SWIFT_ENUM_EXTRA)
|
||||
# define SWIFT_ENUM_EXTRA
|
||||
#endif
|
||||
#if !defined(SWIFT_CLASS)
|
||||
# if __has_attribute(objc_subclassing_restricted)
|
||||
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
|
||||
# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
|
||||
# else
|
||||
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
|
||||
# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(SWIFT_PROTOCOL)
|
||||
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
|
||||
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
|
||||
#endif
|
||||
|
||||
#if !defined(SWIFT_EXTENSION)
|
||||
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
|
||||
#endif
|
||||
|
||||
#if !defined(OBJC_DESIGNATED_INITIALIZER)
|
||||
# if __has_attribute(objc_designated_initializer)
|
||||
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
|
||||
# else
|
||||
# define OBJC_DESIGNATED_INITIALIZER
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(SWIFT_ENUM_ATTR)
|
||||
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
|
||||
# define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open)))
|
||||
# else
|
||||
# define SWIFT_ENUM_ATTR
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(SWIFT_ENUM)
|
||||
# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type
|
||||
# if __has_feature(generalized_swift_name)
|
||||
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type
|
||||
# else
|
||||
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name)
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(SWIFT_UNAVAILABLE)
|
||||
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
|
||||
#endif
|
||||
#if !defined(SWIFT_UNAVAILABLE_MSG)
|
||||
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
|
||||
#endif
|
||||
#if !defined(SWIFT_AVAILABILITY)
|
||||
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
|
||||
#endif
|
||||
#if !defined(SWIFT_DEPRECATED)
|
||||
# define SWIFT_DEPRECATED __attribute__((deprecated))
|
||||
#endif
|
||||
#if !defined(SWIFT_DEPRECATED_MSG)
|
||||
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
|
||||
#endif
|
||||
#if __has_feature(attribute_diagnose_if_objc)
|
||||
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
|
||||
#else
|
||||
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
|
||||
#endif
|
||||
#if __has_feature(modules)
|
||||
#endif
|
||||
|
||||
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
|
||||
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
|
||||
#if __has_warning("-Wpragma-clang-attribute")
|
||||
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
|
||||
#endif
|
||||
#pragma clang diagnostic ignored "-Wunknown-pragmas"
|
||||
#pragma clang diagnostic ignored "-Wnullability"
|
||||
|
||||
#if __has_attribute(external_source_symbol)
|
||||
# pragma push_macro("any")
|
||||
# undef any
|
||||
# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SomeFramework",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
|
||||
# pragma pop_macro("any")
|
||||
#endif
|
||||
|
||||
#if __has_attribute(external_source_symbol)
|
||||
# pragma clang attribute pop
|
||||
#endif
|
||||
#pragma clang diagnostic pop
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@
|
||||
framework module SomeFramework {
|
||||
header "SomeFramework-Swift.h"
|
||||
requires objc
|
||||
}
|
Binary file not shown.
@ -1,165 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/SomeFramework-Swift.h</key>
|
||||
<data>
|
||||
GsWLq+pM7+WTHb5Lytl5yzwE6Lg=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
pHXZVe8uQSXZphapqiSal27/+cY=
|
||||
</data>
|
||||
<key>Modules/SomeFramework.swiftmodule/x86_64.swiftdoc</key>
|
||||
<data>
|
||||
K6JkWBnfjFpkw5UPJ9OZalStS6w=
|
||||
</data>
|
||||
<key>Modules/SomeFramework.swiftmodule/x86_64.swiftmodule</key>
|
||||
<data>
|
||||
45szTu0MSm7Jh5wqFDqeTRcIVpk=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
5TTCyrUix6BrqYO5bplMEDiYK98=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/SomeFramework-Swift.h</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
i0YcIx4NscoXVWFIAurGgi+DMENrppl1DamK1PLy3/w=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/SomeFramework.swiftmodule/x86_64.swiftdoc</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
rw34Qgu/XEVt2QL4jvsrMJrfrqrMma2PBLFwd8lmXc4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/SomeFramework.swiftmodule/x86_64.swiftmodule</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
SR7Q1t/6wNc4fmUX/866/vWPDXJLDPp0zN396/PLlbQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
cbLtUnOM5bPVzNdrge9LxFAcg5zHw3i7lx3sjHEV8t0=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||
<dict>
|
||||
<key>nested</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^[^/]+$</key>
|
||||
<dict>
|
||||
<key>nested</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -4,10 +4,10 @@ set -e
|
||||
carthage bootstrap --cache-builds
|
||||
echo "
|
||||
⚙️ Building iOS app"
|
||||
xcodebuild -quiet -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
|
||||
xcodebuild -quiet -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGN_ENTITLEMENTS="" CODE_SIGNING_ALLOWED="NO"
|
||||
echo "✅ Successfully built iOS app"
|
||||
|
||||
echo "
|
||||
⚙️ Building macOS app"
|
||||
xcodebuild -quiet -project Project.xcodeproj -scheme "App_macOS" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
|
||||
xcodebuild -quiet -project Project.xcodeproj -scheme "App_macOS" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGN_ENTITLEMENTS="" CODE_SIGNING_ALLOWED="NO"
|
||||
echo "✅ Successfully built macOS app"
|
||||
|
@ -90,7 +90,6 @@ targets:
|
||||
weak: true
|
||||
- target: App_watchOS
|
||||
- target: iMessageApp
|
||||
- framework: Vendor/SomeFramework.framework
|
||||
- sdk: Contacts.framework
|
||||
scheme:
|
||||
testTargets:
|
||||
|
@ -598,7 +598,7 @@ class ProjectGeneratorTests: XCTestCase {
|
||||
if let expectedResourceFiles = expectedResourceFiles[target.name] {
|
||||
try expect(resourcesPhases.count) == (expectedResourceFiles.isEmpty ? 0 : 1)
|
||||
if !expectedResourceFiles.isEmpty {
|
||||
let resourceFiles = resourcesPhases[0].files
|
||||
let resourceFiles = (resourcesPhases[0].files ?? [])
|
||||
.compactMap { $0.file }
|
||||
.map { $0.nameOrPath }
|
||||
try expect(Set(resourceFiles)) == expectedResourceFiles
|
||||
@ -611,7 +611,7 @@ class ProjectGeneratorTests: XCTestCase {
|
||||
let expectedLinkedFiles = expectedLinkedFiles[target.name]!
|
||||
try expect(frameworkPhases.count) == (expectedLinkedFiles.isEmpty ? 0 : 1)
|
||||
if !expectedLinkedFiles.isEmpty {
|
||||
let linkFrameworks = frameworkPhases[0].files
|
||||
let linkFrameworks = (frameworkPhases[0].files ?? [])
|
||||
.compactMap { $0.file?.nameOrPath }
|
||||
try expect(Set(linkFrameworks)) == expectedLinkedFiles
|
||||
}
|
||||
@ -620,7 +620,7 @@ class ProjectGeneratorTests: XCTestCase {
|
||||
if let expectedEmbeddedFrameworks = expectedEmbeddedFrameworks[target.name] {
|
||||
try expect(copyFilesPhases.count) == (expectedEmbeddedFrameworks.isEmpty ? 0 : 1)
|
||||
if !expectedEmbeddedFrameworks.isEmpty {
|
||||
let copyFiles = copyFilesPhases[0].files
|
||||
let copyFiles = (copyFilesPhases[0].files ?? [])
|
||||
.compactMap { $0.file?.nameOrPath }
|
||||
try expect(Set(copyFiles)) == expectedEmbeddedFrameworks
|
||||
}
|
||||
@ -871,7 +871,7 @@ class ProjectGeneratorTests: XCTestCase {
|
||||
}
|
||||
let frameworkPhases = nativeTarget.buildPhases.compactMap { $0 as? PBXFrameworksBuildPhase }
|
||||
|
||||
let frameworkBuildFiles = frameworkPhases[0].files
|
||||
let frameworkBuildFiles = frameworkPhases[0].files ?? []
|
||||
let buildFileSettings = frameworkBuildFiles.map { $0.settings }
|
||||
|
||||
try expect(frameworkBuildFiles.count) == 2
|
||||
|
@ -76,7 +76,7 @@ class ProjectSpecTests: XCTestCase {
|
||||
)
|
||||
|
||||
$0.it("fails with invalid XcodeGen version") {
|
||||
let minimumVersion = try Version("1.11.1")
|
||||
let minimumVersion = Version("1.11.1")
|
||||
var project = baseProject
|
||||
project.options = SpecOptions(minimumXcodeGenVersion: minimumVersion)
|
||||
|
||||
@ -86,9 +86,9 @@ class ProjectSpecTests: XCTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
try expectMinimumXcodeGenVersionError(project, minimumVersion: minimumVersion, xcodeGenVersion: try Version("1.11.0"))
|
||||
try expectMinimumXcodeGenVersionError(project, minimumVersion: minimumVersion, xcodeGenVersion: try Version("1.10.99"))
|
||||
try expectMinimumXcodeGenVersionError(project, minimumVersion: minimumVersion, xcodeGenVersion: try Version("0.99"))
|
||||
try expectMinimumXcodeGenVersionError(project, minimumVersion: minimumVersion, xcodeGenVersion: Version("1.11.0"))
|
||||
try expectMinimumXcodeGenVersionError(project, minimumVersion: minimumVersion, xcodeGenVersion: Version("1.10.99"))
|
||||
try expectMinimumXcodeGenVersionError(project, minimumVersion: minimumVersion, xcodeGenVersion: Version("0.99"))
|
||||
}
|
||||
|
||||
$0.it("fails with invalid project") {
|
||||
|
@ -95,8 +95,8 @@ class SourceGeneratorTests: XCTestCase {
|
||||
.first(where: { $0.file == fileReference }) else {
|
||||
throw failure("Cant find build file")
|
||||
}
|
||||
try expect(buildPhase?.files.count) == 1
|
||||
try expect(buildPhase?.files.contains(buildFile)) == true
|
||||
try expect(buildPhase?.files?.count) == 1
|
||||
try expect(buildPhase?.files?.contains(buildFile)) == true
|
||||
}
|
||||
|
||||
$0.it("generates core data models") {
|
||||
@ -518,7 +518,7 @@ class SourceGeneratorTests: XCTestCase {
|
||||
|
||||
let sourcesBuildPhase = pbxProj.buildPhases.first(where: { $0.buildPhase == BuildPhase.sources })!
|
||||
|
||||
try expect(sourcesBuildPhase.files.count) == 1
|
||||
try expect(sourcesBuildPhase.files?.count) == 1
|
||||
}
|
||||
|
||||
$0.it("add only carthage dependencies with same platform") {
|
||||
@ -589,6 +589,30 @@ class SourceGeneratorTests: XCTestCase {
|
||||
"group2",
|
||||
]
|
||||
}
|
||||
|
||||
$0.it("adds missing optional files and folders") {
|
||||
|
||||
let target = Target(name: "Test", type: .application, platform: .iOS, sources: [
|
||||
TargetSource(path: "File1.swift", optional: true),
|
||||
TargetSource(path: "File2.swift", type: .file, optional: true),
|
||||
TargetSource(path: "Group", type: .folder, optional: true),
|
||||
])
|
||||
let project = Project(basePath: directoryPath, name: "Test", targets: [target])
|
||||
let pbxProj = try project.generatePbxProj()
|
||||
try pbxProj.expectFile(paths: ["File1.swift"])
|
||||
try pbxProj.expectFile(paths: ["File2.swift"])
|
||||
}
|
||||
|
||||
$0.it("allows missing optional groups") {
|
||||
|
||||
let target = Target(name: "Test", type: .application, platform: .iOS, sources: [
|
||||
TargetSource(path: "Group1", optional: true),
|
||||
TargetSource(path: "Group2", type: .group, optional: true),
|
||||
TargetSource(path: "Group3", type: .group, optional: true),
|
||||
])
|
||||
let project = Project(basePath: directoryPath, name: "Test", targets: [target])
|
||||
_ = try project.generatePbxProj()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -609,7 +633,7 @@ extension PBXProj {
|
||||
let buildFile = buildFiles
|
||||
.first(where: { $0.file === fileReference })
|
||||
let actualBuildPhase = buildFile
|
||||
.flatMap { buildFile in buildPhases.first { $0.files.contains(buildFile) } }?.buildPhase
|
||||
.flatMap { buildFile in buildPhases.first { $0.files?.contains(buildFile) ?? false } }?.buildPhase
|
||||
|
||||
var error: String?
|
||||
if let buildPhase = buildPhase.buildPhase {
|
||||
|
Loading…
Reference in New Issue
Block a user