Library setup (#1)

This PR contains the work done to setup this library.
* Improved the configuration, products, dependencies, and targets for the `Package` file;
* Restructured the folder structure of the library and test targets to start development work;
* Implemented the library, package, documentation and IDE tasks for the `Makefile` file.
* Created the `DocC` documentation catalog in the library target;
* Added the `CONTRIBUTORS` and `LICENSE` files;
* Added `README` file.

Reviewed-on: #1
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #1.
This commit is contained in:
2025-10-05 23:16:54 +00:00
committed by Javier Cicchelli
parent 817cf9fe95
commit 7812e0f11c
10 changed files with 527 additions and 15 deletions
+41 -11
View File
@@ -1,26 +1,56 @@
// swift-tools-version: 6.2
// The swift-tools-version declares the minimum version of Swift required to build this package.
// swift-tools-version: 5.10
//===----------------------------------------------------------------------===
//
// This source file is part of the ASConnectService open source project
//
// Copyright (c) 2025 Röck+Cöde VoF. and the ASConnectService project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of ASConnectService project authors
//
//===----------------------------------------------------------------------===
import PackageDescription
let package = Package(
name: "asconnect-service",
name: AppStoreConnectService.package,
platforms: [
.iOS(.v13),
.macOS(.v10_15),
.tvOS(.v13),
.visionOS(.v1),
.watchOS(.v6)
],
products: [
// Products define the executables and libraries a package produces, making them visible to other packages.
.library(
name: "asconnect-service",
targets: ["asconnect-service"]
name: AppStoreConnectService.package,
targets: [AppStoreConnectService.target]
),
],
dependencies: [
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0")
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products from dependencies.
.target(
name: "asconnect-service"
name: AppStoreConnectService.target,
path: "Sources/ASConnectService"
),
.testTarget(
name: "asconnect-serviceTests",
dependencies: ["asconnect-service"]
name: AppStoreConnectService.test,
dependencies: [
.byName(name: AppStoreConnectService.target)
],
path: "Tests/ASConnectService"
),
]
)
// MARK: - Constants
enum AppStoreConnectService {
static let package = "asconnect-service"
static let target = "ASConnectService"
static let test = "\(AppStoreConnectService.target)Tests"
}