Skip to content

Commit 23055cd

Browse files
authored
Resolve & jextract subcommands and further dis-entangle commands (#276)
1 parent 9145d71 commit 23055cd

File tree

83 files changed

+6462
-5494
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+6462
-5494
lines changed

.github/actions/prepare_env/action.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ runs:
77
- name: Install System Dependencies
88
run: apt-get -qq update && apt-get -qq install -y make curl wget libjemalloc2 libjemalloc-dev
99
shell: bash
10-
- name: Cache JDK
10+
- name: Cache JDKs
1111
id: cache-jdk
1212
uses: actions/cache@v4
1313
continue-on-error: true
1414
with:
15-
path: /usr/lib/jvm/default-jdk/
16-
key: ${{ runner.os }}-jdk-${{ matrix.jdk_vendor }}-${{ hashFiles('/usr/lib/jvm/default-jdk/*') }}
15+
path: /usr/lib/jvm/
16+
key: ${{ runner.os }}-jdk-${{ matrix.jdk_vendor }}-${{ hashFiles('/usr/lib/jvm/*') }}
1717
restore-keys: |
1818
${{ runner.os }}-jdk-
1919
- name: Install JDK

.github/workflows/pull_request.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ jobs:
2020
strategy:
2121
fail-fast: true
2222
matrix:
23-
# swift_version: ['nightly-main']
24-
swift_version: ['6.0.2']
23+
swift_version: ['6.1.2']
2524
os_version: ['jammy']
2625
jdk_vendor: ['Corretto']
2726
container:
@@ -36,7 +35,7 @@ jobs:
3635
- name: Gradle :SwiftKit:build
3736
run: ./gradlew build -x test
3837
- name: Gradle :SwiftKit:check
39-
run: ./gradlew :SwiftKit:check --info
38+
run: ./gradlew :SwiftKit:check --debug
4039
- name: Gradle compile JMH benchmarks
4140
run: ./gradlew compileJmh --info
4241

@@ -46,8 +45,7 @@ jobs:
4645
strategy:
4746
fail-fast: false
4847
matrix:
49-
# swift_version: ['nightly-main']
50-
swift_version: ['6.0.2']
48+
swift_version: ['6.1.2']
5149
os_version: ['jammy']
5250
jdk_vendor: ['Corretto']
5351
container:
@@ -70,8 +68,7 @@ jobs:
7068
strategy:
7169
fail-fast: false
7270
matrix:
73-
# swift_version: ['nightly-main']
74-
swift_version: ['6.0.2']
71+
swift_version: ['6.1.2']
7572
os_version: ['jammy']
7673
jdk_vendor: ['Corretto']
7774
container:
@@ -90,8 +87,7 @@ jobs:
9087
strategy:
9188
fail-fast: false
9289
matrix:
93-
# swift_version: ['nightly-main']
94-
swift_version: ['6.0.2']
90+
swift_version: ['6.1.2']
9591
os_version: ['jammy']
9692
jdk_vendor: ['Corretto']
9793
container:
@@ -110,8 +106,7 @@ jobs:
110106
strategy:
111107
fail-fast: false
112108
matrix:
113-
# swift_version: ['nightly-main']
114-
swift_version: ['6.0.2']
109+
swift_version: ['6.1.2']
115110
os_version: ['jammy']
116111
jdk_vendor: ['Corretto']
117112
container:
@@ -130,8 +125,7 @@ jobs:
130125
strategy:
131126
fail-fast: false
132127
matrix:
133-
# swift_version: ['nightly-main']
134-
swift_version: ['6.0.2']
128+
swift_version: ['6.1.2']
135129
os_version: ['jammy']
136130
jdk_vendor: ['Corretto']
137131
container:
@@ -150,8 +144,7 @@ jobs:
150144
strategy:
151145
fail-fast: false
152146
matrix:
153-
# swift_version: ['nightly-main']
154-
swift_version: ['6.0.2']
147+
swift_version: ['6.1.2']
155148
os_version: ['jammy']
156149
jdk_vendor: ['Corretto']
157150
container:
@@ -170,8 +163,7 @@ jobs:
170163
strategy:
171164
fail-fast: false
172165
matrix:
173-
# swift_version: ['nightly-main']
174-
swift_version: ['6.0.2']
166+
swift_version: ['6.1.2']
175167
os_version: ['jammy']
176168
jdk_vendor: ['Corretto']
177169
container:

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
.swift-version
2+
.sdkmanrc
3+
14
.DS_Store
25
.build
36
.idea

.licenseignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,6 @@ Plugins/**/_PluginsShared
4747
Plugins/**/0_PLEASE_SYMLINK*
4848
Plugins/PluginsShared/JavaKitConfigurationShared
4949
Samples/JavaDependencySampleApp/gradle
50-
Sources/_Subprocess/_nio_locks.swift
50+
Sources/_Subprocess/**
51+
Sources/_SubprocessCShims/**
5152
Samples/gradle

.unacceptablelanguageignore

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,5 @@ Sources/SwiftJavaBootstrapJavaTool/SwiftJavaBootstrapJavaTool.swift
22
Sources/_Subprocess/Platforms/Subprocess+Darwin.swift
33
Sources/_Subprocess/Platforms/Subprocess+Linux.swift
44
Sources/_Subprocess/Platforms/Subprocess+Unix.swift
5-
Sources/_Subprocess/Platforms/Subprocess+Unix.swift
6-
Sources/_Subprocess/Platforms/Subprocess+Unix.swift
7-
Sources/_Subprocess/Platforms/Subprocess+Unix.swift
8-
Sources/_Subprocess/Platforms/Subprocess+Unix.swift
9-
Sources/_Subprocess/Platforms/Subprocess+Unix.swift
10-
Sources/_Subprocess/Subprocess+Teardown.swift
11-
Sources/_Subprocess/Subprocess+Teardown.swift
12-
Sources/_Subprocess/Subprocess+Teardown.swift
13-
Sources/_Subprocess/Subprocess+Teardown.swift
14-
Sources/_Subprocess/Subprocess+Teardown.swift
15-
Sources/_Subprocess/Subprocess+Teardown.swift
16-
Sources/_Subprocess/Subprocess+Teardown.swift
5+
Sources/_Subprocess/Teardown.swift
176
Sources/_Subprocess/Subprocess.swift

BuildLogic/src/main/kotlin/build-logic.java-common-conventions.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ plugins {
2323

2424
java {
2525
toolchain {
26-
languageVersion = JavaLanguageVersion.of(22)
26+
languageVersion = JavaLanguageVersion.of(24)
2727
}
2828
}
2929

Package.swift

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Foundation
1111
// Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home.
1212
func findJavaHome() -> String {
1313
if let home = ProcessInfo.processInfo.environment["JAVA_HOME"] {
14+
print("JAVA_HOME = \(home)")
1415
return home
1516
}
1617

@@ -85,7 +86,7 @@ let javaIncludePath = "\(javaHome)/include"
8586
let package = Package(
8687
name: "SwiftJava",
8788
platforms: [
88-
.macOS(.v10_15)
89+
.macOS(.v15)
8990
],
9091
products: [
9192
// ==== JavaKit (i.e. calling Java directly Swift utilities)
@@ -174,12 +175,6 @@ let package = Package(
174175
"JExtractSwiftPlugin"
175176
]
176177
),
177-
.plugin(
178-
name: "JExtractSwiftCommandPlugin",
179-
targets: [
180-
"JExtractSwiftCommandPlugin"
181-
]
182-
),
183178

184179
// ==== Examples
185180

@@ -195,6 +190,10 @@ let package = Package(
195190
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.5.0"),
196191
.package(url: "https://github.com/apple/swift-system", from: "1.4.0"),
197192

193+
// // FIXME: swift-subprocess stopped supporting 6.0 when it moved into a package;
194+
// // we'll need to drop 6.0 as well, but currently blocked on doing so by swiftpm plugin pending design questions
195+
// .package(url: "https://github.com/swiftlang/swift-subprocess.git", revision: "de15b67f7871c8a039ef7f4813eb39a8878f61a6"),
196+
198197
// Benchmarking
199198
.package(url: "https://github.com/ordo-one/package-benchmark", .upToNextMajor(from: "1.4.0")),
200199
],
@@ -363,7 +362,8 @@ let package = Package(
363362
"JavaTypes",
364363
"JavaKitShared",
365364
"JavaKitConfigurationShared",
366-
"_Subprocess", // using process spawning
365+
// .product(name: "Subprocess", package: "swift-subprocess")
366+
"_Subprocess",
367367
],
368368
swiftSettings: [
369369
.swiftLanguageMode(.v5),
@@ -379,6 +379,7 @@ let package = Package(
379379
.product(name: "SwiftSyntax", package: "swift-syntax"),
380380
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
381381
.product(name: "ArgumentParser", package: "swift-argument-parser"),
382+
.product(name: "SystemPackage", package: "swift-system"),
382383
"JavaKit",
383384
"JavaKitJar",
384385
"JavaKitNetwork",
@@ -387,11 +388,14 @@ let package = Package(
387388
"JavaKitShared",
388389
"JavaKitConfigurationShared",
389390
],
390-
391391
swiftSettings: [
392392
.swiftLanguageMode(.v5),
393393
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"]),
394394
.enableUpcomingFeature("BareSlashRegexLiterals"),
395+
.define(
396+
"SYSTEM_PACKAGE_DARWIN",
397+
.when(platforms: [.macOS, .macCatalyst, .iOS, .watchOS, .tvOS, .visionOS])),
398+
.define("SYSTEM_PACKAGE"),
395399
]
396400
),
397401

@@ -419,16 +423,6 @@ let package = Package(
419423
"SwiftJavaTool"
420424
]
421425
),
422-
.plugin(
423-
name: "JExtractSwiftCommandPlugin",
424-
capability: .command(
425-
intent: .custom(verb: "jextract", description: "Extract Java accessors from Swift module"),
426-
permissions: [
427-
]),
428-
dependencies: [
429-
"SwiftJavaTool"
430-
]
431-
),
432426

433427
.testTarget(
434428
name: "JavaKitTests",
@@ -467,6 +461,15 @@ let package = Package(
467461
]
468462
),
469463

464+
.testTarget(
465+
name: "JavaKitConfigurationSharedTests",
466+
dependencies: ["JavaKitConfigurationShared"],
467+
swiftSettings: [
468+
.swiftLanguageMode(.v5),
469+
.unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"])
470+
]
471+
),
472+
470473
.testTarget(
471474
name: "JExtractSwiftTests",
472475
dependencies: [
@@ -480,19 +483,23 @@ let package = Package(
480483

481484
// Experimental Foundation Subprocess Copy
482485
.target(
483-
name: "_CShims",
486+
name: "_SubprocessCShims",
484487
swiftSettings: [
485488
.swiftLanguageMode(.v5)
486489
]
487490
),
488491
.target(
489492
name: "_Subprocess",
490493
dependencies: [
491-
"_CShims",
494+
"_SubprocessCShims",
492495
.product(name: "SystemPackage", package: "swift-system"),
493496
],
494497
swiftSettings: [
495-
.swiftLanguageMode(.v5)
498+
.swiftLanguageMode(.v5),
499+
.define(
500+
"SYSTEM_PACKAGE_DARWIN",
501+
.when(platforms: [.macOS, .macCatalyst, .iOS, .watchOS, .tvOS, .visionOS])),
502+
.define("SYSTEM_PACKAGE"),
496503
]
497504
),
498505
]

0 commit comments

Comments
 (0)