Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce new framework generation process #104

Merged
merged 40 commits into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f9fce56
Support framework plist for InfoPlistGenerator
giginet Sep 14, 2023
32a1188
Implement FrameworkBundleAssembler
giginet Sep 14, 2023
6fbe55c
Assemble Frameworks on XCBuildClient
giginet Sep 14, 2023
e6824bb
Collect headers for frameworks
giginet Sep 14, 2023
2ee446d
Combine XCFramework from new frameworks
giginet Sep 14, 2023
56d7441
Support Dynamic Framework
giginet Sep 14, 2023
3986892
Fix finding bridging headers
giginet Sep 14, 2023
88ea869
Rename modulemap dir name to avoid confusing
giginet Sep 14, 2023
aedc8c8
Support Dynamic Library
giginet Sep 14, 2023
7957fc7
Follow symlink of public headers
giginet Sep 14, 2023
cf05e58
Remove addPublicHeader phase
giginet Sep 14, 2023
979b011
Merge remote-tracking branch 'origin/main' into framework-constructor
giginet Sep 15, 2023
aaab163
Modify productType to framework
giginet Sep 25, 2023
e787e2f
Add modification of modulemap contents
giginet Sep 25, 2023
a670e9f
Introduce FrameworkComponentsCollector
giginet Sep 25, 2023
a56efa9
Fix collecting swiftmodule and birding header
giginet Sep 25, 2023
b8d4382
Follow symlink to assemble frameworks
giginet Sep 25, 2023
97b0207
Copy resource bundles
giginet Sep 25, 2023
b8b9179
Fix SwiftLint violation
giginet Sep 26, 2023
6ab8d01
Add CFBundleExecutable for Info.plist
giginet Sep 26, 2023
b6f2c06
Add tests for PlistGenerator
giginet Sep 26, 2023
cd3734e
Remove unnecessary process
giginet Sep 26, 2023
89c6b23
Refactor FrameworkBundleAssembler
giginet Sep 26, 2023
64f8232
Copy Info.plist on assembler
giginet Sep 26, 2023
d26e951
Do not generate Info.plist
giginet Sep 26, 2023
bde5c3e
Revert InfoPlistGenerator
giginet Sep 26, 2023
55bba6c
Find Info.plist from Versioned Framework
giginet Sep 26, 2023
b82307e
Remove duplicated symlinks
giginet Sep 26, 2023
fae72a7
Update Sources/ScipioKit/Producer/PIF/FrameworkComponentsCollector.swift
giginet Oct 3, 2023
8de6761
Support Xcode 15.0
giginet Sep 27, 2023
2db48f3
Run tests on multiple Xcodes
giginet Sep 27, 2023
d08e8e9
Still supporting Xcode 14.3
giginet Sep 27, 2023
5dfbbd7
Update README
giginet Sep 27, 2023
d34d30c
Swift 5.9 should be default
giginet Sep 27, 2023
454ee84
Use Legacy API
giginet Sep 27, 2023
f08dd5f
Remove unnecessary conditions
giginet Sep 28, 2023
5047bb0
Remove Package.resolved
giginet Sep 28, 2023
48895a5
Bump up fork for 5.8
giginet Sep 28, 2023
e4f5d9d
Ignore Package.resolved
giginet Sep 28, 2023
29dd847
Rename
giginet Oct 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ on:
pull_request:
branches:
- '*'
env:
DEVELOPER_DIR: "/Applications/Xcode_14.3.1.app/Contents/Developer"
jobs:
Tests:
strategy:
matrix:
xcode_version: ["14.3.1", "15.0"]
env:
DEVELOPER_DIR: "/Applications/Xcode_${{ matrix.xcode_version }}.app/Contents/Developer"
runs-on: macos-13
steps:
- uses: actions/checkout@v2
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ DerivedData/
Tests/**/XCFrameworks/*

**/docs

Package.resolved
238 changes: 0 additions & 238 deletions Package.resolved

This file was deleted.

