|
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