From 7765f2526badf9c76c59341fba601dd5f870cad8 Mon Sep 17 00:00:00 2001 From: Rick Clephas Date: Sat, 6 Nov 2021 13:24:11 +0100 Subject: [PATCH] Update macOS app to use KMPNativeCoroutinesCombine --- .../PeopleInSpace/ViewModel.swift | 71 +-- macOS/PeopleInSpace/Podfile | 1 + macOS/PeopleInSpace/Podfile.lock | 15 +- .../KMPNativeCoroutinesCombine-umbrella.h | 1 + .../KMPNativeCoroutinesCombine.modulemap | 1 + .../KMPNativeCoroutinesCore-umbrella.h | 1 + .../KMPNativeCoroutinesCore.modulemap | 1 + .../KMPNativeCoroutinesCombine/Future.swift | 60 ++ .../FuturePublisher.swift | 20 + .../Publisher.swift | 61 ++ .../KMPNativeCoroutinesCombine/LICENSE.txt | 21 + .../Pods/KMPNativeCoroutinesCombine/README.md | 318 ++++++++++ .../NativeCallback.swift | 12 + .../NativeCancellable.swift | 9 + .../KMPNativeCoroutinesCore/NativeFlow.swift | 15 + .../NativeSuspend.swift | 15 + .../Pods/KMPNativeCoroutinesCore/LICENSE.txt | 21 + .../Pods/KMPNativeCoroutinesCore/README.md | 318 ++++++++++ macOS/PeopleInSpace/Pods/Manifest.lock | 15 +- .../Pods/Pods.xcodeproj/project.pbxproj | 564 +++++++++++++++--- .../KMPNativeCoroutinesCombine-dummy.m | 5 + .../KMPNativeCoroutinesCombine-prefix.pch | 12 + .../KMPNativeCoroutinesCombine-umbrella.h | 16 + .../KMPNativeCoroutinesCombine.debug.xcconfig | 14 + .../KMPNativeCoroutinesCombine.modulemap | 6 + ...MPNativeCoroutinesCombine.release.xcconfig | 14 + .../KMPNativeCoroutinesCore-dummy.m | 5 + .../KMPNativeCoroutinesCore-prefix.pch | 12 + .../KMPNativeCoroutinesCore-umbrella.h | 16 + .../KMPNativeCoroutinesCore.debug.xcconfig | 12 + .../KMPNativeCoroutinesCore.modulemap | 6 + .../KMPNativeCoroutinesCore.release.xcconfig | 12 + ...ds-PeopleInSpace-acknowledgements.markdown | 50 ++ .../Pods-PeopleInSpace-acknowledgements.plist | 62 ++ .../Pods-PeopleInSpace-umbrella.h | 16 + .../Pods-PeopleInSpace.debug.xcconfig | 9 +- .../Pods-PeopleInSpace.modulemap | 6 + .../Pods-PeopleInSpace.release.xcconfig | 9 +- .../common/common.debug.xcconfig | 2 + .../common/common.release.xcconfig | 2 + 40 files changed, 1689 insertions(+), 137 deletions(-) create mode 120000 macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h create mode 120000 macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap create mode 120000 macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h create mode 120000 macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Future.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/FuturePublisher.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Publisher.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/LICENSE.txt create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/README.md create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCallback.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCancellable.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeFlow.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeSuspend.swift create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/LICENSE.txt create mode 100644 macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/README.md create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-dummy.m create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.debug.xcconfig create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.release.xcconfig create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-dummy.m create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.debug.xcconfig create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.release.xcconfig create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-umbrella.h create mode 100644 macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap diff --git a/macOS/PeopleInSpace/PeopleInSpace/ViewModel.swift b/macOS/PeopleInSpace/PeopleInSpace/ViewModel.swift index d4e189e..97b5559 100644 --- a/macOS/PeopleInSpace/PeopleInSpace/ViewModel.swift +++ b/macOS/PeopleInSpace/PeopleInSpace/ViewModel.swift @@ -1,76 +1,41 @@ import Foundation import Combine import common +import KMPNativeCoroutinesCombine class PeopleInSpaceViewModel: ObservableObject { @Published var people = [Assignment]() @Published var issPosition = IssPosition(latitude: 0.0, longitude: 0.0) - private var subscription: AnyCancellable? + private var positionCancellable: AnyCancellable? + private var peopleCancellable: AnyCancellable? private let repository: PeopleInSpaceRepository init(repository: PeopleInSpaceRepository) { self.repository = repository - subscription = IssPositionPublisher(repository: repository) - .assign(to: \.issPosition, on: self) + positionCancellable = createPublisher(for: repository.pollISSPositionNative()) + .receive(on: DispatchQueue.main) + .sink(receiveCompletion: { completion in + debugPrint(completion) + }, receiveValue: { [weak self] value in + self?.issPosition = value + }) } func startObservingPeopleUpdates() { - repository.startObservingPeopleUpdates(success: { data in - self.people = data - }) + peopleCancellable = createPublisher(for: repository.fetchPeopleAsFlowNative()) + .receive(on: DispatchQueue.main) + .sink(receiveCompletion: { completion in + debugPrint(completion) + }, receiveValue: { [weak self] value in + self?.people = value + }) } func stopObservingPeopleUpdates() { - repository.stopObservingPeopleUpdates() + peopleCancellable?.cancel() } } - - - -public struct IssPositionPublisher: Publisher { - public typealias Output = IssPosition - public typealias Failure = Never - - private let repository: PeopleInSpaceRepository - public init(repository: PeopleInSpaceRepository) { - self.repository = repository - } - - public func receive(subscriber: S) where S.Input == IssPosition, S.Failure == Failure { - let subscription = IssPositionSubscription(repository: repository, subscriber: subscriber) - subscriber.receive(subscription: subscription) - } - - final class IssPositionSubscription: Subscription where S.Input == IssPosition, S.Failure == Failure { - private var subscriber: S? - private var job: Kotlinx_coroutines_coreJob? = nil - - private let repository: PeopleInSpaceRepository - - init(repository: PeopleInSpaceRepository, subscriber: S) { - self.repository = repository - self.subscriber = subscriber - - job = repository.iosPollISSPosition().subscribe( - scope: repository.iosScope, - onEach: { position in - subscriber.receive(position!) - }, - onComplete: { subscriber.receive(completion: .finished) }, - onThrow: { error in debugPrint(error) } - ) - } - - func cancel() { - subscriber = nil - job?.cancel(cause: nil) - } - - func request(_ demand: Subscribers.Demand) {} - } -} - diff --git a/macOS/PeopleInSpace/Podfile b/macOS/PeopleInSpace/Podfile index 6ebd325..f104019 100644 --- a/macOS/PeopleInSpace/Podfile +++ b/macOS/PeopleInSpace/Podfile @@ -1,5 +1,6 @@ target 'PeopleInSpace' do pod 'common', :path => '../../common' + pod 'KMPNativeCoroutinesCombine', '0.8.0' end diff --git a/macOS/PeopleInSpace/Podfile.lock b/macOS/PeopleInSpace/Podfile.lock index 40a174f..8a803f9 100644 --- a/macOS/PeopleInSpace/Podfile.lock +++ b/macOS/PeopleInSpace/Podfile.lock @@ -1,8 +1,17 @@ PODS: - common (1.0) + - KMPNativeCoroutinesCombine (0.8.0): + - KMPNativeCoroutinesCore (= 0.8.0) + - KMPNativeCoroutinesCore (0.8.0) DEPENDENCIES: - common (from `../../common`) + - KMPNativeCoroutinesCombine (= 0.8.0) + +SPEC REPOS: + trunk: + - KMPNativeCoroutinesCombine + - KMPNativeCoroutinesCore EXTERNAL SOURCES: common: @@ -10,7 +19,9 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: common: ed5a58383c5a02f46882243487c7aac341a3064f + KMPNativeCoroutinesCombine: cdb11619dbe26c69c27f1bdc50b0291d8fdbff8e + KMPNativeCoroutinesCore: a833472b2d8aa40333dc3ff3ebeeeb7180423602 -PODFILE CHECKSUM: 4a9ed74f1dcfe79bd3d28fe2f8ba019437e5cc29 +PODFILE CHECKSUM: 4c3532a0227a42a4cdf63df73c96962c3c9bfc06 -COCOAPODS: 1.9.3 +COCOAPODS: 1.10.1 diff --git a/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h new file mode 120000 index 0000000..53d6dd5 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h @@ -0,0 +1 @@ +../../../Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h \ No newline at end of file diff --git a/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap new file mode 120000 index 0000000..72c76bc --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap @@ -0,0 +1 @@ +../../../Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap \ No newline at end of file diff --git a/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h new file mode 120000 index 0000000..38ac5ba --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h @@ -0,0 +1 @@ +../../../Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h \ No newline at end of file diff --git a/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap new file mode 120000 index 0000000..4905291 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap @@ -0,0 +1 @@ +../../../Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap \ No newline at end of file diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Future.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Future.swift new file mode 100644 index 0000000..9adf231 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Future.swift @@ -0,0 +1,60 @@ +// +// Future.swift +// KMPNativeCoroutinesCombine +// +// Created by Rick Clephas on 06/06/2021. +// + +import Combine +import KMPNativeCoroutinesCore + +/// Creates an `AnyPublisher` for the provided `NativeSuspend`. +/// - Parameter nativeSuspend: The native suspend function to await. +/// - Returns: A publisher that either finishes with a single value or fails with an error. +public func createFuture( + for nativeSuspend: @escaping NativeSuspend +) -> AnyPublisher { + return NativeSuspendFuture(nativeSuspend: nativeSuspend) + .eraseToAnyPublisher() +} + +internal struct NativeSuspendFuture: Publisher { + + typealias Output = Result + typealias Failure = Failure + + let nativeSuspend: NativeSuspend + + func receive(subscriber: S) where S : Subscriber, Failure == S.Failure, Result == S.Input { + let subscription = NativeSuspendSubscription(nativeSuspend: nativeSuspend, subscriber: subscriber) + subscriber.receive(subscription: subscription) + } +} + +internal class NativeSuspendSubscription: Subscription where S.Input == Result, S.Failure == Failure { + + private var nativeCancellable: NativeCancellable? = nil + private var subscriber: S? + + init(nativeSuspend: NativeSuspend, subscriber: S) { + self.subscriber = subscriber + nativeCancellable = nativeSuspend({ output, unit in + if let subscriber = self.subscriber { + _ = subscriber.receive(output) + subscriber.receive(completion: .finished) + } + return unit + }, { error, unit in + self.subscriber?.receive(completion: .failure(error)) + return unit + }) + } + + func request(_ demand: Subscribers.Demand) { } + + func cancel() { + subscriber = nil + _ = nativeCancellable?() + nativeCancellable = nil + } +} diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/FuturePublisher.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/FuturePublisher.swift new file mode 100644 index 0000000..3d04f39 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/FuturePublisher.swift @@ -0,0 +1,20 @@ +// +// FuturePublisher.swift +// KMPNativeCoroutinesCombine +// +// Created by Rick Clephas on 28/06/2021. +// + +import Combine +import KMPNativeCoroutinesCore + +/// Creates an `AnyPublisher` for the provided `NativeSuspend` that returns a `NativeFlow`. +/// - Parameter nativeSuspend: The native suspend function to await. +/// - Returns: A publisher that publishes the collected values. +public func createPublisher( + for nativeSuspend: @escaping NativeSuspend, Failure, Unit> +) -> AnyPublisher { + return createFuture(for: nativeSuspend) + .flatMap { createPublisher(for: $0) } + .eraseToAnyPublisher() +} diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Publisher.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Publisher.swift new file mode 100644 index 0000000..d590f1b --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Publisher.swift @@ -0,0 +1,61 @@ +// +// Publisher.swift +// KMPNativeCoroutinesCombine +// +// Created by Rick Clephas on 06/06/2021. +// + +import Combine +import KMPNativeCoroutinesCore + +/// Creates an `AnyPublisher` for the provided `NativeFlow`. +/// - Parameter nativeFlow: The native flow to collect. +/// - Returns: A publisher that publishes the collected values. +public func createPublisher( + for nativeFlow: @escaping NativeFlow +) -> AnyPublisher { + return NativeFlowPublisher(nativeFlow: nativeFlow) + .eraseToAnyPublisher() +} + +internal struct NativeFlowPublisher: Publisher { + + typealias Output = Output + typealias Failure = Failure + + let nativeFlow: NativeFlow + + func receive(subscriber: S) where S : Subscriber, Failure == S.Failure, Output == S.Input { + let subscription = NativeFlowSubscription(nativeFlow: nativeFlow, subscriber: subscriber) + subscriber.receive(subscription: subscription) + } +} + +internal class NativeFlowSubscription: Subscription where S.Input == Output, S.Failure == Failure { + + private var nativeCancellable: NativeCancellable? = nil + private var subscriber: S? + + init(nativeFlow: NativeFlow, subscriber: S) { + self.subscriber = subscriber + nativeCancellable = nativeFlow({ item, unit in + _ = self.subscriber?.receive(item) + return unit + }, { error, unit in + if let error = error { + self.subscriber?.receive(completion: .failure(error)) + } else { + self.subscriber?.receive(completion: .finished) + } + return unit + }) + } + + func request(_ demand: Subscribers.Demand) { } + + func cancel() { + subscriber = nil + _ = nativeCancellable?() + nativeCancellable = nil + } +} diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/LICENSE.txt b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/LICENSE.txt new file mode 100644 index 0000000..f955084 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Rick Clephas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/README.md b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/README.md new file mode 100644 index 0000000..220e433 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/README.md @@ -0,0 +1,318 @@ +# KMP-NativeCoroutines + +A library to use Kotlin Coroutines from Swift code in KMP apps. + +## Why this library? + +Both KMP and Kotlin Coroutines are amazing but together they have some limitations. + +The most important limitation is cancellation support. +Kotlin suspend functions are exposed to Swift as functions with a completion handler. +This allows you to easily use them from your Swift code, but it doesn't support cancellation. + +> While Swift 5.5 brings async functions to Swift, it doesn't solve this issue. +> For interoperability with ObjC all function with a completion handler can be called like an async function. +> This means starting with Swift 5.5 your Kotlin suspend functions will look like Swift async functions. +> But that's just syntactic sugar, so there's still no cancellation support. + +Besides cancellation support, ObjC doesn't support generics on protocols. +So all the `Flow` interfaces lose their generic value type which make them hard to use. + +This library solves both of these limitations :smile: . + +## Compatibility + +As of version `0.6.0` the library uses Kotlin version `1.5.30`. +Compatibility versions for older Kotlin versions are also available: + +|Version|Version suffix|Kotlin|Coroutines| +|---|---|:---:|:---:| +|_latest_|_no suffix_|1.5.30|1.5.2-native-mt| +|_latest_|-kotlin-1.5.20|1.5.20|1.5.0-native-mt| +|0.4.3|-kotlin-1.5.10|1.5.10|1.5.0-native-mt| + +You can choose from a couple of Swift implementations. +Depending on the implementation you can support as low as iOS 9, macOS 10.9, tvOS 9 and watchOS 3: + +|Implementation|Swift|iOS|macOS|tvOS|watchOS| +|---|:---:|:---:|:---:|:---:|:---:| +|RxSwift|5.0|9.0|10.9|9.0|3.0| +|Combine|5.0|13.0|10.15|13.0|6.0| +|Async :construction:|5.5|13.0|10.15|13.0|6.0| + +> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta! + +## Installation + +The library consists of a Kotlin and Swift part which you'll need to add to your project. +The Kotlin part is available on Maven Central and the Swift part can be installed via CocoaPods +or the Swift Package Manager. + +Make sure to always use the same versions for all the libraries! + +[![latest release](https://img.shields.io/github/v/release/rickclephas/KMP-NativeCoroutines?label=latest%20release&sort=semver)](https://github.com/rickclephas/KMP-NativeCoroutines/releases) + +### Kotlin + +For Kotlin just add the plugin to your `build.gradle.kts`: +```kotlin +plugins { + id("com.rickclephas.kmp.nativecoroutines") version "" +} +``` + +### Swift (CocoaPods) + +Now for Swift you can choose from a couple of implementations. +Add one or more of the following libraries to your `Podfile`: +```ruby +pod 'KMPNativeCoroutinesCombine' # Combine implementation +pod 'KMPNativeCoroutinesRxSwift' # RxSwift implementation +pod 'KMPNativeCoroutinesAsync' # Swift 5.5 Async/Await implementation +``` + +### Swift (Swift Package Manager) + +All Swift implementations are also available via the Swift Package Manager. + +> **NOTE:** `KMPNativeCoroutinesAsync` requires Xcode 13.2 which is currently in beta. +> To add the async implementation you should add the `-swift-async-await` suffix to the version. + +Just add it to your `Package.swift` file: +```swift +dependencies: [ + .package(url: "git@github.com:rickclephas/KMP-NativeCoroutines.git", from: "") +] +``` + +Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL: +`git@github.com:rickclephas/KMP-NativeCoroutines.git`. + +## Usage + +Using your Kotlin Coroutines code from Swift is almost as easy as calling the Kotlin code. +Just use the wrapper functions in Swift to get Observables, Publishers, AsyncStreams or async functions. + +### Kotlin + +The plugin will automagically generate the necessary code for you! :crystal_ball: + +Your `Flow` properties/functions get a `Native` version: +```kotlin +class Clock { + // Somewhere in your Kotlin code you define a Flow property + val time: StateFlow // This can be any kind of Flow + + // The plugin will generate this native property for you + val timeNative + get() = time.asNativeFlow() +} +``` + +In case of a `StateFlow` or `SharedFlow` property you also get a `NativeValue` or `NativeReplayCache` property: +```kotlin +// For the StateFlow defined above the plugin will generate this native value property +val timeNativeValue + get() = time.value + +// In case of a SharedFlow the plugin would generate this native replay cache property +val timeNativeReplayCache + get() = time.replayCache +``` + +The plugin also generates `Native` versions for all your suspend functions: +```kotlin + +class RandomLettersGenerator { + // Somewhere in your Kotlin code you define a suspend function + suspend fun getRandomLetters(): String { + // Code to generate some random letters + } + + // The plugin will generate this native function for you + fun getRandomLettersNative() = + nativeSuspend { getRandomLetters() } +} +``` + +#### Global properties and functions + +The plugin is currently unable to generate native versions for global properties and functions. +In such cases you have to manually create the native versions in your Kotlin native code. + +#### Custom suffix + +If you don't like the naming of these generated properties/functions, you can easily change the suffix. +For example add the following to your `build.gradle.kts` to use the suffix `Apple`: +```kotlin +nativeCoroutines { + suffix = "Apple" +} +``` + +#### Custom CoroutineScope + +For more control you can provide a custom `CoroutineScope` with the `NativeCoroutineScope` annotation: +```kotlin +class Clock { + @NativeCoroutineScope + internal val coroutineScope = CoroutineScope(job + Dispatchers.Default) +} +``` + +If you don't provide a `CoroutineScope` the default scope will be used which is defined as: +```kotlin +@SharedImmutable +internal val defaultCoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Default) +``` + +#### Ignoring declarations + +Use the `NativeCoroutinesIgnore` annotation to tell the plugin to ignore a property or function: +```kotlin +@NativeCoroutinesIgnore +val ignoredFlowProperty: Flow + +@NativeCoroutinesIgnore +suspend fun ignoredSuspendFunction() { } +``` + +### RxSwift + +The RxSwift implementation provides a couple functions to get an `Observable` or `Single` for your Coroutines code. + +For your `Flow`s use the `createObservable(for:)` function: +```swift +// Create an observable for your flow +let observable = createObservable(for: clock.timeNative) + +// Now use this observable as you would any other +let disposable = observable.subscribe(onNext: { value in + print("Received value: \(value)") +}, onError: { error in + print("Received error: \(error)") +}, onCompleted: { + print("Observable completed") +}, onDisposed: { + print("Observable disposed") +}) + +// To cancel the flow (collection) just dispose the subscription +disposable.dispose() +``` + +For the suspend functions you should use the `createSingle(for:)` function: +```swift +// Create a single for the suspend function +let single = createSingle(for: randomLettersGenerator.getRandomLettersNative()) + +// Now use this single as you would any other +let disposable = single.subscribe(onSuccess: { value in + print("Received value: \(value)") +}, onFailure: { error in + print("Received error: \(error)") +}, onDisposed: { + print("Single disposed") +}) + +// To cancel the suspend function just dispose the subscription +disposable.dispose() +``` + +You can also use the `createObservable(for:)` function for suspend functions that return a `Flow`: +```swift +let observable = createObservable(for: randomLettersGenerator.getRandomLettersFlowNative()) +``` + +**Note:** these functions create deferred `Observable`s and `Single`s. +Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function. + +### Combine + +The Combine implementation provides a couple functions to get an `AnyPublisher` for your Coroutines code. + +For your `Flow`s use the `createPublisher(for:)` function: +```swift +// Create an AnyPublisher for your flow +let publisher = createPublisher(for: clock.timeNative) + +// Now use this publisher as you would any other +let cancellable = publisher.sink { completion in + print("Received completion: \(completion)") +} receiveValue: { value in + print("Received value: \(value)") +} + +// To cancel the flow (collection) just cancel the publisher +cancellable.cancel() +``` + +For the suspend functions you should use the `createFuture(for:)` function: +```swift +// Create a Future/AnyPublisher for the suspend function +let future = createFuture(for: randomLettersGenerator.getRandomLettersNative()) + +// Now use this future as you would any other +let cancellable = future.sink { completion in + print("Received completion: \(completion)") +} receiveValue: { value in + print("Received value: \(value)") +} + +// To cancel the suspend function just cancel the future +cancellable.cancel() +``` + +You can also use the `createPublisher(for:)` function for suspend functions that return a `Flow`: +```swift +let publisher = createPublisher(for: randomLettersGenerator.getRandomLettersFlowNative()) +``` + +**Note:** these functions create deferred `AnyPublisher`s. +Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function. + +### Swift 5.5 Async/Await + +> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta! + +The Async implementation provides some functions to get async Swift functions and `AsyncStream`s. + +Use the `asyncFunction(for:)` function to get an async function that can be awaited: +```swift +let handle = Task { + do { + let letters = try await asyncFunction(for: randomLettersGenerator.getRandomLettersNative()) + print("Got random letters: \(letters)") + } catch { + print("Failed with error: \(error)") + } +} + +// To cancel the suspend function just cancel the async task +handle.cancel() +``` + +or if you don't like these do-catches you can use the `asyncResult(for:)` function: +```swift +let result = await asyncResult(for: randomLettersGenerator.getRandomLettersNative()) +if case let .success(letters) = result { + print("Got random letters: \(letters)") +} +``` + +For `Flow`s there is the `asyncStream(for:)` function to get an `AsyncStream`: +```swift +let handle = Task { + do { + let stream = asyncStream(for: randomLettersGenerator.getRandomLettersFlowNative()) + for try await letters in stream { + print("Got random letters: \(letters)") + } + } catch { + print("Failed with error: \(error)") + } +} + +// To cancel the flow (collection) just cancel the async task +handle.cancel() +``` \ No newline at end of file diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCallback.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCallback.swift new file mode 100644 index 0000000..3e2b968 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCallback.swift @@ -0,0 +1,12 @@ +// +// NativeCallback.swift +// KMPNativeCoroutinesCore +// +// Created by Rick Clephas on 06/06/2021. +// + +/// A callback with a single argument. +/// +/// The return value is provided as the second argument. +/// This way Swift doesn't known what it is/how to get it. +public typealias NativeCallback = (T, Unit) -> Unit diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCancellable.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCancellable.swift new file mode 100644 index 0000000..37d0939 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCancellable.swift @@ -0,0 +1,9 @@ +// +// NativeCancellable.swift +// KMPNativeCoroutinesCore +// +// Created by Rick Clephas on 06/06/2021. +// + +/// A function that cancels the coroutines job. +public typealias NativeCancellable = () -> Unit diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeFlow.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeFlow.swift new file mode 100644 index 0000000..65c4571 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeFlow.swift @@ -0,0 +1,15 @@ +// +// NativeFlow.swift +// KMPNativeCoroutinesCore +// +// Created by Rick Clephas on 06/06/2021. +// + +/// A function that collects a Kotlin coroutines Flow via callbacks. +/// +/// The function takes an `onItem` and `onComplete` callback +/// and returns a cancellable that can be used to cancel the collection. +public typealias NativeFlow = ( + _ onItem: @escaping NativeCallback, + _ onComplete: @escaping NativeCallback +) -> NativeCancellable diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeSuspend.swift b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeSuspend.swift new file mode 100644 index 0000000..3f03bf4 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeSuspend.swift @@ -0,0 +1,15 @@ +// +// NativeSuspend.swift +// KMPNativeCoroutinesCore +// +// Created by Rick Clephas on 06/06/2021. +// + +/// A function that awaits a suspend function via callbacks. +/// +/// The function takes an `onResult` and `onError` callback +/// and returns a cancellable that can be used to cancel the suspend function. +public typealias NativeSuspend = ( + _ onResult: @escaping NativeCallback, + _ onError: @escaping NativeCallback +) -> NativeCancellable diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/LICENSE.txt b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/LICENSE.txt new file mode 100644 index 0000000..f955084 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Rick Clephas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/README.md b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/README.md new file mode 100644 index 0000000..220e433 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/README.md @@ -0,0 +1,318 @@ +# KMP-NativeCoroutines + +A library to use Kotlin Coroutines from Swift code in KMP apps. + +## Why this library? + +Both KMP and Kotlin Coroutines are amazing but together they have some limitations. + +The most important limitation is cancellation support. +Kotlin suspend functions are exposed to Swift as functions with a completion handler. +This allows you to easily use them from your Swift code, but it doesn't support cancellation. + +> While Swift 5.5 brings async functions to Swift, it doesn't solve this issue. +> For interoperability with ObjC all function with a completion handler can be called like an async function. +> This means starting with Swift 5.5 your Kotlin suspend functions will look like Swift async functions. +> But that's just syntactic sugar, so there's still no cancellation support. + +Besides cancellation support, ObjC doesn't support generics on protocols. +So all the `Flow` interfaces lose their generic value type which make them hard to use. + +This library solves both of these limitations :smile: . + +## Compatibility + +As of version `0.6.0` the library uses Kotlin version `1.5.30`. +Compatibility versions for older Kotlin versions are also available: + +|Version|Version suffix|Kotlin|Coroutines| +|---|---|:---:|:---:| +|_latest_|_no suffix_|1.5.30|1.5.2-native-mt| +|_latest_|-kotlin-1.5.20|1.5.20|1.5.0-native-mt| +|0.4.3|-kotlin-1.5.10|1.5.10|1.5.0-native-mt| + +You can choose from a couple of Swift implementations. +Depending on the implementation you can support as low as iOS 9, macOS 10.9, tvOS 9 and watchOS 3: + +|Implementation|Swift|iOS|macOS|tvOS|watchOS| +|---|:---:|:---:|:---:|:---:|:---:| +|RxSwift|5.0|9.0|10.9|9.0|3.0| +|Combine|5.0|13.0|10.15|13.0|6.0| +|Async :construction:|5.5|13.0|10.15|13.0|6.0| + +> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta! + +## Installation + +The library consists of a Kotlin and Swift part which you'll need to add to your project. +The Kotlin part is available on Maven Central and the Swift part can be installed via CocoaPods +or the Swift Package Manager. + +Make sure to always use the same versions for all the libraries! + +[![latest release](https://img.shields.io/github/v/release/rickclephas/KMP-NativeCoroutines?label=latest%20release&sort=semver)](https://github.com/rickclephas/KMP-NativeCoroutines/releases) + +### Kotlin + +For Kotlin just add the plugin to your `build.gradle.kts`: +```kotlin +plugins { + id("com.rickclephas.kmp.nativecoroutines") version "" +} +``` + +### Swift (CocoaPods) + +Now for Swift you can choose from a couple of implementations. +Add one or more of the following libraries to your `Podfile`: +```ruby +pod 'KMPNativeCoroutinesCombine' # Combine implementation +pod 'KMPNativeCoroutinesRxSwift' # RxSwift implementation +pod 'KMPNativeCoroutinesAsync' # Swift 5.5 Async/Await implementation +``` + +### Swift (Swift Package Manager) + +All Swift implementations are also available via the Swift Package Manager. + +> **NOTE:** `KMPNativeCoroutinesAsync` requires Xcode 13.2 which is currently in beta. +> To add the async implementation you should add the `-swift-async-await` suffix to the version. + +Just add it to your `Package.swift` file: +```swift +dependencies: [ + .package(url: "git@github.com:rickclephas/KMP-NativeCoroutines.git", from: "") +] +``` + +Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL: +`git@github.com:rickclephas/KMP-NativeCoroutines.git`. + +## Usage + +Using your Kotlin Coroutines code from Swift is almost as easy as calling the Kotlin code. +Just use the wrapper functions in Swift to get Observables, Publishers, AsyncStreams or async functions. + +### Kotlin + +The plugin will automagically generate the necessary code for you! :crystal_ball: + +Your `Flow` properties/functions get a `Native` version: +```kotlin +class Clock { + // Somewhere in your Kotlin code you define a Flow property + val time: StateFlow // This can be any kind of Flow + + // The plugin will generate this native property for you + val timeNative + get() = time.asNativeFlow() +} +``` + +In case of a `StateFlow` or `SharedFlow` property you also get a `NativeValue` or `NativeReplayCache` property: +```kotlin +// For the StateFlow defined above the plugin will generate this native value property +val timeNativeValue + get() = time.value + +// In case of a SharedFlow the plugin would generate this native replay cache property +val timeNativeReplayCache + get() = time.replayCache +``` + +The plugin also generates `Native` versions for all your suspend functions: +```kotlin + +class RandomLettersGenerator { + // Somewhere in your Kotlin code you define a suspend function + suspend fun getRandomLetters(): String { + // Code to generate some random letters + } + + // The plugin will generate this native function for you + fun getRandomLettersNative() = + nativeSuspend { getRandomLetters() } +} +``` + +#### Global properties and functions + +The plugin is currently unable to generate native versions for global properties and functions. +In such cases you have to manually create the native versions in your Kotlin native code. + +#### Custom suffix + +If you don't like the naming of these generated properties/functions, you can easily change the suffix. +For example add the following to your `build.gradle.kts` to use the suffix `Apple`: +```kotlin +nativeCoroutines { + suffix = "Apple" +} +``` + +#### Custom CoroutineScope + +For more control you can provide a custom `CoroutineScope` with the `NativeCoroutineScope` annotation: +```kotlin +class Clock { + @NativeCoroutineScope + internal val coroutineScope = CoroutineScope(job + Dispatchers.Default) +} +``` + +If you don't provide a `CoroutineScope` the default scope will be used which is defined as: +```kotlin +@SharedImmutable +internal val defaultCoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Default) +``` + +#### Ignoring declarations + +Use the `NativeCoroutinesIgnore` annotation to tell the plugin to ignore a property or function: +```kotlin +@NativeCoroutinesIgnore +val ignoredFlowProperty: Flow + +@NativeCoroutinesIgnore +suspend fun ignoredSuspendFunction() { } +``` + +### RxSwift + +The RxSwift implementation provides a couple functions to get an `Observable` or `Single` for your Coroutines code. + +For your `Flow`s use the `createObservable(for:)` function: +```swift +// Create an observable for your flow +let observable = createObservable(for: clock.timeNative) + +// Now use this observable as you would any other +let disposable = observable.subscribe(onNext: { value in + print("Received value: \(value)") +}, onError: { error in + print("Received error: \(error)") +}, onCompleted: { + print("Observable completed") +}, onDisposed: { + print("Observable disposed") +}) + +// To cancel the flow (collection) just dispose the subscription +disposable.dispose() +``` + +For the suspend functions you should use the `createSingle(for:)` function: +```swift +// Create a single for the suspend function +let single = createSingle(for: randomLettersGenerator.getRandomLettersNative()) + +// Now use this single as you would any other +let disposable = single.subscribe(onSuccess: { value in + print("Received value: \(value)") +}, onFailure: { error in + print("Received error: \(error)") +}, onDisposed: { + print("Single disposed") +}) + +// To cancel the suspend function just dispose the subscription +disposable.dispose() +``` + +You can also use the `createObservable(for:)` function for suspend functions that return a `Flow`: +```swift +let observable = createObservable(for: randomLettersGenerator.getRandomLettersFlowNative()) +``` + +**Note:** these functions create deferred `Observable`s and `Single`s. +Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function. + +### Combine + +The Combine implementation provides a couple functions to get an `AnyPublisher` for your Coroutines code. + +For your `Flow`s use the `createPublisher(for:)` function: +```swift +// Create an AnyPublisher for your flow +let publisher = createPublisher(for: clock.timeNative) + +// Now use this publisher as you would any other +let cancellable = publisher.sink { completion in + print("Received completion: \(completion)") +} receiveValue: { value in + print("Received value: \(value)") +} + +// To cancel the flow (collection) just cancel the publisher +cancellable.cancel() +``` + +For the suspend functions you should use the `createFuture(for:)` function: +```swift +// Create a Future/AnyPublisher for the suspend function +let future = createFuture(for: randomLettersGenerator.getRandomLettersNative()) + +// Now use this future as you would any other +let cancellable = future.sink { completion in + print("Received completion: \(completion)") +} receiveValue: { value in + print("Received value: \(value)") +} + +// To cancel the suspend function just cancel the future +cancellable.cancel() +``` + +You can also use the `createPublisher(for:)` function for suspend functions that return a `Flow`: +```swift +let publisher = createPublisher(for: randomLettersGenerator.getRandomLettersFlowNative()) +``` + +**Note:** these functions create deferred `AnyPublisher`s. +Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function. + +### Swift 5.5 Async/Await + +> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta! + +The Async implementation provides some functions to get async Swift functions and `AsyncStream`s. + +Use the `asyncFunction(for:)` function to get an async function that can be awaited: +```swift +let handle = Task { + do { + let letters = try await asyncFunction(for: randomLettersGenerator.getRandomLettersNative()) + print("Got random letters: \(letters)") + } catch { + print("Failed with error: \(error)") + } +} + +// To cancel the suspend function just cancel the async task +handle.cancel() +``` + +or if you don't like these do-catches you can use the `asyncResult(for:)` function: +```swift +let result = await asyncResult(for: randomLettersGenerator.getRandomLettersNative()) +if case let .success(letters) = result { + print("Got random letters: \(letters)") +} +``` + +For `Flow`s there is the `asyncStream(for:)` function to get an `AsyncStream`: +```swift +let handle = Task { + do { + let stream = asyncStream(for: randomLettersGenerator.getRandomLettersFlowNative()) + for try await letters in stream { + print("Got random letters: \(letters)") + } + } catch { + print("Failed with error: \(error)") + } +} + +// To cancel the flow (collection) just cancel the async task +handle.cancel() +``` \ No newline at end of file diff --git a/macOS/PeopleInSpace/Pods/Manifest.lock b/macOS/PeopleInSpace/Pods/Manifest.lock index 40a174f..8a803f9 100644 --- a/macOS/PeopleInSpace/Pods/Manifest.lock +++ b/macOS/PeopleInSpace/Pods/Manifest.lock @@ -1,8 +1,17 @@ PODS: - common (1.0) + - KMPNativeCoroutinesCombine (0.8.0): + - KMPNativeCoroutinesCore (= 0.8.0) + - KMPNativeCoroutinesCore (0.8.0) DEPENDENCIES: - common (from `../../common`) + - KMPNativeCoroutinesCombine (= 0.8.0) + +SPEC REPOS: + trunk: + - KMPNativeCoroutinesCombine + - KMPNativeCoroutinesCore EXTERNAL SOURCES: common: @@ -10,7 +19,9 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: common: ed5a58383c5a02f46882243487c7aac341a3064f + KMPNativeCoroutinesCombine: cdb11619dbe26c69c27f1bdc50b0291d8fdbff8e + KMPNativeCoroutinesCore: a833472b2d8aa40333dc3ff3ebeeeb7180423602 -PODFILE CHECKSUM: 4a9ed74f1dcfe79bd3d28fe2f8ba019437e5cc29 +PODFILE CHECKSUM: 4c3532a0227a42a4cdf63df73c96962c3c9bfc06 -COCOAPODS: 1.9.3 +COCOAPODS: 1.10.1 diff --git a/macOS/PeopleInSpace/Pods/Pods.xcodeproj/project.pbxproj b/macOS/PeopleInSpace/Pods/Pods.xcodeproj/project.pbxproj index 7f3c495..5870581 100644 --- a/macOS/PeopleInSpace/Pods/Pods.xcodeproj/project.pbxproj +++ b/macOS/PeopleInSpace/Pods/Pods.xcodeproj/project.pbxproj @@ -20,35 +20,105 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 7EE04E32660FEA2555A49E1495986AF0 /* Pods-PeopleInSpace-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B940C188B389195C78FD350311951B45 /* Pods-PeopleInSpace-dummy.m */; }; + 043C42C08203AD7285BDB21C47D33249 /* Pods-PeopleInSpace-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF68B67E775C58C4C4F3EDCBCA259CCF /* Pods-PeopleInSpace-dummy.m */; }; + 3736EF6166F11F146BF0224EF85DCD33 /* Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73149DE97EFF466A1568E5444D7CD0D8 /* Publisher.swift */; }; + 410E20CC9003F5209E289FC65A2DD68B /* Pods-PeopleInSpace-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0053595AACBFEC654010ADCF2653DC81 /* Pods-PeopleInSpace-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4D058353F02CB5ADCD8D002099B1DF7A /* KMPNativeCoroutinesCore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A0C62779E9F25B9D466FEC7CC23B1D67 /* KMPNativeCoroutinesCore-dummy.m */; }; + 4DC8F1E3DC92D51E273BCEBF689FBE81 /* NativeFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE05ED93C5134B9D56393B182882436A /* NativeFlow.swift */; }; + 67CD9BF971445F04D19C8A3F0E694D03 /* NativeSuspend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611593A13CAA4F1FA1570FF3916625D0 /* NativeSuspend.swift */; }; + 7E6C22677B35403CD19CD97CF5C9C55B /* NativeCancellable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75183D40F3E75DC5F1D0B0B070D5B04F /* NativeCancellable.swift */; }; + 81017431C9331986689A0A08AFA75E2B /* FuturePublisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = F860A0723C9C947E65E02533615A6529 /* FuturePublisher.swift */; }; + 8AD216478639C6A89F4A5681F0167FC2 /* NativeCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44756A68E369D299A81D14A655157263 /* NativeCallback.swift */; }; + AD6E8E9276C772339C578AF8B668AA82 /* KMPNativeCoroutinesCore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B276657920D376EF3A9EBCE35D0D8F1E /* KMPNativeCoroutinesCore-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BA5CB03EB636E2CAB97BF33EC29BE249 /* KMPNativeCoroutinesCombine-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 56730A2BB8C6B21DC3C1DE2D1D464E68 /* KMPNativeCoroutinesCombine-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D449674759C5FEEC3D6CC8EB235862CA /* KMPNativeCoroutinesCombine-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 36CC12E1AB4CF26105A57551B45F158C /* KMPNativeCoroutinesCombine-dummy.m */; }; + F665CC033BA40B1DD8175B0419E51CAF /* Future.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ACDC0A0AEEA49523A259A9D243C3EF5 /* Future.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 8231E61C22B0B0267D6B822E259A45F3 /* PBXContainerItemProxy */ = { + 47DB3C25400C1F423D29F65D8870E9CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3F9FD9D97D14F53EE028871E5A26555A; + remoteInfo = KMPNativeCoroutinesCombine; + }; + 78AA26295B54DF9A6A1F5180093F3E80 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FFFB6783B79B68DA14E36A00A348B0B3; + remoteInfo = KMPNativeCoroutinesCore; + }; + 9BBF0F64698ABF7695026003A2064F3C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 8217FBB9D1218C346C0781D0B8F2BBE8; remoteInfo = common; }; + A0A09942BB536170555BACB2BE6D6FD1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FFFB6783B79B68DA14E36A00A348B0B3; + remoteInfo = KMPNativeCoroutinesCore; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0053595AACBFEC654010ADCF2653DC81 /* Pods-PeopleInSpace-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PeopleInSpace-umbrella.h"; sourceTree = ""; }; + 00E9CDC40C89F2C4236A1FCF1C2C333D /* KMPNativeCoroutinesCombine.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCombine.debug.xcconfig; sourceTree = ""; }; 092A4CE06CEC277508371925DC20C57F /* common.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = common.release.xcconfig; sourceTree = ""; }; - 2574321D10AA6E9E090925AD61FC5281 /* Pods-PeopleInSpace.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.release.xcconfig"; sourceTree = ""; }; - 4085E4F5221F23B6ACC7AD5F5DD5311C /* Pods-PeopleInSpace-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PeopleInSpace-acknowledgements.plist"; sourceTree = ""; }; + 1BC4A026DBC6C2982B828355463B2569 /* libKMPNativeCoroutinesCombine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libKMPNativeCoroutinesCombine.a; path = libKMPNativeCoroutinesCombine.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 23785D2EF87CC7217936C2A2C05400F6 /* KMPNativeCoroutinesCombine.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KMPNativeCoroutinesCombine.modulemap; sourceTree = ""; }; + 2436EB57A89CB0131F220CB06E4D318F /* Pods-PeopleInSpace-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PeopleInSpace-acknowledgements.plist"; sourceTree = ""; }; + 2ACDC0A0AEEA49523A259A9D243C3EF5 /* Future.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Future.swift; path = KMPNativeCoroutinesCombine/Future.swift; sourceTree = ""; }; + 2CB824F75C95F744CD060A677ADEF508 /* KMPNativeCoroutinesCombine.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCombine.release.xcconfig; sourceTree = ""; }; + 36CC12E1AB4CF26105A57551B45F158C /* KMPNativeCoroutinesCombine-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KMPNativeCoroutinesCombine-dummy.m"; sourceTree = ""; }; + 441594932398928E8B523A7C8A149DDE /* KMPNativeCoroutinesCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCore.debug.xcconfig; sourceTree = ""; }; + 44756A68E369D299A81D14A655157263 /* NativeCallback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeCallback.swift; path = KMPNativeCoroutinesCore/NativeCallback.swift; sourceTree = ""; }; + 56081C4E77068795768A5CF0E879AE38 /* KMPNativeCoroutinesCombine-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCombine-prefix.pch"; sourceTree = ""; }; + 56730A2BB8C6B21DC3C1DE2D1D464E68 /* KMPNativeCoroutinesCombine-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCombine-umbrella.h"; sourceTree = ""; }; + 611593A13CAA4F1FA1570FF3916625D0 /* NativeSuspend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeSuspend.swift; path = KMPNativeCoroutinesCore/NativeSuspend.swift; sourceTree = ""; }; + 702E8C690C894B05B2B335B3222E38BE /* KMPNativeCoroutinesCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCore.release.xcconfig; sourceTree = ""; }; + 73149DE97EFF466A1568E5444D7CD0D8 /* Publisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Publisher.swift; path = KMPNativeCoroutinesCombine/Publisher.swift; sourceTree = ""; }; + 75183D40F3E75DC5F1D0B0B070D5B04F /* NativeCancellable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeCancellable.swift; path = KMPNativeCoroutinesCore/NativeCancellable.swift; sourceTree = ""; }; + 77A6C896A2C42904FB007F52F8CEFAB8 /* Pods-PeopleInSpace.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.debug.xcconfig"; sourceTree = ""; }; 793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-PeopleInSpace.a"; path = "libPods-PeopleInSpace.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 94E5CDD5D764030A85FEEB8A2E3D7F10 /* Pods-PeopleInSpace.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.debug.xcconfig"; sourceTree = ""; }; + 8467F04D2D129DA89380F1ED04CEF090 /* KMPNativeCoroutinesCore-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCore-prefix.pch"; sourceTree = ""; }; + 935FFB47BC518C20191CB08A3C39EBD9 /* KMPNativeCoroutinesCore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KMPNativeCoroutinesCore.modulemap; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - B940C188B389195C78FD350311951B45 /* Pods-PeopleInSpace-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PeopleInSpace-dummy.m"; sourceTree = ""; }; - C4B5AB0FF97F3A1FE65541C1328FB85C /* Pods-PeopleInSpace-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PeopleInSpace-acknowledgements.markdown"; sourceTree = ""; }; + A0C62779E9F25B9D466FEC7CC23B1D67 /* KMPNativeCoroutinesCore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KMPNativeCoroutinesCore-dummy.m"; sourceTree = ""; }; + AD61EC1E173CDE25748A37C965465600 /* Pods-PeopleInSpace.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PeopleInSpace.modulemap"; sourceTree = ""; }; + B276657920D376EF3A9EBCE35D0D8F1E /* KMPNativeCoroutinesCore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCore-umbrella.h"; sourceTree = ""; }; + BE05ED93C5134B9D56393B182882436A /* NativeFlow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeFlow.swift; path = KMPNativeCoroutinesCore/NativeFlow.swift; sourceTree = ""; }; + CF68B67E775C58C4C4F3EDCBCA259CCF /* Pods-PeopleInSpace-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PeopleInSpace-dummy.m"; sourceTree = ""; }; DA2E698EFAE75544A6E4F612819CCB8B /* common.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = common.framework; path = build/cocoapods/framework/common.framework; sourceTree = ""; }; + E32954243B605448566BC0C0B0BCF70D /* libKMPNativeCoroutinesCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libKMPNativeCoroutinesCore.a; path = libKMPNativeCoroutinesCore.a; sourceTree = BUILT_PRODUCTS_DIR; }; EB3F91873EE86E12ADFA4BF9F5D786D8 /* common.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = common.debug.xcconfig; sourceTree = ""; }; + EEEC7F6E823C77314E6D7F04F0B659C2 /* Pods-PeopleInSpace.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.release.xcconfig"; sourceTree = ""; }; + F860A0723C9C947E65E02533615A6529 /* FuturePublisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FuturePublisher.swift; path = KMPNativeCoroutinesCombine/FuturePublisher.swift; sourceTree = ""; }; + FA445701BEFB74B91B7F7202B33193BD /* Pods-PeopleInSpace-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PeopleInSpace-acknowledgements.markdown"; sourceTree = ""; }; FAA6D45CC6E2EA32EC08EB9FB08994D2 /* common.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = common.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - E4E62A015C1A66A0F419698716F724CE /* Frameworks */ = { + 9267A726B52622ED0E999F5C5BEDC1B1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F6A23041D604F1E204DEC95A52D6A66E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FFD7C6DF3A4A8D1CF620C630992D63A1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -69,6 +139,52 @@ path = ../../../common; sourceTree = ""; }; + 14FBC9D6FC7ED711FC3A3AFCD36A010B /* Products */ = { + isa = PBXGroup; + children = ( + 1BC4A026DBC6C2982B828355463B2569 /* libKMPNativeCoroutinesCombine.a */, + E32954243B605448566BC0C0B0BCF70D /* libKMPNativeCoroutinesCore.a */, + 793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */, + ); + name = Products; + sourceTree = ""; + }; + 3771862DC0EABC5A0E74A521F0266C03 /* KMPNativeCoroutinesCombine */ = { + isa = PBXGroup; + children = ( + 2ACDC0A0AEEA49523A259A9D243C3EF5 /* Future.swift */, + F860A0723C9C947E65E02533615A6529 /* FuturePublisher.swift */, + 73149DE97EFF466A1568E5444D7CD0D8 /* Publisher.swift */, + 5FDACE6DF4ACC2F870346DC9CCB58B8A /* Support Files */, + ); + name = KMPNativeCoroutinesCombine; + path = KMPNativeCoroutinesCombine; + sourceTree = ""; + }; + 42C631582119F1E69C50DA48CD0F397F /* Pods */ = { + isa = PBXGroup; + children = ( + 3771862DC0EABC5A0E74A521F0266C03 /* KMPNativeCoroutinesCombine */, + 79C13BC4ACA87457CAE6DDBD85FA1B5D /* KMPNativeCoroutinesCore */, + ); + name = Pods; + sourceTree = ""; + }; + 45FE54D9A7CB692C4A82AC6A2AF342EF /* Pods-PeopleInSpace */ = { + isa = PBXGroup; + children = ( + AD61EC1E173CDE25748A37C965465600 /* Pods-PeopleInSpace.modulemap */, + FA445701BEFB74B91B7F7202B33193BD /* Pods-PeopleInSpace-acknowledgements.markdown */, + 2436EB57A89CB0131F220CB06E4D318F /* Pods-PeopleInSpace-acknowledgements.plist */, + CF68B67E775C58C4C4F3EDCBCA259CCF /* Pods-PeopleInSpace-dummy.m */, + 0053595AACBFEC654010ADCF2653DC81 /* Pods-PeopleInSpace-umbrella.h */, + 77A6C896A2C42904FB007F52F8CEFAB8 /* Pods-PeopleInSpace.debug.xcconfig */, + EEEC7F6E823C77314E6D7F04F0B659C2 /* Pods-PeopleInSpace.release.xcconfig */, + ); + name = "Pods-PeopleInSpace"; + path = "Target Support Files/Pods-PeopleInSpace"; + sourceTree = ""; + }; 4A33BB545106CE2199669A404AA652FC /* Frameworks */ = { isa = PBXGroup; children = ( @@ -77,12 +193,31 @@ name = Frameworks; sourceTree = ""; }; - 7E33595295125D9ADC3DD69A856B53D6 /* Products */ = { + 5FDACE6DF4ACC2F870346DC9CCB58B8A /* Support Files */ = { isa = PBXGroup; children = ( - 793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */, + 23785D2EF87CC7217936C2A2C05400F6 /* KMPNativeCoroutinesCombine.modulemap */, + 36CC12E1AB4CF26105A57551B45F158C /* KMPNativeCoroutinesCombine-dummy.m */, + 56081C4E77068795768A5CF0E879AE38 /* KMPNativeCoroutinesCombine-prefix.pch */, + 56730A2BB8C6B21DC3C1DE2D1D464E68 /* KMPNativeCoroutinesCombine-umbrella.h */, + 00E9CDC40C89F2C4236A1FCF1C2C333D /* KMPNativeCoroutinesCombine.debug.xcconfig */, + 2CB824F75C95F744CD060A677ADEF508 /* KMPNativeCoroutinesCombine.release.xcconfig */, ); - name = Products; + name = "Support Files"; + path = "../Target Support Files/KMPNativeCoroutinesCombine"; + sourceTree = ""; + }; + 79C13BC4ACA87457CAE6DDBD85FA1B5D /* KMPNativeCoroutinesCore */ = { + isa = PBXGroup; + children = ( + 44756A68E369D299A81D14A655157263 /* NativeCallback.swift */, + 75183D40F3E75DC5F1D0B0B070D5B04F /* NativeCancellable.swift */, + BE05ED93C5134B9D56393B182882436A /* NativeFlow.swift */, + 611593A13CAA4F1FA1570FF3916625D0 /* NativeSuspend.swift */, + CC43999398E46B9480F21D63C0373047 /* Support Files */, + ); + name = KMPNativeCoroutinesCore; + path = KMPNativeCoroutinesCore; sourceTree = ""; }; 8911087DF480A62FEBFB1D31E5F595A4 /* Pod */ = { @@ -103,17 +238,26 @@ path = "../macOS/PeopleInSpace/Pods/Target Support Files/common"; sourceTree = ""; }; - A7BA680F75ECFA065C7E839926F3E718 /* Pods-PeopleInSpace */ = { + B31E03038FAE969EF9A6693F405940EA /* Targets Support Files */ = { isa = PBXGroup; children = ( - C4B5AB0FF97F3A1FE65541C1328FB85C /* Pods-PeopleInSpace-acknowledgements.markdown */, - 4085E4F5221F23B6ACC7AD5F5DD5311C /* Pods-PeopleInSpace-acknowledgements.plist */, - B940C188B389195C78FD350311951B45 /* Pods-PeopleInSpace-dummy.m */, - 94E5CDD5D764030A85FEEB8A2E3D7F10 /* Pods-PeopleInSpace.debug.xcconfig */, - 2574321D10AA6E9E090925AD61FC5281 /* Pods-PeopleInSpace.release.xcconfig */, + 45FE54D9A7CB692C4A82AC6A2AF342EF /* Pods-PeopleInSpace */, ); - name = "Pods-PeopleInSpace"; - path = "Target Support Files/Pods-PeopleInSpace"; + name = "Targets Support Files"; + sourceTree = ""; + }; + CC43999398E46B9480F21D63C0373047 /* Support Files */ = { + isa = PBXGroup; + children = ( + 935FFB47BC518C20191CB08A3C39EBD9 /* KMPNativeCoroutinesCore.modulemap */, + A0C62779E9F25B9D466FEC7CC23B1D67 /* KMPNativeCoroutinesCore-dummy.m */, + 8467F04D2D129DA89380F1ED04CEF090 /* KMPNativeCoroutinesCore-prefix.pch */, + B276657920D376EF3A9EBCE35D0D8F1E /* KMPNativeCoroutinesCore-umbrella.h */, + 441594932398928E8B523A7C8A149DDE /* KMPNativeCoroutinesCore.debug.xcconfig */, + 702E8C690C894B05B2B335B3222E38BE /* KMPNativeCoroutinesCore.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/KMPNativeCoroutinesCore"; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -122,8 +266,9 @@ 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, E363132CB4A8517D710D319A73DD8CB9 /* Development Pods */, D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, - 7E33595295125D9ADC3DD69A856B53D6 /* Products */, - E31BFE6621534631A9AB8E33B5D052A7 /* Targets Support Files */, + 42C631582119F1E69C50DA48CD0F397F /* Pods */, + 14FBC9D6FC7ED711FC3A3AFCD36A010B /* Products */, + B31E03038FAE969EF9A6693F405940EA /* Targets Support Files */, ); sourceTree = ""; }; @@ -134,14 +279,6 @@ name = Frameworks; sourceTree = ""; }; - E31BFE6621534631A9AB8E33B5D052A7 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - A7BA680F75ECFA065C7E839926F3E718 /* Pods-PeopleInSpace */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; E363132CB4A8517D710D319A73DD8CB9 /* Development Pods */ = { isa = PBXGroup; children = ( @@ -153,34 +290,90 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - D2F76021650D1455345732B70977A3FC /* Headers */ = { + 5F9C687B032D88BC5138FDD0F0294935 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 410E20CC9003F5209E289FC65A2DD68B /* Pods-PeopleInSpace-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8D98F7FBA7911C76B4490172AD63D3E5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BA5CB03EB636E2CAB97BF33EC29BE249 /* KMPNativeCoroutinesCombine-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F45FED5EF8C697E2C7261D7234E7876B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AD6E8E9276C772339C578AF8B668AA82 /* KMPNativeCoroutinesCore-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - C17638F5D623F54F5BC5696E85FCF8A3 /* Pods-PeopleInSpace */ = { + 3F9FD9D97D14F53EE028871E5A26555A /* KMPNativeCoroutinesCombine */ = { isa = PBXNativeTarget; - buildConfigurationList = BEE7419E71C054760BD15B7423CFF907 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */; + buildConfigurationList = 2ED9FB6D099CCE4F4978F62F7663ED7C /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCombine" */; buildPhases = ( - D2F76021650D1455345732B70977A3FC /* Headers */, - D305D7457D6577A950CFE60B3043D652 /* Sources */, - E4E62A015C1A66A0F419698716F724CE /* Frameworks */, + 8D98F7FBA7911C76B4490172AD63D3E5 /* Headers */, + 9CEA02A290EF1B802DB096A30846A9F5 /* Sources */, + 9267A726B52622ED0E999F5C5BEDC1B1 /* Frameworks */, + 5F73E2D3BBEE7795EBFEEB65642B871D /* Copy generated compatibility header */, ); buildRules = ( ); dependencies = ( - 57232FE50E2497447CFACBE2757A8222 /* PBXTargetDependency */, + DE102CF6445EDDB7EAA484EE0352D047 /* PBXTargetDependency */, + ); + name = KMPNativeCoroutinesCombine; + productName = KMPNativeCoroutinesCombine; + productReference = 1BC4A026DBC6C2982B828355463B2569 /* libKMPNativeCoroutinesCombine.a */; + productType = "com.apple.product-type.library.static"; + }; + C17638F5D623F54F5BC5696E85FCF8A3 /* Pods-PeopleInSpace */ = { + isa = PBXNativeTarget; + buildConfigurationList = E0B01867EA2B9108E49B01132E5D2B37 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */; + buildPhases = ( + 5F9C687B032D88BC5138FDD0F0294935 /* Headers */, + DA57476879C9AF7FEE9745D963C6B187 /* Sources */, + FFD7C6DF3A4A8D1CF620C630992D63A1 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + CA65EF2D19634B520AE4B11C70E822D9 /* PBXTargetDependency */, + D35DFA056BF6EBA699088C91A0049D19 /* PBXTargetDependency */, + 70DC7965A62EDDBF458AFDBD3571CFFE /* PBXTargetDependency */, ); name = "Pods-PeopleInSpace"; productName = "Pods-PeopleInSpace"; productReference = 793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */; productType = "com.apple.product-type.library.static"; }; + FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2B4D7B0804DDDDD535EBCDB2916D5BCB /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCore" */; + buildPhases = ( + F45FED5EF8C697E2C7261D7234E7876B /* Headers */, + 18779BCA9D1123CA855810C0AAE5A6D0 /* Sources */, + F6A23041D604F1E204DEC95A52D6A66E /* Frameworks */, + 7E593ECA3A8E68EB509565C728C28237 /* Copy generated compatibility header */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = KMPNativeCoroutinesCore; + productName = KMPNativeCoroutinesCore; + productReference = E32954243B605448566BC0C0B0BCF70D /* libKMPNativeCoroutinesCore.a */; + productType = "com.apple.product-type.library.static"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -199,11 +392,13 @@ Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 7E33595295125D9ADC3DD69A856B53D6 /* Products */; + productRefGroup = 14FBC9D6FC7ED711FC3A3AFCD36A010B /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 8217FBB9D1218C346C0781D0B8F2BBE8 /* common */, + 3F9FD9D97D14F53EE028871E5A26555A /* KMPNativeCoroutinesCombine */, + FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */, C17638F5D623F54F5BC5696E85FCF8A3 /* Pods-PeopleInSpace */, ); }; @@ -220,33 +415,123 @@ shellPath = /bin/sh; shellScript = " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=$CONFIGURATION -Pkotlin.native.cocoapods.cflags=\"$OTHER_CFLAGS\" -Pkotlin.native.cocoapods.paths.headers=\"$HEADER_SEARCH_PATHS\" -Pkotlin.native.cocoapods.paths.frameworks=\"$FRAMEWORK_SEARCH_PATHS\"\n"; }; + 5F73E2D3BBEE7795EBFEEB65642B871D /* Copy generated compatibility header */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", + "${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap", + "${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h", + ); + name = "Copy generated compatibility header"; + outputFileListPaths = ( + ); + outputPaths = ( + "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", + "${BUILT_PRODUCTS_DIR}/KMPNativeCoroutinesCombine-umbrella.h", + "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + }; + 7E593ECA3A8E68EB509565C728C28237 /* Copy generated compatibility header */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", + "${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap", + "${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h", + ); + name = "Copy generated compatibility header"; + outputFileListPaths = ( + ); + outputPaths = ( + "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", + "${BUILT_PRODUCTS_DIR}/KMPNativeCoroutinesCore-umbrella.h", + "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - D305D7457D6577A950CFE60B3043D652 /* Sources */ = { + 18779BCA9D1123CA855810C0AAE5A6D0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7EE04E32660FEA2555A49E1495986AF0 /* Pods-PeopleInSpace-dummy.m in Sources */, + 4D058353F02CB5ADCD8D002099B1DF7A /* KMPNativeCoroutinesCore-dummy.m in Sources */, + 8AD216478639C6A89F4A5681F0167FC2 /* NativeCallback.swift in Sources */, + 7E6C22677B35403CD19CD97CF5C9C55B /* NativeCancellable.swift in Sources */, + 4DC8F1E3DC92D51E273BCEBF689FBE81 /* NativeFlow.swift in Sources */, + 67CD9BF971445F04D19C8A3F0E694D03 /* NativeSuspend.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9CEA02A290EF1B802DB096A30846A9F5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F665CC033BA40B1DD8175B0419E51CAF /* Future.swift in Sources */, + 81017431C9331986689A0A08AFA75E2B /* FuturePublisher.swift in Sources */, + D449674759C5FEEC3D6CC8EB235862CA /* KMPNativeCoroutinesCombine-dummy.m in Sources */, + 3736EF6166F11F146BF0224EF85DCD33 /* Publisher.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DA57476879C9AF7FEE9745D963C6B187 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 043C42C08203AD7285BDB21C47D33249 /* Pods-PeopleInSpace-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 57232FE50E2497447CFACBE2757A8222 /* PBXTargetDependency */ = { + 70DC7965A62EDDBF458AFDBD3571CFFE /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = common; target = 8217FBB9D1218C346C0781D0B8F2BBE8 /* common */; - targetProxy = 8231E61C22B0B0267D6B822E259A45F3 /* PBXContainerItemProxy */; + targetProxy = 9BBF0F64698ABF7695026003A2064F3C /* PBXContainerItemProxy */; + }; + CA65EF2D19634B520AE4B11C70E822D9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = KMPNativeCoroutinesCombine; + target = 3F9FD9D97D14F53EE028871E5A26555A /* KMPNativeCoroutinesCombine */; + targetProxy = 47DB3C25400C1F423D29F65D8870E9CB /* PBXContainerItemProxy */; + }; + D35DFA056BF6EBA699088C91A0049D19 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = KMPNativeCoroutinesCore; + target = FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */; + targetProxy = 78AA26295B54DF9A6A1F5180093F3E80 /* PBXContainerItemProxy */; + }; + DE102CF6445EDDB7EAA484EE0352D047 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = KMPNativeCoroutinesCore; + target = FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */; + targetProxy = A0A09942BB536170555BACB2BE6D6FD1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0253CCDEE11BB2E876CF8C6EBDC6E1A8 /* Release */ = { + 0AE172D8F2A4843BFACAD21A0ED26541 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -269,6 +554,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -303,10 +589,29 @@ }; name = Release; }; - 6DC6BBF7D2A721A4E91A75A28EEB8E83 /* Debug */ = { + 178DF5E36D59F8FD6C6680014C4EC930 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EB3F91873EE86E12ADFA4BF9F5D786D8 /* common.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + SDKROOT = macosx; + }; + name = Debug; + }; + 808E544862838153672EA12FCC127D9A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -329,6 +634,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -367,20 +673,69 @@ }; name = Debug; }; - 80DB47D66BFD15CAB66D0E949A3F916A /* Debug */ = { + A6AED7D3BEE730887C83F60FD7AFEE1C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 94E5CDD5D764030A85FEEB8A2E3D7F10 /* Pods-PeopleInSpace.debug.xcconfig */; + baseConfigurationReference = EEEC7F6E823C77314E6D7F04F0B659C2 /* Pods-PeopleInSpace.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.15; + MODULEMAP_FILE = "Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + B97A6B72EDA86EE6FA21497F49168EBA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2CB824F75C95F744CD060A677ADEF508 /* KMPNativeCoroutinesCombine.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = KMPNativeCoroutinesCombine; + PRODUCT_NAME = KMPNativeCoroutinesCombine; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C077C674C6469568DB938C668E829AE1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 77A6C896A2C42904FB007F52F8CEFAB8 /* Pods-PeopleInSpace.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MODULEMAP_FILE = "Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -390,32 +745,39 @@ }; name = Debug; }; - 86D2A2EFA4F2CF72E22F58CF8CD6B995 /* Debug */ = { + D3707D8F3BE7987DB96E0F0911DCC65A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EB3F91873EE86E12ADFA4BF9F5D786D8 /* common.debug.xcconfig */; + baseConfigurationReference = 702E8C690C894B05B2B335B3222E38BE /* KMPNativeCoroutinesCore.release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.6; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = KMPNativeCoroutinesCore; + PRODUCT_NAME = KMPNativeCoroutinesCore; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; }; - name = Debug; + name = Release; }; - A131A2412A163203FF1534E11094A448 /* Release */ = { + EC20AF0F50816F95DC12A275149D93D6 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 092A4CE06CEC277508371925DC20C57F /* common.release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -426,46 +788,92 @@ }; name = Release; }; - D6A7904CAD11E3F3726C99F86480B560 /* Release */ = { + F401A5F613D876B8143283F0DE7F0E58 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2574321D10AA6E9E090925AD61FC5281 /* Pods-PeopleInSpace.release.xcconfig */; + baseConfigurationReference = 441594932398928E8B523A7C8A149DDE /* KMPNativeCoroutinesCore.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; + GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = KMPNativeCoroutinesCore; + PRODUCT_NAME = KMPNativeCoroutinesCore; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; }; - name = Release; + name = Debug; + }; + F4684F8D37EB6F50D84EAFBA3EDB9AAE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 00E9CDC40C89F2C4236A1FCF1C2C333D /* KMPNativeCoroutinesCombine.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = KMPNativeCoroutinesCombine; + PRODUCT_NAME = KMPNativeCoroutinesCombine; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + }; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 2B4D7B0804DDDDD535EBCDB2916D5BCB /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCore" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6DC6BBF7D2A721A4E91A75A28EEB8E83 /* Debug */, - 0253CCDEE11BB2E876CF8C6EBDC6E1A8 /* Release */, + F401A5F613D876B8143283F0DE7F0E58 /* Debug */, + D3707D8F3BE7987DB96E0F0911DCC65A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BEE7419E71C054760BD15B7423CFF907 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */ = { + 2ED9FB6D099CCE4F4978F62F7663ED7C /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCombine" */ = { isa = XCConfigurationList; buildConfigurations = ( - 80DB47D66BFD15CAB66D0E949A3F916A /* Debug */, - D6A7904CAD11E3F3726C99F86480B560 /* Release */, + F4684F8D37EB6F50D84EAFBA3EDB9AAE /* Debug */, + B97A6B72EDA86EE6FA21497F49168EBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 808E544862838153672EA12FCC127D9A /* Debug */, + 0AE172D8F2A4843BFACAD21A0ED26541 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E0B01867EA2B9108E49B01132E5D2B37 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C077C674C6469568DB938C668E829AE1 /* Debug */, + A6AED7D3BEE730887C83F60FD7AFEE1C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -473,8 +881,8 @@ F11FEA02DA0EC11D42BB6656A90E71FA /* Build configuration list for PBXAggregateTarget "common" */ = { isa = XCConfigurationList; buildConfigurations = ( - 86D2A2EFA4F2CF72E22F58CF8CD6B995 /* Debug */, - A131A2412A163203FF1534E11094A448 /* Release */, + 178DF5E36D59F8FD6C6680014C4EC930 /* Debug */, + EC20AF0F50816F95DC12A275149D93D6 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-dummy.m b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-dummy.m new file mode 100644 index 0000000..4de773d --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_KMPNativeCoroutinesCombine : NSObject +@end +@implementation PodsDummy_KMPNativeCoroutinesCombine +@end diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch new file mode 100644 index 0000000..082f8af --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h new file mode 100644 index 0000000..0916eb1 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double KMPNativeCoroutinesCombineVersionNumber; +FOUNDATION_EXPORT const unsigned char KMPNativeCoroutinesCombineVersionString[]; + diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.debug.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.debug.xcconfig new file mode 100644 index 0000000..4483a0a --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCombine +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap new file mode 100644 index 0000000..3fbd2c3 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap @@ -0,0 +1,6 @@ +module KMPNativeCoroutinesCombine { + umbrella header "KMPNativeCoroutinesCombine-umbrella.h" + + export * + module * { export * } +} diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.release.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.release.xcconfig new file mode 100644 index 0000000..4483a0a --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCombine +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-dummy.m b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-dummy.m new file mode 100644 index 0000000..a17e1df --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_KMPNativeCoroutinesCore : NSObject +@end +@implementation PodsDummy_KMPNativeCoroutinesCore +@end diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch new file mode 100644 index 0000000..082f8af --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h new file mode 100644 index 0000000..9c2d381 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double KMPNativeCoroutinesCoreVersionNumber; +FOUNDATION_EXPORT const unsigned char KMPNativeCoroutinesCoreVersionString[]; + diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.debug.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.debug.xcconfig new file mode 100644 index 0000000..3b6a484 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.debug.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCore +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap new file mode 100644 index 0000000..39966e5 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap @@ -0,0 +1,6 @@ +module KMPNativeCoroutinesCore { + umbrella header "KMPNativeCoroutinesCore-umbrella.h" + + export * + module * { export * } +} diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.release.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.release.xcconfig new file mode 100644 index 0000000..3b6a484 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.release.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCore +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.markdown b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.markdown index 102af75..7cc0c32 100644 --- a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.markdown +++ b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.markdown @@ -1,3 +1,53 @@ # Acknowledgements This application makes use of the following third party libraries: + +## KMPNativeCoroutinesCombine + +MIT License + +Copyright (c) 2021 Rick Clephas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## KMPNativeCoroutinesCore + +MIT License + +Copyright (c) 2021 Rick Clephas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + Generated by CocoaPods - https://cocoapods.org diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.plist b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.plist index 7acbad1..3027ec7 100644 --- a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.plist +++ b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-acknowledgements.plist @@ -12,6 +12,68 @@ Type PSGroupSpecifier + + FooterText + MIT License + +Copyright (c) 2021 Rick Clephas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + KMPNativeCoroutinesCombine + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2021 Rick Clephas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + KMPNativeCoroutinesCore + Type + PSGroupSpecifier + FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-umbrella.h b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-umbrella.h new file mode 100644 index 0000000..b6b7ed0 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_PeopleInSpaceVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_PeopleInSpaceVersionString[]; + diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.debug.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.debug.xcconfig index 91467b2..c2f03a2 100644 --- a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.debug.xcconfig +++ b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.debug.xcconfig @@ -1,8 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "common" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" +OTHER_LDFLAGS = $(inherited) -ObjC -l"KMPNativeCoroutinesCombine" -l"KMPNativeCoroutinesCore" -l"c++" -framework "Combine" -framework "common" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore" USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap new file mode 100644 index 0000000..0780f77 --- /dev/null +++ b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap @@ -0,0 +1,6 @@ +module Pods_PeopleInSpace { + umbrella header "Pods-PeopleInSpace-umbrella.h" + + export * + module * { export * } +} diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.release.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.release.xcconfig index 91467b2..c2f03a2 100644 --- a/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.release.xcconfig +++ b/macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.release.xcconfig @@ -1,8 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "common" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" +OTHER_LDFLAGS = $(inherited) -ObjC -l"KMPNativeCoroutinesCombine" -l"KMPNativeCoroutinesCore" -l"c++" -framework "Combine" -framework "common" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore" USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/common/common.debug.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/common/common.debug.xcconfig index 4bde8e4..288cf68 100644 --- a/macOS/PeopleInSpace/Pods/Target Support Files/common/common.debug.xcconfig +++ b/macOS/PeopleInSpace/Pods/Target Support Files/common/common.debug.xcconfig @@ -1,3 +1,4 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/common FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 @@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../common +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} PRODUCT_MODULE_NAME = common SKIP_INSTALL = YES diff --git a/macOS/PeopleInSpace/Pods/Target Support Files/common/common.release.xcconfig b/macOS/PeopleInSpace/Pods/Target Support Files/common/common.release.xcconfig index 4bde8e4..288cf68 100644 --- a/macOS/PeopleInSpace/Pods/Target Support Files/common/common.release.xcconfig +++ b/macOS/PeopleInSpace/Pods/Target Support Files/common/common.release.xcconfig @@ -1,3 +1,4 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/common FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 @@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../common +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} PRODUCT_MODULE_NAME = common SKIP_INSTALL = YES