Skip to content

Commit bf98e8f

Browse files
committed
add extract natives
1 parent cc76fa6 commit bf98e8f

File tree

5 files changed

+113
-32
lines changed

5 files changed

+113
-32
lines changed

.env

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,22 @@ function s4j_compile() {
6262
}
6363
alias s4jc="s4j_compile"
6464

65+
function s4j_extract_natives() {
66+
rm -rf $(s4j_workdir)/bin
67+
# extract natives
68+
for native_jar in $(find ./libs/*/* -name "*.jar")
69+
do
70+
unzip -o -q $native_jar "natives/*" -d $(s4j_workdir)/bin
71+
done
72+
}
73+
alias s4en="s4j_extract_natives"
74+
6575
function s4j_examples_run() {
66-
s4j_compile
67-
pushd bin;
68-
java_file_path=$(find . -name "*.class" -type f -exec grep -lr "main" {} \; | fzf)
76+
pushd examples;
77+
java_file_path=$(find . -name "*.java" -type f -exec grep -lr "main" {} \; | fzf)
6978
java_file_path=$(echo $java_file_path | tr "/" ".")
7079
java_file_path=${java_file_path:2}
71-
java_file_path=${java_file_path%.class}
80+
java_file_path=${java_file_path%.java}
7281
echo $java_file_path
7382
java -cp $(s4j_cp) $java_file_path
7483
popd;
@@ -77,7 +86,6 @@ alias s4jer="s4j_examples_run"
7786

7887
function s4j_examples_run_all() {
7988
cp=$(s4j_cp)
80-
s4j_compile
8189
for f in $(find ./examples/reference -name "*.class")
8290
do
8391
java_file=${f##*/}

.vscode/settings.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
{
2-
"hyperbook.root": "docs"
2+
"hyperbook.root": "docs",
3+
"java.project.sourcePaths": [
4+
"src",
5+
"examples"
6+
],
7+
"java.jdt.ls.javac.enabled": "off",
8+
"java.format.settings.url": ".vscode/java-formatter.xml"
39
}

examples/java/Saving/package.bluej

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#BlueJ package file
2+
dependency1.from=Saving
3+
dependency1.to=ExampleSettings
4+
dependency1.type=UsesDependency
5+
objectbench.height=93
6+
objectbench.width=776
7+
package.divider.horizontal=0.6
8+
package.divider.vertical=0.8
9+
package.editor.height=393
10+
package.editor.width=649
11+
package.editor.x=895
12+
package.editor.y=448
13+
package.frame.height=600
14+
package.frame.width=800
15+
package.numDependencies=1
16+
package.numTargets=2
17+
package.showExtends=true
18+
package.showUses=true
19+
readme.height=60
20+
readme.name=@README
21+
readme.width=49
22+
readme.x=10
23+
readme.y=10
24+
target1.height=70
25+
target1.name=ExampleSettings
26+
target1.showInterface=false
27+
target1.type=ClassTarget
28+
target1.width=150
29+
target1.x=10
30+
target1.y=110
31+
target2.height=70
32+
target2.name=Saving
33+
target2.showInterface=false
34+
target2.type=ClassTarget
35+
target2.width=120
36+
target2.x=150
37+
target2.y=110

examples/java/package.bluej

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ editor.fx.0.y=0
66
objectbench.height=93
77
objectbench.width=1076
88
package.divider.horizontal=0.6
9-
package.divider.vertical=0.7995991983967936
10-
package.editor.height=392
11-
package.editor.width=940
9+
package.divider.vertical=0.8
10+
package.editor.height=393
11+
package.editor.width=935
1212
package.editor.x=472
1313
package.editor.y=131
1414
package.frame.height=600
@@ -42,23 +42,23 @@ target11.width=120
4242
target11.x=490
4343
target11.y=60
4444
target12.height=82
45-
target12.name=Pipes
45+
target12.name=Robot
4646
target12.type=PackageTarget
4747
target12.width=120
48-
target12.x=340
49-
target12.y=200
48+
target12.x=290
49+
target12.y=320
5050
target13.height=82
51-
target13.name=Robot
51+
target13.name=TimedDot
5252
target13.type=PackageTarget
5353
target13.width=120
54-
target13.x=290
55-
target13.y=320
54+
target13.x=20
55+
target13.y=130
5656
target14.height=82
57-
target14.name=TimedDot
57+
target14.name=Pipes
5858
target14.type=PackageTarget
5959
target14.width=120
60-
target14.x=20
61-
target14.y=130
60+
target14.x=340
61+
target14.y=200
6262
target15.height=82
6363
target15.name=DonutIO
6464
target15.type=PackageTarget
@@ -84,17 +84,17 @@ target4.width=120
8484
target4.x=450
8585
target4.y=290
8686
target5.height=82
87-
target5.name=RainbowVine
87+
target5.name=Saving
8888
target5.type=PackageTarget
8989
target5.width=120
90-
target5.x=320
91-
target5.y=90
90+
target5.x=10
91+
target5.y=310
9292
target6.height=82
93-
target6.name=Saving
93+
target6.name=RainbowVine
9494
target6.type=PackageTarget
9595
target6.width=120
96-
target6.x=10
97-
target6.y=310
96+
target6.x=320
97+
target6.y=90
9898
target7.height=82
9999
target7.name=Clock
100100
target7.type=PackageTarget

resources/build.xml

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,18 @@
119119
url="https://github.com/processing/processing-sound/releases/download/v2.4.0/sound.zip" />
120120

121121
<!-- Jackson for JSON and XML loading -->
122-
<url url="https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/${libs.jackson}/jackson-core-${libs.jackson}.jar" />
123-
<url url="https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/${libs.jackson}/jackson-annotations-${libs.jackson}.jar" />
124-
<url url="https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/${libs.jackson}/jackson-databind-${libs.jackson}.jar" />
125-
<url url="https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/${libs.jackson}/jackson-dataformat-xml-${libs.jackson}.jar" />
126-
<url url="https://repo1.maven.org/maven2/com/fasterxml/woodstox/woodstox-core/6.5.1/woodstox-core-6.5.1.jar" />
127-
<url url="https://repo1.maven.org/maven2/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" />
122+
<url
123+
url="https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/${libs.jackson}/jackson-core-${libs.jackson}.jar" />
124+
<url
125+
url="https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/${libs.jackson}/jackson-annotations-${libs.jackson}.jar" />
126+
<url
127+
url="https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/${libs.jackson}/jackson-databind-${libs.jackson}.jar" />
128+
<url
129+
url="https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/${libs.jackson}/jackson-dataformat-xml-${libs.jackson}.jar" />
130+
<url
131+
url="https://repo1.maven.org/maven2/com/fasterxml/woodstox/woodstox-core/6.5.1/woodstox-core-6.5.1.jar" />
132+
<url
133+
url="https://repo1.maven.org/maven2/org/codehaus/woodstox/stax2-api/4.2.1/stax2-api-4.2.1.jar" />
128134

129135
<url
130136
url="https://repo1.maven.org/maven2/com/github/davidmoten/word-wrap/0.1.12/word-wrap-0.1.12.jar" />
@@ -181,6 +187,7 @@
181187
<antcall target="generate.structure">
182188
<param name="folder" value="library" />
183189
</antcall>
190+
<antcall target="extract.natives" />
184191
<antcall target="compile" />
185192
<antcall target="generate.javadoc" />
186193
<antcall target="generate.jar">
@@ -210,7 +217,7 @@
210217
source="${java.target.version}"
211218
target="${java.target.version}" includeantruntime="false"
212219
excludes="examples"
213-
>
220+
>
214221
<classpath>
215222
<path refid="classpath" />
216223
</classpath>
@@ -221,6 +228,29 @@
221228
</copy>
222229
</target>
223230

231+
<target name="extract.natives" depends="library.init">
232+
<!-- Iterate over JAR files -->
233+
<delete dir="natives" />
234+
<foreach target="extract.native" param="jar.file" parallel="false">
235+
<path>
236+
<fileset dir="${project.libs}/linux-amd64" includes="*.jar" />
237+
<fileset dir="${project.libs}/linux-aarch64" includes="*.jar" />
238+
<fileset dir="${project.libs}/linux-armv6hf" includes="*.jar" />
239+
<fileset dir="${project.libs}/macosx-universal" includes="*.jar" />
240+
<fileset dir="${project.libs}/windows-amd64" includes="*.jar" />
241+
</path>
242+
</foreach>
243+
</target>
244+
245+
<!-- Extract a single JAR file -->
246+
<target name="extract.native">
247+
<unzip src="${jar.file}" dest="" overwrite="true">
248+
<!-- Extract only native libraries if they are in specific folders (e.g., "lib/native/") -->
249+
<!-- Uncomment the line below if native libraries are stored in a specific path -->
250+
<patternset includes="natives/**" />
251+
</unzip>
252+
</target>
253+
224254
<target name="generate.jar">
225255
<jar jarfile="${project.tmp}/${project.name}/${folder}/${project.jar.name}-javadoc.jar"
226256
basedir="${project.dist}/javadoc">
@@ -381,4 +411,4 @@
381411
</echo>
382412
</target>
383413

384-
</project>
414+
</project>

0 commit comments

Comments
 (0)