diff --git a/.gitea/workflows/unreal-build.yml b/.gitea/workflows/unreal-build.yml index 6da324d6..b164e083 100644 --- a/.gitea/workflows/unreal-build.yml +++ b/.gitea/workflows/unreal-build.yml @@ -4,8 +4,6 @@ on: workflow_dispatch: push: branches: [ main, develop ] - pull_request: - branches: [ main, develop ] jobs: # windows-build: @@ -71,6 +69,55 @@ jobs: # Set environment variable with the correct Engine path echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV echo "Using Unreal Engine 5.5" + + # Set up MuJoCo library + MUJOCO_LIB_DIR="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib" + mkdir -p "$MUJOCO_LIB_DIR" + + # Try to find mujoco.dylib in the repository + if [ -f "Plugins/UEMujoco.rar" ]; then + echo "Found UEMujoco.rar, attempting to extract..." + mkdir -p /tmp/mujoco_extract + unrar x "Plugins/UEMujoco.rar" /tmp/mujoco_extract || echo "Failed to extract UEMujoco.rar" + + # Look for mujoco.dylib in extracted files + DYLIB_PATH=$(find /tmp/mujoco_extract -name "mujoco.dylib" | head -1) + if [ -n "$DYLIB_PATH" ]; then + echo "Found mujoco.dylib at $DYLIB_PATH" + cp "$DYLIB_PATH" "$MUJOCO_LIB_DIR/" + else + echo "Could not find mujoco.dylib in extracted files" + fi + fi + + # If still no dylib, try to download it + if [ ! -f "$MUJOCO_LIB_DIR/mujoco.dylib" ]; then + echo "Attempting to download mujoco.dylib..." + curl -L -o "$MUJOCO_LIB_DIR/mujoco.dylib" "https://github.com/deepmind/mujoco/releases/download/2.3.7/mujoco-2.3.7-macos-universal2.dmg" + fi + + # Verify the library exists + if [ ! -f "$MUJOCO_LIB_DIR/mujoco.dylib" ]; then + echo "ERROR: Failed to set up mujoco.dylib" + exit 1 + fi + + # Make sure the library is executable + chmod +x "$MUJOCO_LIB_DIR/mujoco.dylib" + + # Create symbolic link in Engine/Source directory + mkdir -p "$UE_PATH/Engine/Source" + ln -sf "$(pwd)/$MUJOCO_LIB_DIR/mujoco.dylib" "$UE_PATH/Engine/Source/mujoco.dylib" + + # Set up library search paths + export DYLD_LIBRARY_PATH="$(pwd)/$MUJOCO_LIB_DIR:$UE_PATH/Engine/Source:$DYLD_LIBRARY_PATH" + echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" + + # List library files to verify + echo "Library files in MuJoCo lib directory:" + ls -la "$MUJOCO_LIB_DIR" + echo "Library files in Engine/Source directory:" + ls -la "$UE_PATH/Engine/Source" - name: Build Unreal Project run: | @@ -112,6 +159,22 @@ jobs: # Run the build using absolute paths chmod +x "$UE_ROOT/Build/BatchFiles/RunUAT.sh" + + # Set up environment for the build + export DYLD_LIBRARY_PATH="$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:$UE_PATH/Engine/Source:$DYLD_LIBRARY_PATH" + export DYLD_FRAMEWORK_PATH="$UE_PATH/Engine/Binaries/Mac:$DYLD_FRAMEWORK_PATH" + export DYLD_FALLBACK_LIBRARY_PATH="$UE_PATH/Engine/Binaries/Mac:$DYLD_FALLBACK_LIBRARY_PATH" + + echo "Build environment:" + echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" + echo "DYLD_FRAMEWORK_PATH=$DYLD_FRAMEWORK_PATH" + echo "DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH" + + # Verify library exists in expected locations + echo "Checking for mujoco.dylib in various locations:" + ls -l "$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib/mujoco.dylib" + ls -l "$UE_PATH/Engine/Source/mujoco.dylib" + "$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \ -project="$UPROJECT_ABSOLUTE_PATH" \ -noP4 \ diff --git a/README.md b/README.md index a04c046a..b621919a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,20 @@ # luckyworld this is our unreal repository with our complete source code... + +steps to pull the source code down and compile + +* (Don't download the .zip file. It's best to use the CLI or a visual tool so LFS can install the proper libraries) +* git clone https://luckyrobots.com/luckyrobots/luckyworld.git +* cd luckyworld +* install git lfs + * brew install git-lfs (macOS) + * sudo yum install git-lfs (linux) + * choco install git (windows) or via https://git-scm.com/download/win + * select option to install git-lfs +* git lfs pull (just in case) +* right click .uproject file. +* Generate Visual Studio Project Files (windows) + * Open the generated .sln file with your IDE (i.e. Visual Studio or Rider) +* (The project starts in 5.5 binary version so if you're using source you will need to right click the .uproject and switch your engine version) +* Debug 'luckyrobots' \ No newline at end of file