blob: 59117f148ea567786edd4d6e011300f0aea5632c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
Some personal notes about jssc
==============================
[see also](https://github.com/hiddenalpha/jssc/tree/master/contrib/hiddenalpha-buildEnv-one)
# Try To build it
HINT: Only works for paisa fork most probably due to company firewall.
true \
&& SSH_USER=$USERNAME \
&& BUILD_HOST=eddie09815 \
&& true
true \
&& mvn clean \
&& mvn compile -Dcmake.generate.skip -Dcmake.compile.skip \
&& echo '#define JSSC_VERSION "'`(git describe --tags|sed 's,^v,,')`'"' > src/main/cpp/version.h \
&& ssh ${SSH_USER}@${BUILD_HOST:?} -- "if [" -e jssc-build "] ;then echo 'WARN: DIR ALREADY EXISTS'; exit 1; else mkdir -p jssc-build/src/main/cpp; fi" \
&& scp -rp src/main/cpp ${SSH_USER}@${BUILD_HOST:?}:jssc-build/src/main/. \
&& ssh ${SSH_USER}@${BUILD_HOST:?} -- cd jssc-build "&&" mkdir -p src/main/resources-precompiled/natives/linux_64 "&&" sudo docker run --rm --user '$(id -u):$(id -g)' -v '"$PWD"':/blubb -w /blubb gcc:4.8 g++ -Wall -pedantic -Werror -Wno-error=long-long -Wno-error=sign-compare -Wno-error=variadic-macros -Wno-long-long -Isrc/main/cpp/extracted-jni-headers -Isrc/main/cpp -fPIC -shared -o src/main/resources-precompiled/natives/linux_64/libjssc.so src/main/cpp/_nix_based/jssc.cpp \
&& scp -r ${SSH_USER}@${BUILD_HOST:?}:jssc-build/src . \
&& ssh ${BUILD_HOST:?} -- rm jssc-build -rf \
&& mvn verify -Dcmake.generate.skip=true -Dcmake.compile.skip=true \
&& true
## Get JNI headers
jdk8
javah -d src/main/cpp -cp src/main/java jssc.SerialNativeInterface
jdk11 (Source: "https://stackoverflow.com/q/60619961/4415884")
javac -h src/main/cpp -sourcepath src/main/java -d target/classes \
src/main/java/jssc/SerialNativeInterface.java \
-cp "$HOME/.m2/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar"
jdk11 (another way)
true \
&& docker run --rm openjdk:11 cat /usr/local/openjdk-11/include/jni.h > jni.h \
&& docker run --rm openjdk:11 cat /usr/local/openjdk-11/include/linux/jni_md.h > jni_md.h \
&& true
## Deploy to artifactory
Snapshot
ARTIFACTORY_ROOT="https://example.com/artifactory/libs-snapshot-local"
mvn deploy -Dcmake.generate.skip=true -Dcmake.compile.skip=true -DaltDeploymentRepository=artifactory-snapshots::default::$ARTIFACTORY_ROOT
Release
ARTIFACTORY_ROOT="https://example.com/artifactory/libs-release-local"
mvn deploy -Dcmake.generate.skip=true -Dcmake.compile.skip=true -DaltDeploymentRepository=artifactory-releases::default::$ARTIFACTORY_ROOT
Verify loaded version
ls -al /usr/local/jetty/lib/ext | grep -E 'jssc|native'
|