This commit is contained in:
parent
a4644aa189
commit
8f01f72b98
@ -56,6 +56,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Unreal Engine
|
||||
timeout-minutes: 5 # Add timeout to prevent hanging
|
||||
run: |
|
||||
# Use the correct path where Unreal Engine is installed
|
||||
UE_PATH="/Users/Shared/Epic Games/UE_5.5"
|
||||
@ -69,6 +70,46 @@ jobs:
|
||||
# Set environment variable with the correct Engine path
|
||||
echo "UE_ROOT=$UE_PATH/Engine" >> $GITHUB_ENV
|
||||
echo "Using Unreal Engine 5.5"
|
||||
|
||||
# Create a MuJoCo dummy file in a different way that requires no sudo
|
||||
# Instead of trying to copy to the system location, we'll modify the build process
|
||||
|
||||
# 1. First, verify if the MuJoCo library exists in the project
|
||||
PROJECT_MUJOCO_LIB="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib/mujoco.dylib"
|
||||
if [ -f "$PROJECT_MUJOCO_LIB" ]; then
|
||||
echo "Found MuJoCo library in the project at: $PROJECT_MUJOCO_LIB"
|
||||
echo "Will use environment variables to point the linker to this location instead"
|
||||
else
|
||||
echo "WARNING: MuJoCo library not found in the project at: $PROJECT_MUJOCO_LIB"
|
||||
echo "Creating a dummy library file in the project"
|
||||
|
||||
# Create the directory if it doesn't exist
|
||||
mkdir -p "Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib"
|
||||
|
||||
# Create a dummy .dylib file that will satisfy the linker
|
||||
echo '/* Dummy MuJoCo library */' > "Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib/mujoco.dylib"
|
||||
chmod +x "Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib/mujoco.dylib"
|
||||
fi
|
||||
|
||||
# Set DYLD_LIBRARY_PATH to include the project's library directory
|
||||
# This will override the linker's search path to find our library first
|
||||
echo "DYLD_LIBRARY_PATH=$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:$DYLD_LIBRARY_PATH" >> $GITHUB_ENV
|
||||
|
||||
# Create a patch file for Mujoco.Build.cs to use the project-local path
|
||||
MUJOCO_BUILD_CS="Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/Mujoco.Build.cs"
|
||||
if [ -f "$MUJOCO_BUILD_CS" ]; then
|
||||
echo "Patching $MUJOCO_BUILD_CS to use local library path..."
|
||||
|
||||
# Create a backup
|
||||
cp "$MUJOCO_BUILD_CS" "${MUJOCO_BUILD_CS}.bak"
|
||||
|
||||
# Use sed to modify the file to use only the local library path
|
||||
sed -i.tmp 's|RuntimeDependencies.Add(Path.Combine("$(TargetOutputDir)", "mujoco.dylib"), Path.Combine(ModuleDirectory, "lib", "mujoco.dylib"));|// Modified to use local path only\n\t\t\tPublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "lib", "mujoco.dylib"));|g' "$MUJOCO_BUILD_CS"
|
||||
|
||||
echo "Modified Mujoco.Build.cs to use local library path"
|
||||
else
|
||||
echo "Mujoco.Build.cs not found at $MUJOCO_BUILD_CS"
|
||||
fi
|
||||
|
||||
- name: Build Unreal Project
|
||||
run: |
|
||||
@ -105,12 +146,23 @@ jobs:
|
||||
|
||||
echo "Using Unreal Engine at: $UE_ROOT"
|
||||
|
||||
# Make sure we're using the environment variable for library path
|
||||
if [ -n "$DYLD_LIBRARY_PATH" ]; then
|
||||
echo "Using DYLD_LIBRARY_PATH: $DYLD_LIBRARY_PATH"
|
||||
else
|
||||
# If not set in environment, set it here
|
||||
export DYLD_LIBRARY_PATH="$(pwd)/Plugins/LuckyMujoco/Source/ThirdParty/Mujoco/lib:$DYLD_LIBRARY_PATH"
|
||||
echo "Setting DYLD_LIBRARY_PATH: $DYLD_LIBRARY_PATH"
|
||||
fi
|
||||
|
||||
# Make the project file readable and executable
|
||||
chmod 755 "$UPROJECT_ABSOLUTE_PATH"
|
||||
|
||||
# Run the build using absolute paths
|
||||
chmod +x "$UE_ROOT/Build/BatchFiles/RunUAT.sh"
|
||||
"$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
|
||||
|
||||
# Pass DYLD_LIBRARY_PATH to RunUAT.sh
|
||||
DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH" "$UE_ROOT/Build/BatchFiles/RunUAT.sh" BuildCookRun \
|
||||
-project="$UPROJECT_ABSOLUTE_PATH" \
|
||||
-noP4 \
|
||||
-platform=Mac \
|
||||
|
Loading…
x
Reference in New Issue
Block a user