Skip to content

Commit 058d143

Browse files
authored
Merge pull request #71 from DougGregor/split-make-targets
Rework makefile to split JavaKit targets from jextract-swift targets
2 parents fab398b + 03bfbe4 commit 058d143

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

.github/workflows/pull_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,6 @@ jobs:
106106
# run the actual build
107107
- name: Generate sources (make) (Temporary)
108108
# TODO: this should be triggered by the respective builds
109-
run: "make jextract-run"
109+
run: "make jextract-generate"
110110
- name: Test Swift
111111
run: "swift test"

Makefile

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,17 @@ endif
5353

5454
SAMPLES_DIR := "Samples"
5555

56-
all: generate-all
56+
all:
57+
@echo "Welcome to swift-java! There are several makefile targets to choose from:"
58+
@echo " javakit-run: Run the JavaKit example program that uses Java libraries from Swift."
59+
@echo " javakit-generate: Regenerate the Swift wrapper code for the various JavaKit libraries from Java. This only has to be done when changing the Java2Swift tool."
60+
@echo " jextract-run: Run the Java example code that uses the wrapped Swift library. NOTE: this requires development toolchain described in the README."
61+
@echo " jextract-generate: Generate Java wrapper code for the example Swift library allowing Swift to be called from Java. NOTE: this requires development toolchain described in the README."
5762

5863
$(BUILD_DIR)/debug/libJavaKit.$(LIB_SUFFIX) $(BUILD_DIR)/debug/Java2Swift:
5964
swift build
6065

61-
run: $(BUILD_DIR)/debug/libJavaKit.$(LIB_SUFFIX) $(BUILD_DIR)/debug/libExampleSwiftLibrary.$(LIB_SUFFIX)
66+
javakit-run: $(BUILD_DIR)/debug/libJavaKit.$(LIB_SUFFIX) $(BUILD_DIR)/debug/libExampleSwiftLibrary.$(LIB_SUFFIX)
6267
./gradlew Samples:JavaKitSampleApp:run
6368

6469
Java2Swift: $(BUILD_DIR)/debug/Java2Swift
@@ -79,8 +84,8 @@ generate-JavaKitNetwork: Java2Swift generate-JavaKit
7984
mkdir -p Sources/JavaKitNetwork/generated
8085
$(BUILD_DIR)/debug/Java2Swift --module-name JavaKitNetwork --manifests Sources/JavaKit/generated/JavaKit.swift2java -o Sources/JavaKitNetwork/generated java.net.URI java.net.URL java.net.URLClassLoader
8186

82-
generate-all: generate-JavaKit generate-JavaKitReflection generate-JavaKitJar generate-JavaKitNetwork \
83-
jextract-swift
87+
javakit-generate: generate-JavaKit generate-JavaKitReflection generate-JavaKitJar generate-JavaKitNetwork
88+
8489
clean:
8590
rm -rf .build; \
8691
rm -rf Samples/SwiftKitExampleApp/src/generated/java/*
@@ -112,11 +117,11 @@ jextract-swift: generate-JExtract-interface-files
112117
swift build
113118

114119
generate-JExtract-interface-files: $(BUILD_DIR)/debug/libJavaKit.$(LIB_SUFFIX)
115-
echo "Generate .swiftinterface files..."
120+
@echo "Generate .swiftinterface files..."
116121
@$(call make_swiftinterface, "ExampleSwiftLibrary", "MySwiftLibrary")
117122
@$(call make_swiftinterface, "SwiftKitSwift", "SwiftKit")
118123

119-
jextract-run: jextract-swift generate-JExtract-interface-files
124+
jextract-generate: jextract-swift generate-JExtract-interface-files
120125
swift run jextract-swift \
121126
--package-name com.example.swift.generated \
122127
--swift-module ExampleSwiftLibrary \
@@ -129,5 +134,5 @@ jextract-run: jextract-swift generate-JExtract-interface-files
129134
$(BUILD_DIR)/jextract/SwiftKitSwift/SwiftKit.swiftinterface
130135

131136

132-
jextract-run-java: jextract-swift generate-JExtract-interface-files
137+
jextract-run: jextract-generate
133138
./gradlew Samples:SwiftKitSampleApp:run

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ This project contains quite a few builds, Swift, Java, and depends on some custo
6767
Easiest way to get going is to:
6868

6969
```bash
70-
make
70+
make javakit-run # Run the JavaKit example of Swift code using Java libraries
71+
make jextract-run # Run the jextract-swift example of Java code using Swift libraries
7172
swift test # test all Swift code, e.g. jextract-swift
7273
./gradlew test # test all Java code, including integration tests that actually use jextract-ed sources
7374
```

Samples/SwiftKitSampleApp/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ task jextract(type: Exec) {
103103

104104
workingDir = rootDir
105105
commandLine "make"
106-
args "jextract-run"
106+
args "jextract-generate"
107107
}
108108

109109
tasks.named("compileGeneratedJava").configure {

docker/docker-compose.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ services:
3333

3434
test-java:
3535
<<: *common
36-
command: /bin/bash -xcl "uname -a && swift -version && java -version && make jextract-run && ./gradlew test --debug"
36+
command: /bin/bash -xcl "uname -a && swift -version && java -version && make jextract-generate && ./gradlew test --debug"
3737

3838
test:
3939
<<: *common
40-
command: /bin/bash -xcl "uname -a && swift -version && java -version && make jextract-run && swift $${SWIFT_TEST_VERB-test} $${WARN_AS_ERROR_ARG-} $${SANITIZER_ARG-} $${IMPORT_CHECK_ARG-} && ./gradlew test --debug"
40+
command: /bin/bash -xcl "uname -a && swift -version && java -version && make jextract-generate && swift $${SWIFT_TEST_VERB-test} $${WARN_AS_ERROR_ARG-} $${SANITIZER_ARG-} $${IMPORT_CHECK_ARG-} && ./gradlew test --debug"
4141

4242
# util
4343

0 commit comments

Comments
 (0)