|
1 | | -# Tox4j (C backend) |
2 | | - |
3 | | -This repository contains the [c-toxcore](https://github.com/TokTok/c-toxcore) |
4 | | -backed implementation of the generic backend-agnostic JVM |
5 | | -[toxcore-api](https://github.com/TokTok/jvm-toxcore-api). |
| 1 | +# Tox4j |
6 | 2 |
|
| 3 | +This is a Kotlin binding to [c-toxcore](https://github.com/TokTok/c-toxcore). |
| 4 | +Java should also mostly be supported, but there may be issues. If you find |
| 5 | +issues, please open a [ticket](https://github.com/TokTok/jvm-toxcore-c/issues). |
7 | 6 |
|
8 | 7 | ## Contributing |
9 | 8 |
|
10 | 9 | We're using the standard Github workflow for our code reviews. Just open Pull |
11 | 10 | Requests and the reviewer will guide you through the process. |
12 | | - |
13 | | - |
14 | | -## Build status |
15 | | - |
16 | | -| Build | Status | |
17 | | -|-----------------|-----------| |
18 | | -| Travis CI | [](https://travis-ci.org/TokTok/jvm-toxcore-c) | |
19 | | -| Coverage | [](https://coveralls.io/r/TokTok/jvm-toxcore-c?branch=master) | |
20 | | -| Android arm64 | [](https://build.tox.chat/job/tox4j_build_android_arm64_release/) | |
21 | | -| Android armeabi | [](https://build.tox.chat/job/tox4j_build_android_armel_release/) | |
22 | | -| Android x86 | [](https://build.tox.chat/job/tox4j_build_android_x86_release/) | |
23 | | - |
24 | | - |
25 | | -# Building Tox4j |
26 | | - |
27 | | -## Dependencies: compile |
28 | | - |
29 | | -To build the package itself, the following dependencies are required: |
30 | | - |
31 | | -- com.chuusai:shapeless_2.11:2.3.3 |
32 | | -- com.google.code.findbugs:jsr305:3.0.0 |
33 | | -- com.google.guava:guava:19.0 |
34 | | -- com.google.protobuf:protobuf-java:3.5.0 |
35 | | -- com.intellij:annotations:12.0 |
36 | | -- com.lihaoyi:fastparse-utils_2.11:0.3.7 |
37 | | -- com.lihaoyi:fastparse_2.11:0.3.7 |
38 | | -- com.lihaoyi:sourcecode_2.11:0.1.1 |
39 | | -- com.trueaccord.lenses:lenses_2.11:0.4.7 |
40 | | -- com.trueaccord.scalapb:scalapb-runtime-grpc_2.11:0.5.43 |
41 | | -- com.trueaccord.scalapb:scalapb-runtime_2.11:0.5.43 |
42 | | -- com.typesafe.scala-logging:scala-logging_2.11:3.7.2 |
43 | | -- io.grpc:grpc-context:1.0.1 |
44 | | -- io.grpc:grpc-core:1.0.1 |
45 | | -- io.grpc:grpc-stub:1.0.1 |
46 | | -- org.scala-lang.modules:scala-parser-combinators_2.11:1.0.4 |
47 | | -- org.scala-lang.modules:scala-xml_2.11:1.0.5 |
48 | | -- org.scala-lang:scala-compiler:2.11.12 |
49 | | -- org.scala-lang:scala-reflect:2.11.12 |
50 | | -- org.slf4j:slf4j-api:1.7.25 |
51 | | -- org.toktok:macros_2.11:0.1.1 |
52 | | -- org.toktok:tox4j-api_2.11:0.1.4 |
53 | | -- org.toktok:tox4j-c_2.11:0.1.4 |
54 | | -- org.typelevel:macro-compat_2.11:1.1.1 |
55 | | - |
56 | | -## Dependencies: test |
57 | | - |
58 | | -For testing, the following additional dependencies are required: |
59 | | - |
60 | | -- com.fasterxml.jackson.core:jackson-annotations:2.5.2 |
61 | | -- com.fasterxml.jackson.core:jackson-core:2.5.2 |
62 | | -- com.fasterxml.jackson.core:jackson-databind:2.5.2 |
63 | | -- com.fasterxml.jackson.module:jackson-module-scala_2.11:2.5.2 |
64 | | -- com.github.wookietreiber:scala-chart_2.11:0.4.2 |
65 | | -- com.storm-enroute:scalameter-core_2.11:0.7 |
66 | | -- com.storm-enroute:scalameter_2.11:0.7 |
67 | | -- com.thoughtworks.paranamer:paranamer:2.6 |
68 | | -- jline:jline:2.14.2 |
69 | | -- junit:junit:4.12 |
70 | | -- log4j:log4j:1.2.17 |
71 | | -- org.apache.commons:commons-lang3:3.4 |
72 | | -- org.apache.commons:commons-math3:3.2 |
73 | | -- org.hamcrest:hamcrest-core:1.3 |
74 | | -- org.jfree:jcommon:1.0.21 |
75 | | -- org.jfree:jfreechart:1.0.17 |
76 | | -- org.ow2.asm:asm:5.0.4 |
77 | | -- org.scala-lang.modules:scala-swing_2.11:1.0.1 |
78 | | -- org.scala-sbt:test-interface:1.0 |
79 | | -- org.scala-tools.testing:test-interface:0.5 |
80 | | -- org.scalacheck:scalacheck_2.11:1.13.4 |
81 | | -- org.scalactic:scalactic_2.11:3.0.1 |
82 | | -- org.scalatest:scalatest_2.11:3.0.1 |
83 | | -- org.scalaz:scalaz-concurrent_2.11:7.2.8 |
84 | | -- org.scalaz:scalaz-core_2.11:7.2.8 |
85 | | -- org.scalaz:scalaz-effect_2.11:7.2.8 |
86 | | -- org.slf4j:slf4j-log4j12:1.7.22 |
87 | | -- xml-apis:xml-apis:1.3.04 |
88 | | - |
89 | | -## C/C++ dependencies |
90 | | - |
91 | | -### Native code |
92 | | - |
93 | | -* Toxcore |
94 | | -* Toxav |
95 | | - * We require the latest git version of these libraries, so you will need to build them yourself. |
96 | | -* CMake (>= 2.8.7) |
97 | | - * Debian/Ubuntu: cmake |
98 | | -* protobuf 3.0.0 |
99 | | - * Debian/Ubuntu: You need to build this from source. |
100 | | -* Clang 3.5 or newer (older versions of clang segfault. G++ support is untested, the build script enforces clang-3.5 for now. If you do not have clang 3.5 installed, your build may fail.) |
101 | | - * Debian/Ubuntu: clang-3.5 |
102 | | - |
103 | | -## Building |
104 | | - |
105 | | -- Build and install toxcore and toxav. |
106 | | -- Run the sbt console with `sbt`. |
107 | | - |
108 | | -Now you can use `compile` to build, `test` to run unit tests (these are a lot of |
109 | | -tests with high timeouts, might take 10 minutes or longer), and `package` to |
110 | | -create a jar and the native library. |
111 | | - |
112 | | -### Developing on Mac OS X |
113 | | - |
114 | | -Getting the required tools for development on OS X is very easy. If you have |
115 | | -XCode installed, you will already be able to compile the C++ part of tox4j, |
116 | | - |
117 | | -### Importing in IDEA |
118 | | - |
119 | | -To import the project in IDEA, launch IDEA and: |
120 | | - |
121 | | -- On the "Welcome to IntelliJ IDEA" screen, select "Import Project". |
122 | | -- Select the directory jvm-toxcore-c (this git repository). |
123 | | -- Press "OK". |
124 | | -- Select "Import project from external model". |
125 | | -- Select "SBT". |
126 | | -- Press "Next". |
127 | | -- Select "Use auto-import", "Download sources and docs", and "Download SBT sources and docs". |
128 | | -- Create and select a JDK if you don't have one, yet. |
129 | | -- Press "Finish". |
130 | | - |
131 | | -Now you need to wait while IDEA builds the project info from the SBT project. |
132 | | -When it is done, it shows a list of modules, all are selected. Leave them |
133 | | -selected and press "OK". After IDEA opens, it will say "Unregistered VCS root |
134 | | -detected". Press "Add root" so you can use git from IDEA. If you have the |
135 | | -protobuf extension installed, you can register the proto files with that as |
136 | | -well (another notification will show for that). |
0 commit comments