Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ on:
push

jobs:
linux-arm:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v1
- uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'zulu'
- name: Build
run: bash build-linux-arm.sh
linux:
runs-on: ubuntu-latest
steps:
Expand Down
38 changes: 29 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,24 @@ on:
- '*'

jobs:
linux-arm:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v1
- uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'zulu'
- name: Build
run: bash build-linux-arm.sh
- name: Upload math result for job Linux
uses: actions/upload-artifact@v4
with:
name: linux-arm-lib
path: src/main/resources/linux-arm64/*
linux:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v1
Expand All @@ -18,7 +34,7 @@ jobs:
- name: Build
run: bash build-linux.sh
- name: Upload math result for job Linux
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux-lib
path: src/main/resources/linux-x86_64/*
Expand All @@ -37,7 +53,7 @@ jobs:
- name: Build
run: bash build-windows.sh
- name: Upload math result for job Windows
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: win-lib
path: src/main/resources/windows-x86_64/*
Expand All @@ -54,13 +70,13 @@ jobs:
- name: Build
run: bash build-mac.sh
- name: Upload math result for job Mac
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: mac-lib
path: src/main/resources/macosx-x86_64/*
publish:
runs-on: ubuntu-latest
needs: [macos,windows,linux]
needs: [macos,windows,linux,linux-arm]
permissions:
contents: write
packages: write
Expand All @@ -82,18 +98,22 @@ jobs:
echo $VERSION_SEMVER
echo ${{ steps.vars.outputs.tag }}
- name: Download math result for job Windows
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: win-lib
path: src/main/resources/windows-x86_64/

- name: Download math result for job Linux Arm
uses: actions/download-artifact@v4
with:
name: linux-arm-lib
path: src/main/resources/linux-arm64/
- name: Download math result for job Linux
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: linux-lib
path: src/main/resources/linux-x86_64/
- name: Download math result for job Mac
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: mac-lib
path: src/main/resources/macosx-x86_64/
Expand Down
67 changes: 67 additions & 0 deletions build-linux-arm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/bin/bash

echo "Linux Arm Build"
VER=$(cat mujocoRelease.txt)
TYPE=linux-arm64
ARCHIVE=mujoco-$VER-linux-aarch64.tar.gz
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
JAVADIR=$SCRIPT_DIR/src/main/java/

BUILDDIR=$SCRIPT_DIR/cppbuild
if [ -f "$SCRIPT_DIR/$ARCHIVE" ]; then
echo "$ARCHIVE exists."
else
wget https://github.com/deepmind/mujoco/releases/download/$VER/$ARCHIVE -O $SCRIPT_DIR/$ARCHIVE
fi
rm -rf $SCRIPT_DIR/cppbuild
mkdir -p $BUILDDIR
cd $BUILDDIR
tar -xf $SCRIPT_DIR/$ARCHIVE
mv $BUILDDIR/mujoco-$VER $BUILDDIR/mujoco/
rm $BUILDDIR/mujoco/lib/libmujoco.so
mv $BUILDDIR/mujoco/lib/libmujoco.so.$VER $BUILDDIR/mujoco/lib/libmujoco.so
mv $BUILDDIR/mujoco/lib/* $JAVADIR/
mv $BUILDDIR/mujoco/include/mujoco $JAVADIR/

cd $SCRIPT_DIR/


set -e
JAVACPP_VER=1.5.7
JAVACPP=javacpp-platform-$JAVACPP_VER-bin.zip
if [ -f "$JAVACPP" ]; then
echo "$JAVACPP exists."
else
wget https://github.com/bytedeco/javacpp/releases/download/$JAVACPP_VER/$JAVACPP -O $JAVACPP
unzip $JAVACPP
fi
echo "Include"
ls $JAVADIR/mujoco/
echo "Lib"
ls $BUILDDIR/
cd $JAVADIR

echo "JavaCPP configs:"
$JAVA_HOME/bin/java -jar $SCRIPT_DIR/javacpp-platform-$JAVACPP_VER-bin/javacpp.jar -Dcompiler.includepath=$BUILDDIR/include/ -print properties.includepath

$JAVA_HOME/bin/java -jar $SCRIPT_DIR/javacpp-platform-$JAVACPP_VER-bin/javacpp.jar org/mujoco/MuJoCoConfig.java
echo "Start compile \n\n"
$JAVA_HOME/bin/java -jar $SCRIPT_DIR/javacpp-platform-$JAVACPP_VER-bin/javacpp.jar -copylibs -copyresources -Xcompiler "-no-pie" -Xcompiler "-I$JAVADIR" -Xcompiler "-L$JAVADIR" org/mujoco/MuJoCoLib.java
LIBPATH=$PWD/../resources/$TYPE/
mkdir -p $SCRIPT_DIR/src/main/resources/

rm -rf $JAVADIR../resources/$TYPE
mv $JAVADIR/org/mujoco/$TYPE/ $JAVADIR../resources/
mv $JAVADIR/libmujoco.so $JAVADIR../resources/$TYPE/
rm -rf $JAVADIR/mujoco
echo "ls -al $JAVADIR../resources/"
ls -al $JAVADIR../resources/

cd $SCRIPT_DIR/
echo "Resources: "
ls -al $JAVADIR../resources/$TYPE
#mv $BUILDDIR/mujoco/ $BUILDDIR/mujoco-back/
./gradlew jar --stacktrace test
#mv $BUILDDIR/mujoco-back/ $BUILDDIR/mujoco/


1 change: 1 addition & 0 deletions build-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ echo "JavaCPP configs:"
$JAVA_HOME/bin/java -jar $SCRIPT_DIR/javacpp-platform-$JAVACPP_VER-bin/javacpp.jar -Dcompiler.includepath=$BUILDDIR/include/ -print properties.includepath

$JAVA_HOME/bin/java -jar $SCRIPT_DIR/javacpp-platform-$JAVACPP_VER-bin/javacpp.jar org/mujoco/MuJoCoConfig.java

echo "Start compile \n\n"
$JAVA_HOME/bin/java -jar $SCRIPT_DIR/javacpp-platform-$JAVACPP_VER-bin/javacpp.jar -copylibs -copyresources -Xcompiler "-no-pie" -Xcompiler "-I$JAVADIR" -Xcompiler "-L$JAVADIR" org/mujoco/MuJoCoLib.java
LIBPATH=$PWD/../resources/$TYPE/
Expand Down
22 changes: 17 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,28 @@ dependencies {
implementation group: 'org.bytedeco', name: 'javacpp', version: '1.5.7'
// https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api
implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
implementation 'net.codesup.util:jaxb2-rich-contract-plugin:2.1.0'

}
implementation 'net.codesup.util:jaxb2-rich-contract-plugin:2.1.0'

//Java17 update
// JAXB API
implementation 'javax.xml.bind:jaxb-api:2.3.1'

// JAXB Implementation
implementation 'com.sun.xml.bind:jaxb-impl:2.3.1'

// JAXB Core
implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1'

if(JavaVersion.current() != JavaVersion.VERSION_1_8){
throw new GradleException("This build must be run with java 8")
// Java Activation needed by JAXB
implementation 'javax.activation:javax.activation-api:1.2.0'
}


//if(JavaVersion.current() != JavaVersion.VERSION_1_8){
// throw new GradleException("This build must be run with java 8")
//}


group='com.neuronrobotics'
archivesBaseName='mujoco-java'
version = System.getenv("VERSION_SEMVER")
Expand Down
2 changes: 1 addition & 1 deletion mujocoRelease.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.1.3
3.1.3
6 changes: 3 additions & 3 deletions src/main/java/com/kscs/util/jaxb/PartialCopyable.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public interface PartialCopyable<T extends PartialCopyable<T>> {

/**
* Clones this instances partially, the parts
* will be defined by <tt>propertyTree</tt>
* will be defined by propertyTree
*
* @param propertyTree Defines which parts of the object tree will be cloned or excluded
* @param propertyTreeUse Defines how the clone graph will be used: To include or to exclude properties.
Expand All @@ -42,7 +42,7 @@ public interface PartialCopyable<T extends PartialCopyable<T>> {

/**
* Clones this instances partially, the parts
* to be EXCLUDED will be defined by <tt>propertyTree</tt>
* to be EXCLUDED will be defined by propertyTree
*
* @param propertyTree Defines which parts of the object tree will be excluded
* @return A copy of the original object.
Expand All @@ -51,7 +51,7 @@ public interface PartialCopyable<T extends PartialCopyable<T>> {

/**
* Clones this instances partially, the parts
* to be INCLUDED will be defined by <tt>propertyTree</tt>,
* to be INCLUDED will be defined by propertyTree,
* all other parts will be excluded.
*
* @param propertyTree Defines which parts of the object tree will be included in the clone
Expand Down
Loading
Loading