diff --git a/.gitmodules b/.gitmodules index 366eb02..cccb680 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "src/main/jni/td"] path = src/main/jni/td url = git@ssh.git.ignuranza.net:andreacavalli/tdlib-fork.git +[submodule "src/main/jni/tdlib-serializer"] + path = src/main/jni/tdlib-serializer + url = ssh://git@ssh.git.ignuranza.net/windoz/tdlib-serializer.git diff --git a/src/main/java/it/ernytech/tdlib/TdApi.java b/src/main/java/it/ernytech/tdlib/TdApi.java index ce7b163..7052555 100644 --- a/src/main/java/it/ernytech/tdlib/TdApi.java +++ b/src/main/java/it/ernytech/tdlib/TdApi.java @@ -1,35 +1,35 @@ package it.ernytech.tdlib; import java.io.ByteArrayOutputStream; -import java.io.DataInput; import java.io.DataOutputStream; -import java.io.DataInputStream; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.lang.IllegalStateException; import java.io.IOException; +import java.io.DataInput; public class TdApi { - public abstract static class Object { - public native String toString(); + public abstract static class Object { + public native String toString(); - public abstract int getConstructor(); + public abstract int getConstructor(); - public byte[] serialize() throws IOException { - try(var baos = new ByteArrayOutputStream()) { - try(var out = new DataOutputStream(baos)) { - serialize(out); - return baos.toByteArray(); + public byte[] serialize() throws IOException { + try(var baos = new ByteArrayOutputStream()) { + try(var out = new DataOutputStream(baos)) { + serialize(out); + return baos.toByteArray(); + } + } } - } + + public abstract void serialize(DataOutputStream out) throws IOException; } - public abstract void serialize(DataOutputStream out) throws IOException; - } - - public abstract static class Function extends Object { - public native String toString(); - } + public abstract static class Function extends Object { + public native String toString(); + } public static class Deserializer { public static Object deserialize(DataInput input) throws IOException { diff --git a/src/main/jni/build.sh b/src/main/jni/build.sh index ef0ae89..a82b92c 100755 --- a/src/main/jni/build.sh +++ b/src/main/jni/build.sh @@ -2,6 +2,9 @@ #rm -r jtdlib/jnibuild #rm -r jtdlib/build +rm ../java/it/ernytech/tdlib/TdApi.java || true +rm ../java/it/ernytech/tdlib/new_TdApi.java || true + export TD_SRC_DIR=${PWD}/td export TD_BIN_DIR=${PWD}/jtdlib/td export JAVA_SRC_DIR=$(dirname `pwd`)/java @@ -19,7 +22,7 @@ cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH= cmake --build . --target install -- -j1 cd ../../../../../ -mvn install -X +#mvn install -X cd src/main/jni/jtdlib/build cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=${TD_BIN_DIR}/lib/cmake/Td -DJAVA_SRC_DIR=${JAVA_SRC_DIR} -DCMAKE_INSTALL_PREFIX:PATH=.. .. @@ -37,5 +40,15 @@ mv bin/libtdjni.so ../bin/tdjni.so cd ../ cp bin/tdjni.so ../resources/libs/linux/amd64/tdjni.so +echo "Compilation done. Patching TdApi.java" + +python3 tdlib-serializer ../java/it/ernytech/tdlib/TdApi.java ../java/it/ernytech/tdlib/new_TdApi.java tdlib-serializer/headers.txt +rm ../java/it/ernytech/tdlib/TdApi.java +unexpand --tabs=2 ../java/it/ernytech/tdlib/new_TdApi.java > ../java/it/ernytech/tdlib/TdApi.java +rm ../java/it/ernytech/tdlib/new_TdApi.java cd ../../../ -mvn install -X + +echo "Installing jar" + +mvn clean install -X + diff --git a/src/main/jni/tdlib-serializer b/src/main/jni/tdlib-serializer new file mode 160000 index 0000000..57bf307 --- /dev/null +++ b/src/main/jni/tdlib-serializer @@ -0,0 +1 @@ +Subproject commit 57bf30757952daafcd28352e38fda21e260ce664