Excuse the vague title.

I'm trying to build a package to help me use third-party cloud storage APIs (Firebase Storage for example), adding `Combine` support, etc. This package does the same thing with CloudKit. Everything compiles fine, but when I import the package module into a separate project of mine, the module is apparently missing some public symbols...

Specifically, the ones wrapped inside of an `#if canImport(FirebaseStorage)` condition. Since Firebase doesn't support SwiftPM yet, this part of the package behaves as expected in the package project itself; it simply skips compiling that whole bit. I figured that a client project that *can* import this module would compile it fine.

Aside: What I'm trying to do looks something like optional dependencies. I don't want to have to import Firebase to use this package's other features. I have considered splitting the package into separate sub-packages, each depending upon the particular third-party library I want to use. I might do that anyway. But the problem remains that Firebase doesn't yet support SwiftPM ([although I hear they're close](https://github.com/firebase/firebase-ios-sdk/issues/3136#issuecomment-604483723)).

My issue appears similar to [this one](https://stackoverflow.com/q/52649742/3799856). My client project just doesn't seem to see the conditioned symbols, though it *can* import `Firebase` and `FirebaseStorage` just fine! I mean that the generated module header is missing them entirely, preventing my client project from compiling when I use them.

It seems to me that the compile condition never leaves the package's own scope of dependent targets. Is this the case? Or am I missing something obvious? I had always assumed that Swift Packages just import and compile the Swift source files into named modules, but now I think that is not so.

Is there a way to build code into a Swift Package that compiles only when the client can import a third-party module that does not yet support SwiftPM? Or does conditional compilation not work that way?

EDIT: [Here is the Swift documentation](https://docs.swift.org/swift-book/ReferenceManual/Statements.html#ID539) on conditional compilation, for reference.