Skip to content

Commit dc84267

Browse files
committed
Multi kmp module integration samples
which fails because Wire doesn't support adding resources to kmp modules
1 parent 10d2133 commit dc84267

8 files changed

Lines changed: 200 additions & 14 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
plugins {
2+
kotlin("multiplatform")
3+
id("com.squareup.wire")
4+
}
5+
6+
kotlin {
7+
val hostOs = System.getProperty("os.name")
8+
val isMingwX64 = hostOs.startsWith("Windows")
9+
val nativeTarget = when {
10+
hostOs == "Mac OS X" -> macosX64("native")
11+
hostOs == "Linux" -> linuxX64("native")
12+
isMingwX64 -> mingwX64("native")
13+
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
14+
}
15+
16+
nativeTarget.apply {
17+
binaries {
18+
executable {
19+
entryPoint = "main"
20+
}
21+
}
22+
}
23+
sourceSets {
24+
val commonMain by getting
25+
val nativeMain by getting
26+
val nativeTest by getting
27+
}
28+
}
29+
30+
dependencies {
31+
protoPath(project(":samples:multi-platform-multi-module:geology-native"))
32+
}
33+
34+
wire {
35+
sourcePath {
36+
srcDir("src/main/proto")
37+
}
38+
39+
sourcePath {
40+
srcProject(":samples:multi-platform-multi-module:location-js")
41+
include("squareup/location/continent.proto")
42+
}
43+
44+
kotlin {
45+
}
46+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
syntax = "proto2";
2+
3+
package squareup.dinosaurs;
4+
5+
option java_package = "com.squareup.dinosaurs";
6+
7+
import "squareup/geology/period.proto";
8+
import "squareup/location/continent.proto";
9+
10+
message Dinosaur {
11+
/** Common name of this dinosaur, like "Stegosaurus". */
12+
optional string name = 1;
13+
14+
/** URLs with images of this dinosaur. */
15+
repeated string picture_urls = 2;
16+
17+
optional double length_meters = 3;
18+
optional double mass_kilograms = 4;
19+
optional squareup.geology.Period period = 5;
20+
optional squareup.location.Continent continent = 6;
21+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
plugins {
2+
kotlin("multiplatform")
3+
id("com.squareup.wire")
4+
}
5+
6+
kotlin {
7+
val hostOs = System.getProperty("os.name")
8+
val isMingwX64 = hostOs.startsWith("Windows")
9+
val nativeTarget = when {
10+
hostOs == "Mac OS X" -> macosX64("native")
11+
hostOs == "Linux" -> linuxX64("native")
12+
isMingwX64 -> mingwX64("native")
13+
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
14+
}
15+
16+
nativeTarget.apply {
17+
binaries {
18+
executable {
19+
entryPoint = "main"
20+
}
21+
}
22+
}
23+
sourceSets {
24+
val commonMain by getting
25+
val nativeMain by getting
26+
val nativeTest by getting
27+
}
28+
}
29+
30+
wire {
31+
protoLibrary = true
32+
33+
kotlin {
34+
}
35+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
syntax = "proto2";
2+
3+
package squareup.geology;
4+
5+
option java_package = "com.squareup.geology";
6+
7+
enum Period {
8+
/** 145.5 million years ago — 66.0 million years ago. */
9+
CRETACEOUS = 1;
10+
11+
/** 201.3 million years ago — 145.0 million years ago. */
12+
JURASSIC = 2;
13+
14+
/** 252.17 million years ago — 201.3 million years ago. */
15+
TRIASSIC = 3;
16+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
plugins {
2+
kotlin("js")
3+
id("com.squareup.wire")
4+
}
5+
6+
repositories {
7+
mavenCentral()
8+
}
9+
10+
kotlin {
11+
js(IR) {
12+
binaries.executable()
13+
browser {
14+
commonWebpackConfig {
15+
cssSupport {
16+
enabled.set(true)
17+
}
18+
}
19+
}
20+
nodejs {
21+
}
22+
}
23+
}
24+
25+
wire {
26+
protoLibrary = true
27+
28+
kotlin {
29+
}
30+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
syntax = "proto2";
2+
3+
package squareup.location;
4+
5+
option java_package = "com.squareup.location";
6+
7+
enum Continent {
8+
AFRICA = 0;
9+
AMERICA = 1;
10+
ANTARCTICA = 2;
11+
ASIA = 3;
12+
AUSTRALIA = 4;
13+
EUROPE = 5;
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
syntax = "proto2";
2+
3+
package squareup.location;
4+
5+
option java_package = "com.squareup.location";
6+
7+
enum Planet {
8+
MERCURY = 0;
9+
VENUS = 1;
10+
EARTH = 2;
11+
MARS = 3;
12+
JUPITER = 4;
13+
SATURN = 5;
14+
URANUS = 6;
15+
NEPTUNE = 7;
16+
}

settings.gradle.kts

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,25 @@ if (startParameter.projectProperties.get("swift") != "false") {
6969
include(":wire-tests-swift:manifest:module_three")
7070
include(":wire-tests-proto3-swift")
7171
}
72-
include(":samples:android-app-java-sample")
73-
include(":samples:android-app-kotlin-sample")
74-
include(":samples:android-app-kotlin-minsdk-sample")
75-
include(":samples:android-app-variants-sample")
76-
include(":samples:android-lib-java-sample")
77-
include(":samples:android-lib-kotlin-sample")
78-
include(":samples:js")
79-
include(":samples:multi-target")
80-
include(":samples:native")
81-
include(":samples:simple-sample")
82-
include(":samples:wire-codegen-sample")
83-
include(":samples:wire-grpc-sample:client")
84-
include(":samples:wire-grpc-sample:protos")
85-
include(":samples:wire-grpc-sample:server")
72+
73+
// include(":samples:simple-sample")
74+
// include(":samples:android-app-java-sample")
75+
// include(":samples:android-app-kotlin-sample")
76+
// include(":samples:android-app-variants-sample")
77+
// include(":samples:android-lib-java-sample")
78+
// include(":samples:android-lib-kotlin-sample")
79+
// include(":samples:js")
80+
include(":samples:multi-platform-multi-module:dinosaurs-native")
81+
include(":samples:multi-platform-multi-module:geology-native")
82+
include(":samples:multi-platform-multi-module:location-js")
83+
// include(":samples:native")
84+
// include(":samples:wire-codegen-sample")
85+
// include(":samples:wire-grpc-sample:client")
86+
// include(":samples:wire-grpc-sample:protos")
87+
// include(":samples:wire-grpc-sample:server")
88+
// include(":samples:wire-grpc-sample:server-plain")
89+
include(":wire-benchmarks")
90+
include(":wire-golden-files")
91+
include(":wire-gradle-plugin-playground")
92+
include(":wire-grpc-tests")
93+
include(":wire-protoc-compatibility-tests")

0 commit comments

Comments
 (0)