Skip to content

[unreal]解决Linux平台因为文件名大小写而导致编译错误并且修改uplugin版本描述 #121

[unreal]解决Linux平台因为文件名大小写而导致编译错误并且修改uplugin版本描述

[unreal]解决Linux平台因为文件名大小写而导致编译错误并且修改uplugin版本描述 #121

Workflow file for this run

name: unreal ci
on:
workflow_dispatch:
push:
paths:
- unreal/Puerts/Source/**
- .github/workflows/unreal_ci.yml
pull_request:
paths:
- unreal/Puerts/Source/**
env:
Engine: "https://github.com/chexiongsheng/Mini427/releases/download/v1.0.0/Mini427_wami.tgz"
V8_URL: "https://github.com/puerts/backend-v8/releases/download/V8_8.4.371.19_230822/v8_bin_8.4.371.19.tgz"
QJS_URL: "https://github.com/puerts/backend-quickjs/releases/download/QJS_230907/qjs_v8_bin.tgz"
NODE_URL: "https://github.com/puerts/backend-nodejs/releases/download/NodeJS_16.16.0_221228/nodejs_bin_16.16.0.tgz"
jobs:
urls:
runs-on: ubuntu-latest
outputs:
v8: ${{ steps.set-matrix.outputs.v8 }}
qjs: ${{ steps.set-matrix.outputs.qjs }}
node: ${{ steps.set-matrix.outputs.node }}
steps:
- id: set-matrix
run: |
echo "v8=${{env.V8_URL}}" >> $GITHUB_OUTPUT
echo "qjs=${{env.QJS_URL}}" >> $GITHUB_OUTPUT
echo "node=${{env.NODE_URL}}" >> $GITHUB_OUTPUT
window_ci:
needs: urls
name: Windows
runs-on: windows-2019
strategy:
matrix:
cmdinfo:
- jslib_path: ${{ needs.urls.outputs.v8 }}
change_backend: ''
- jslib_path: ${{ needs.urls.outputs.qjs }}
change_backend: "sed -i 's/UseQuickjs = false/UseQuickjs = true/g' unreal/Puerts/Source/JsEnv/JsEnv.Build.cs"
- jslib_path: ${{ needs.urls.outputs.node }}
change_backend: "sed -i 's/UseNodejs = false/UseNodejs = true/g' unreal/Puerts/Source/JsEnv/JsEnv.Build.cs"
steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
- name: Prepare
shell: msys2 {0}
run: |
wget -O jslib.tgz -q ${{ matrix.cmdinfo['jslib_path'] }}
tar xvfz jslib.tgz -C unreal/Puerts/ThirdParty
${{ matrix.cmdinfo['change_backend'] }}
wget -O temp.tgz -q ${{env.Engine}}
tar xfz temp.tgz
mkdir output
- name: Build
run: |
Engine\Build\BatchFiles\RunUAT.bat BuildPlugin -Plugin="unreal\Puerts\Puerts.uplugin" -Package="output" -Rocket -TargetPlatforms=Win64 -VS2019
android_ci:
needs: urls
name: Android
runs-on: windows-2019
strategy:
matrix:
cmdinfo:
- jslib_path: ${{ needs.urls.outputs.v8 }}
change_backend: ''
- jslib_path: ${{ needs.urls.outputs.qjs }}
change_backend: "sed -i 's/UseQuickjs = false/UseQuickjs = true/g' unreal/Puerts/Source/JsEnv/JsEnv.Build.cs"
- jslib_path: ${{ needs.urls.outputs.node }}
change_backend: "sed -i 's/UseNodejs = false/UseNodejs = true/g' unreal/Puerts/Source/JsEnv/JsEnv.Build.cs"
steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
- name: Prepare
shell: msys2 {0}
run: |
wget -O jslib.tgz -q ${{ matrix.cmdinfo['jslib_path'] }}
tar xvfz jslib.tgz -C unreal/Puerts/ThirdParty
${{ matrix.cmdinfo['change_backend'] }}
wget -O temp.tgz -q ${{env.Engine}}
tar xfz temp.tgz
mkdir output
- name: SetupAndroid
run: |
Engine\Extras\Android\SetupAndroid.bat
chcp 65001 #set code page to utf-8
echo "NDKROOT=C:\Android\android-sdk\ndk\21.4.7075529" >> $env:GITHUB_ENV
- name: Build
run: |
Engine\Build\BatchFiles\RunUAT.bat BuildPlugin -Plugin="unreal\Puerts\Puerts.uplugin" -Package="output" -Rocket -TargetPlatforms=Android -VS2019
mac_ios_ci:
needs: urls
name: Mac and IOS
runs-on: macos-11
strategy:
matrix:
cmdinfo:
- jslib_path: ${{ needs.urls.outputs.v8 }}
change_backend: ''
- jslib_path: ${{ needs.urls.outputs.qjs }}
change_backend: "sed -i '' 's/UseQuickjs = false/UseQuickjs = true/g' unreal/Puerts/Source/JsEnv/JsEnv.Build.cs"
- jslib_path: ${{ needs.urls.outputs.node }}
change_backend: "sed -i '' 's/UseNodejs = false/UseNodejs = true/g' unreal/Puerts/Source/JsEnv/JsEnv.Build.cs"
steps:
- uses: actions/checkout@v3
- name: Prepare
shell: bash
run: |
wget -O jslib.tgz -q ${{ matrix.cmdinfo['jslib_path'] }}
tar xvfz jslib.tgz -C unreal/Puerts/ThirdParty
${{ matrix.cmdinfo['change_backend'] }}
wget -O temp.tgz -q ${{env.Engine}}
tar xfz temp.tgz
mkdir output
sudo xcode-select -s /Applications/Xcode_12.5.1.app
- name: Build
shell: bash
run: |
Engine/Build/BatchFiles/RunUAT.sh BuildPlugin -Plugin=unreal/Puerts/Puerts.uplugin -Package=output -Rocket -TargetPlatforms=Mac+IOS