4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ let package = Package(
targets: ["ScipioS3Storage"]),
],
dependencies: [
.package(url: "https://github.com/giginet/swift-package-manager.git",
revision: "11c88e87e6874a570711d18462ca0ea43ff7ff5e"),
.package(url: "https://github.com/apple/swift-package-manager.git",
revision: "swift-5.9-RELEASE"),
.package(url: "https://github.com/apple/swift-log.git",
.upToNextMinor(from: "1.4.2")),
.package(url: "https://github.com/apple/swift-collections",
Expand Down
94 changes: 94 additions & 0 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
// swift-tools-version: 5.6
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
import Foundation

let package = Package(
name: "Scipio",
platforms: [
.macOS(.v12),
],
products: [
.executable(name: "scipio",
targets: ["scipio"]),
.library(
name: "ScipioKit",
targets: ["ScipioKit"]),
.library(
name: "ScipioS3Storage",
targets: ["ScipioS3Storage"]),
],
dependencies: [
.package(url: "https://github.com/giginet/swift-package-manager.git",
revision: "99575e7a3eb8e66112ec45e2f11ef23a1828b110"),
.package(url: "https://github.com/apple/swift-log.git",
.upToNextMinor(from: "1.4.2")),
.package(url: "https://github.com/apple/swift-collections",
from: "1.0.4"),
.package(url: "https://github.com/apple/swift-argument-parser.git",
from: "1.1.0"),
.package(url: "https://github.com/apple/swift-algorithms.git",
from: "1.0.0"),
.package(url: "https://github.com/onevcat/Rainbow",
.upToNextMinor(from: "4.0.1")),
.package(url: "https://github.com/soto-project/soto-codegenerator",
from: "0.6.0"),
.package(url: "https://github.com/soto-project/soto-core.git",
from: "6.4.0"),
],
targets: [
.executableTarget(name: "scipio",
dependencies: [
.target(name: "ScipioKit"),
.product(name: "ArgumentParser", package: "swift-argument-parser"),
]),
.target(
name: "ScipioKit",
dependencies: [
.product(name: "SwiftPMDataModel-auto", package: "swift-package-manager"),
.product(name: "XCBuildSupport", package: "swift-package-manager"),
.product(name: "Logging", package: "swift-log"),
.product(name: "Collections", package: "swift-collections"),
.product(name: "Algorithms", package: "swift-algorithms"),
.product(name: "Rainbow", package: "Rainbow"),
],
plugins: [
.plugin(name: "GenerateScipioVersion")
]
),
.plugin(
name: "GenerateScipioVersion",
capability: .buildTool()
),
.target(
name: "ScipioS3Storage",
dependencies: [
.target(name: "ScipioKit"),
.product(name: "SotoCore", package: "soto-core"),
],
plugins: [
.plugin(name: "SotoCodeGeneratorPlugin", package: "soto-codegenerator"),
]
),
.testTarget(
name: "ScipioKitTests",
dependencies: [
.target(name: "ScipioKit"),
],
exclude: ["Resources/Fixtures/"],
resources: [.copy("Resources/Fixtures")]),
.testTarget(
name: "ScipioS3StorageTests",
dependencies: ["ScipioS3Storage"]),
]
)

let isDevelopment = ProcessInfo.processInfo.environment["SCIPIO_DEVELOPMENT"] == "1"

// swift-docs is not needed for package users
if isDevelopment {
package.dependencies += [
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.3.0"),
]
}
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# Scipio

![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/giginet/Scipio/tests.yml?style=flat-square&logo=github)
![Swift 5.9](https://img.shields.io/badge/Swift-5.9-FA7343?logo=swift&style=flat-square)
![Swift 5.8](https://img.shields.io/badge/Swift-5.8-FA7343?logo=swift&style=flat-square)
[![Xcode 15.0](https://img.shields.io/badge/Xcode-15.0-147EFB?style=flat-square&logo=xcode&link=https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2F)](https://developer.apple.com/xcode/)
[![Xcode 14.3](https://img.shields.io/badge/Xcode-14.3-147EFB?style=flat-square&logo=xcode&link=https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2F)](https://developer.apple.com/xcode/)
[![SwiftPM](https://img.shields.io/badge/SwiftPM-compatible-green?logo=swift&style=flat-square)](https://swift.org/package-manager/)
[![Documentation](https://img.shields.io/badge/Documentation-available-green?style=flat-square)](https://giginet.github.io/Scipio/documentation/scipio/)
![Platforms](https://img.shields.io/badge/Platform-iOS%7CmacOS%7CwatchOS%7CtvOS%7CvisionOS-lightgray?logo=apple&style=flat-square)
[![Xcode 14.3](https://img.shields.io/badge/Xcode-14.3-147EFB?style=flat-square&logo=xcode&link=https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2F)
](https://developer.apple.com/xcode/)
[![Xcode 15.0](https://img.shields.io/badge/Xcode-15.0-147EFB?style=flat-square&logo=xcode&link=https%3A%2F%2Fdeveloper.apple.com%2Fxcode%2F)
](https://developer.apple.com/xcode/)
[![License](https://img.shields.io/badge/License-MIT-darkgray?style=flat-square)
](https://github.com/giginet/Scipio/blob/main/LICENSE.md)

Expand Down
Loading