Skip to content

Commit fe2f38e

Browse files
committed
chore: Switch from kmp to a normal jvm library
kmp isn't well-supported enough that we can use it yet, with a major issue right now being that the protobuf gradle plugin doesn't support kmp.
1 parent 397c16c commit fe2f38e

File tree

261 files changed

+29
-86
lines changed

Some content is hidden

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

261 files changed

+29
-86
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
docker:
1818
strategy:
1919
matrix:
20-
target: [jvm, native]
20+
target: [jvm]
2121
runs-on: ubuntu-latest
2222
steps:
2323
- name: Set up Docker Buildx

BUILD.bazel

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,24 @@ genrule(
1616
"@platforms//os:osx": ["@bazel_tools//tools/jdk:jni_md_header-darwin"],
1717
"@platforms//os:windows": ["@bazel_tools//tools/jdk:jni_md_header-windows"],
1818
}),
19-
outs = ["lib/src/jvmMain/cpp/jni_md.h"],
19+
outs = ["lib/src/main/cpp/jni_md.h"],
2020
cmd = "cp -f $< $@",
2121
tags = ["java"],
2222
)
2323

2424
genrule(
2525
name = "copy_link_jni_header",
2626
srcs = ["@bazel_tools//tools/jdk:jni_header"],
27-
outs = ["lib/src/jvmMain/cpp/jni.h"],
27+
outs = ["lib/src/main/cpp/jni.h"],
2828
cmd = "cp -f $< $@",
2929
tags = ["java"],
3030
)
3131

