CxLLM-Drive already defines targets named CxAWS and CxGit; SPM requires unique target names across the whole package graph. Suffix the umbrella wrapper targets with _Re; products keep the clean CxAWS / CxGit names.
91 lines
4.7 KiB
Swift
91 lines
4.7 KiB
Swift
// swift-tools-version: 5.9
|
|
// CxLLM-SDK — umbrella package that re-exports the CxLLM-* siblings.
|
|
//
|
|
// Downstream apps (CxLLM-IOS, CxWebApp/swift-app, third parties) depend on
|
|
// this single URL and import any combination of: CxCode, CxAWS, CxGit,
|
|
// CxAgent, CxMCP, CxModels, CxChat, CxARA, CxSPARenderer, CxLangBridge,
|
|
// CxInstrument.
|
|
//
|
|
// Each umbrella product is a thin target that does `@_exported import` of
|
|
// the upstream sibling module(s). This lets us reshape the sibling layout
|
|
// later without breaking downstream imports.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "CxLLM-SDK",
|
|
platforms: [.macOS(.v13), .iOS(.v17)],
|
|
products: [
|
|
.library(name: "CxCode", targets: ["CxCode"]),
|
|
.library(name: "CxAWS", targets: ["CxAWS_Re"]),
|
|
.library(name: "CxGit", targets: ["CxGit_Re"]),
|
|
.library(name: "CxAgent", targets: ["CxAgent"]),
|
|
.library(name: "CxMCP", targets: ["CxMCP"]),
|
|
.library(name: "CxModels", targets: ["CxModels"]),
|
|
.library(name: "CxChat", targets: ["CxChat"]),
|
|
.library(name: "CxARA", targets: ["CxARA_Re"]),
|
|
.library(name: "CxSPARenderer", targets: ["CxSPARenderer_Re"]),
|
|
.library(name: "CxLangBridge", targets: ["CxLangBridge_Re"]),
|
|
.library(name: "CxInstrument", targets: ["CxInstrument_Re"]),
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-Kernel.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-LIB.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-PLG.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-Drive.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-ARA.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-SPA-RNDR.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-LB-SDK.git", branch: "main"),
|
|
.package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-INSTRUMENT-PCKG.git", branch: "main"),
|
|
],
|
|
targets: [
|
|
// CxCode = Kernel + Lib + Plugin
|
|
.target(name: "CxCode", dependencies: [
|
|
.product(name: "CxKernel", package: "CxLLM-Kernel"),
|
|
.product(name: "CxLib", package: "CxLLM-LIB"),
|
|
.product(name: "CxPlugin", package: "CxLLM-PLG"),
|
|
], path: "Sources/CxCode"),
|
|
|
|
// CxAWS / CxGit umbrella products live in CxLLM-Drive; use _Re suffix
|
|
// on the umbrella target to avoid colliding with Drive's target names.
|
|
.target(name: "CxAWS_Re", dependencies: [
|
|
.product(name: "CxAWS", package: "CxLLM-Drive"),
|
|
], path: "Sources/CxAWS_Re"),
|
|
.target(name: "CxGit_Re", dependencies: [
|
|
.product(name: "CxGit", package: "CxLLM-Drive"),
|
|
], path: "Sources/CxGit_Re"),
|
|
|
|
// CxAgent / CxMCP / CxModels / CxChat are app-layer modules in CxLLM-IOS
|
|
// today. Phase 3 will move them into their own sibling packages; for now
|
|
// we expose seed targets here so downstream `import CxAgent` etc. compile.
|
|
.target(name: "CxAgent", dependencies: [
|
|
.product(name: "CxLib", package: "CxLLM-LIB"),
|
|
], path: "Sources/CxAgent"),
|
|
.target(name: "CxMCP", dependencies: [
|
|
.product(name: "CxLib", package: "CxLLM-LIB"),
|
|
], path: "Sources/CxMCP"),
|
|
.target(name: "CxModels", dependencies: [
|
|
.product(name: "CxLib", package: "CxLLM-LIB"),
|
|
], path: "Sources/CxModels"),
|
|
.target(name: "CxChat", dependencies: [
|
|
.product(name: "CxLib", package: "CxLLM-LIB"),
|
|
.product(name: "CxKernel", package: "CxLLM-Kernel"),
|
|
], path: "Sources/CxChat"),
|
|
|
|
// Pure re-export shims for siblings whose product name collides with
|
|
// an umbrella target name. The "_Re" target re-exports the sibling.
|
|
.target(name: "CxARA_Re", dependencies: [
|
|
.product(name: "CxARA", package: "CxLLM-ARA"),
|
|
], path: "Sources/CxARA_Re"),
|
|
.target(name: "CxSPARenderer_Re", dependencies: [
|
|
.product(name: "CxSPARenderer", package: "CxLLM-SPA-RNDR"),
|
|
], path: "Sources/CxSPARenderer_Re"),
|
|
.target(name: "CxLangBridge_Re", dependencies: [
|
|
.product(name: "CxLangBridge", package: "CxLLM-LB-SDK"),
|
|
], path: "Sources/CxLangBridge_Re"),
|
|
.target(name: "CxInstrument_Re", dependencies: [
|
|
.product(name: "CxInstrument", package: "CxLLM-INSTRUMENT-PCKG"),
|
|
], path: "Sources/CxInstrument_Re"),
|
|
]
|
|
)
|