3232
proto_library(
3333
name = "jni_proto",
3434
srcs = [
35-
"lib/src/jvmMain/proto/Av.proto",
36-
"lib/src/jvmMain/proto/Core.proto",
35+
"lib/src/main/proto/Av.proto",
36+
"lib/src/main/proto/Core.proto",
3737
],
3838
tags = ["java"],
3939
)
@@ -53,27 +53,27 @@ java_proto_library(
5353
cc_binary(
5454
name = "libtox4j-c.so",
5555
srcs = glob([
56-
"lib/src/jvmMain/cpp/**/*.cpp",
57-
"lib/src/jvmMain/cpp/**/*.h",
56+
"lib/src/main/cpp/**/*.cpp",
57+
"lib/src/main/cpp/**/*.h",
5858
]) + [
59-
":lib/src/jvmMain/cpp/jni.h",
60-
":lib/src/jvmMain/cpp/jni_md.h",
59+
":lib/src/main/cpp/jni.h",
60+
":lib/src/main/cpp/jni_md.h",
6161
],
6262
includes = [
63-
"lib/src/jvmMain/cpp",
64-
"lib/src/jvmMain/proto",
63+
"lib/src/main/cpp",
64+
"lib/src/main/proto",
6565
],
6666
linkopts = select({
67-
"@platforms//os:freebsd": ["-Wl,--version-script,$(location lib/src/jvmMain/cpp/libtox4j-c.ld)"],
68-
"@platforms//os:linux": ["-Wl,--version-script,$(location lib/src/jvmMain/cpp/libtox4j-c.ld)"],
67+
"@platforms//os:freebsd": ["-Wl,--version-script,$(location lib/src/main/cpp/libtox4j-c.ld)"],
68+
"@platforms//os:linux": ["-Wl,--version-script,$(location lib/src/main/cpp/libtox4j-c.ld)"],
6969
"@platforms//os:osx": [],
7070
"@platforms//os:windows": [],
7171
}),
7272
linkshared = True,
7373
tags = ["java"],
7474
visibility = ["//visibility:public"],
7575
deps = [
76-
"lib/src/jvmMain/cpp/libtox4j-c.ld",
76+
"lib/src/main/cpp/libtox4j-c.ld",
7777
":jni_cc_proto",
7878
"//c-toxcore",
7979
"@libsodium",
@@ -83,8 +83,8 @@ cc_binary(
8383
kt_jvm_library(
8484
name = "jvm-toxcore-c",
8585
srcs = glob([
86-
"lib/src/*Main/**/*.java",
87-
"lib/src/*Main/**/*.kt",
86+
"lib/src/main/**/*.java",
87+
"lib/src/main/**/*.kt",
8888
]),
8989
data = ["libtox4j-c.so"],
9090
tags = ["java"],
@@ -95,7 +95,7 @@ kt_jvm_library(
9595
kt_jvm_test(
9696
name = "ToxCoreTest",
9797
size = "small",
98-
srcs = glob(["lib/src/jvmTest/**/*.kt"]),
98+
srcs = glob(["lib/src/test/**/*.kt"]),
9999
jvm_flags = ["-Djava.library.path=jvm-toxcore-c"],
100100
tags = ["java"],
101101
test_class = "im.tox.tox4j.core.ToxCoreTest",

docker/build-native

Lines changed: 0 additions & 13 deletions
This file was deleted.

docker/jvm.Dockerfile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ RUN scripts/build-host "$PWD/_install/host/protobuf.stamp" "-j$(nproc)"
2424
RUN scripts/build-host "$PWD/_install/host/toxcore.stamp" "-j$(nproc)"
2525

2626
# Native code, changes less frequently.
27-
COPY lib/src/jvmMain/cpp/ /work/jvm-toxcore-c/lib/src/jvmMain/cpp/
28-
COPY lib/src/jvmMain/proto/ /work/jvm-toxcore-c/lib/src/jvmMain/proto/
27+
COPY lib/src/main/cpp/ /work/jvm-toxcore-c/lib/src/main/cpp/
28+
COPY lib/src/main/proto/ /work/jvm-toxcore-c/lib/src/main/proto/
2929
RUN touch "$PWD/_install/host/.stamp" \
3030
&& touch "$PWD/_install/host/libsodium.stamp" \
3131
&& touch "$PWD/_install/host/libvpx.stamp" \
@@ -43,10 +43,10 @@ ENV LD_LIBRARY_PATH=/work/jvm-toxcore-c/_install/host/lib
4343
ENV PATH=/work/jvm-toxcore-c/_install/host/bin:$PATH
4444
RUN ./gradlew build
4545

46-
RUN javac -h . -cp /work/jvm-toxcore-c/lib/build/classes/kotlin/jvm/main:/work/jvm-toxcore-c/lib/build/classes/java/jvm/main \
47-
lib/src/jvmMain/java/im/tox/tox4j/impl/jni/ToxAvJni.java \
48-
lib/src/jvmMain/java/im/tox/tox4j/impl/jni/ToxCoreJni.java \
49-
lib/src/jvmMain/java/im/tox/tox4j/impl/jni/ToxCryptoJni.java
50-
RUN diff -u lib/src/jvmMain/cpp/ToxCore/generated/im_tox_tox4j_impl_jni_ToxCoreJni.h im_tox_tox4j_impl_jni_ToxCoreJni.h \
51-
&& diff -u lib/src/jvmMain/cpp/ToxAv/generated/im_tox_tox4j_impl_jni_ToxAvJni.h im_tox_tox4j_impl_jni_ToxAvJni.h \
52-
&& diff -u lib/src/jvmMain/cpp/ToxCrypto/generated/im_tox_tox4j_impl_jni_ToxCryptoJni.h im_tox_tox4j_impl_jni_ToxCryptoJni.h
46+
RUN javac -h . -cp /work/jvm-toxcore-c/lib/build/classes/kotlin/main:/work/jvm-toxcore-c/lib/build/classes/java/main \
47+
lib/src/main/java/im/tox/tox4j/impl/jni/ToxAvJni.java \
48+
lib/src/main/java/im/tox/tox4j/impl/jni/ToxCoreJni.java \
49+
lib/src/main/java/im/tox/tox4j/impl/jni/ToxCryptoJni.java
50+
RUN diff -u lib/src/main/cpp/ToxCore/generated/im_tox_tox4j_impl_jni_ToxCoreJni.h im_tox_tox4j_impl_jni_ToxCoreJni.h \
51+
&& diff -u lib/src/main/cpp/ToxAv/generated/im_tox_tox4j_impl_jni_ToxAvJni.h im_tox_tox4j_impl_jni_ToxAvJni.h \
52+
&& diff -u lib/src/main/cpp/ToxCrypto/generated/im_tox_tox4j_impl_jni_ToxCryptoJni.h im_tox_tox4j_impl_jni_ToxCryptoJni.h

docker/native.Dockerfile

Lines changed: 0 additions & 33 deletions
This file was deleted.

lib/build.gradle.kts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
kotlin("multiplatform") version "1.9.22"
2+
kotlin("jvm") version "1.9.22"
33
id("com.google.protobuf") version "0.9.4"
44

55
// Apply the java-library plugin for API and implementation separation.
@@ -12,21 +12,10 @@ repositories {
1212
}
1313

1414
dependencies {
15+
implementation("com.google.protobuf:protobuf-java:3.24.4")
1516
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
1617
}
1718

18-
kotlin {
19-
jvm()
20-
21-
sourceSets {
22-
val jvmMain by getting {
23-
dependencies {
24-
implementation("com.google.protobuf:protobuf-java:3.24.4")
25-
}
26-
}
27-
}
28-
}
29-
3019
testing {
3120
suites {
3221
// Configure the built-in test suite

0 commit comments

Comments
 (0)