Skip to content

Commit

Permalink
Merge branch 'Tencent:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
ArnoChenFx authored Jun 26, 2024
2 parents 2f506c7 + 7e8349b commit fb9735f
Show file tree
Hide file tree
Showing 22 changed files with 424 additions and 80 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/composites/unity-build-plugins/wasm/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: build linux unity plugin

inputs:
backend:
description: 'js backend'
required: true
config:
type: choice
description: Release Or Debug
default: 'Release'
options:
- Release
- Debug
GITHUB_TOKEN:
required:

runs:
using: "composite"
steps:
- name: Install libc++-dev
shell: bash
run: |
sudo apt-get update
sudo apt-get install clang
sudo apt-get install build-essential
sudo apt-get install libc++-dev
sudo apt-get install libc++abi-dev
- name: Build
shell: bash
run: |
cd unity
npm i
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
git pull
./emsdk install 3.1.8
./emsdk activate 3.1.8
source ./emsdk_env.sh
cd ../native_src
node ../cli make --platform wasm --arch wasm32 --backend quickjs --config ${{ inputs.config }}
- name: Upload
uses: actions/upload-artifact@v3
with:
path: ./unity/Assets/core/upm/Plugins/**/*
name: Unity_Plugins (${{ inputs.backend }}_${{ inputs.config }})
- name: Clean
shell: bash
run: rm -rf ./unity/Assets/core/upm/Plugins/**/*
13 changes: 12 additions & 1 deletion .github/workflows/unity_build_plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,15 @@ jobs:
uses: ./.github/workflows/composites/unity-build-plugins/linux/
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
backend: mult
backend: mult

wasm:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: BuildWasm
uses: ./.github/workflows/composites/unity-build-plugins/wasm/
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
backend: quickjs
19 changes: 15 additions & 4 deletions .github/workflows/unity_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ jobs:
run: |
cd $GITHUB_WORKSPACE
rm -rf unity/Assets/core/upm/Plugins
- name: BuildWindowsQuickjs
- name: BuildLinuxQuickjs
uses: ./.github/workflows/composites/unity-build-plugins/linux/
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -317,15 +317,26 @@ jobs:
run: |
cd $GITHUB_WORKSPACE
rm -rf unity/Assets/core/upm/Plugins
- name: BuildWindowsMultBackend
uses: ./.github/workflows/composites/unity-build-plugins/windows/
- name: BuildLinuxMultBackend
uses: ./.github/workflows/composites/unity-build-plugins/linux/
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
backend: mult

wasm:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: BuildWasm
uses: ./.github/workflows/composites/unity-build-plugins/wasm/
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
backend: quickjs

publish:
runs-on: ubuntu-latest
needs: [windows,osx,ios,android,linux64,ohos]
needs: [windows,osx,ios,android,linux64,ohos,wasm]
steps:
- uses: actions/checkout@v3

Expand Down
32 changes: 28 additions & 4 deletions .github/workflows/unreal_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ on:
env:
UE424_V8: "https://github.com/puerts/backend-v8/releases/download/v8_for_ue424_or_below/v8_for_ue424_or_below.tgz"
V8_84: "https://github.com/puerts/backend-v8/releases/download/V8_8.4.371.19_230822/v8_bin_8.4.371.19.tgz"
V8_94: "https://github.com/puerts/backend-v8/releases/download/V8_9.4.146.24_230822/v8_bin_9.4.146.24.tgz"
quickjs: "https://github.com/puerts/backend-quickjs/releases/download/QJS_240603/qjs_v8_bin.tgz"
V8_94: "https://github.com/puerts/backend-v8/releases/download/V8_9.4.146.24_240430/v8_bin_9.4.146.24.tgz"
V8_106: "https://github.com/puerts/backend-v8/releases/download/V8_10.6.194_240612/v8_bin_10.6.194.tgz"
quickjs: "https://github.com/puerts/backend-quickjs/releases/download/QJS_240604/qjs_v8_bin.tgz"
nodejs: "https://github.com/puerts/backend-nodejs/releases/download/NodeJS_16.16.0_221228/nodejs_bin_16.16.0.tgz"

jobs:
Expand All @@ -33,12 +34,23 @@ jobs:
rm -r unreal/Puerts/ThirdParty/v8
wget -O v8_94.tgz -q ${{env.V8_94}}
tar xvfz v8_94.tgz -C unreal/Puerts/ThirdParty
mv unreal/Puerts/ThirdParty/v8_9.4 unreal/Puerts/ThirdParty/v8
cd unreal
cp Puerts/Source/JsEnv/JsEnv.Build.cs ..
sed -i 's/SupportedV8Versions.V8_4_371_19/SupportedV8Versions.V9_4_146_24/g' Puerts/Source/JsEnv/JsEnv.Build.cs
tar cvfz puerts_v8_94.tgz Puerts README.md LICENSE doc
mv puerts_v8_94.tgz ..
cd ..
rm -r unreal/Puerts/ThirdParty/v8
rm -r unreal/Puerts/ThirdParty/v8_9.4.146.24
cp JsEnv.Build.cs unreal/Puerts/Source/JsEnv/JsEnv.Build.cs
wget -O V8_106.tgz -q ${{env.V8_106}}
tar xvfz V8_106.tgz -C unreal/Puerts/ThirdParty
cd unreal
sed -i 's/SupportedV8Versions.V8_4_371_19/SupportedV8Versions.V10_6_194/g' Puerts/Source/JsEnv/JsEnv.Build.cs
tar cvfz puerts_v8_106.tgz Puerts README.md LICENSE doc
mv puerts_v8_106.tgz ..
cd ..
rm -r unreal/Puerts/ThirdParty/v8_10.6.194
cp JsEnv.Build.cs unreal/Puerts/Source/JsEnv/JsEnv.Build.cs
wget -O v8_for_ue424.tgz -q ${{env.UE424_V8}}
tar xvfz v8_for_ue424.tgz -C unreal/Puerts/ThirdParty
cd unreal
Expand All @@ -54,6 +66,7 @@ jobs:
mv puerts_quickjs.tgz ..
cd ..
rm -r unreal/Puerts/ThirdParty/quickjs
cp JsEnv.Build.cs unreal/Puerts/Source/JsEnv/JsEnv.Build.cs
git checkout .
wget -O nodejs_bin.tgz -q ${{env.nodejs}}
tar xvfz nodejs_bin.tgz -C unreal/Puerts/ThirdParty
Expand Down Expand Up @@ -100,6 +113,17 @@ jobs:
asset_path: ./puerts_v8_94.tgz
asset_name: puerts_v8_94.tgz
asset_content_type: application/tgz

- name: Upload Puerts Plugins with v8 10.6.194
#id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./puerts_v8_106.tgz
asset_name: puerts_v8_106.tgz
asset_content_type: application/tgz

- name: Upload Puerts Plugins UE424 Or Below
#id: upload-release-asset
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
[![license](https://img.shields.io/badge/license-BSD_3_Clause-blue.svg)](https://github.com/Tencent/puerts/blob/master/LICENSE)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/Tencent/puerts/pulls)

[![unreal](https://img.shields.io/badge/unreal-v1.0.6p1-blue.svg)](https://github.com/Tencent/puerts/releases/tag/Unreal_v1.0.6p1)
[![unreal](https://img.shields.io/badge/unreal-v1.0.7-blue.svg)](https://github.com/Tencent/puerts/releases/tag/Unreal_v1.0.7)

[![unity](https://img.shields.io/badge/unity(stable)-v2.0.2-blue.svg)](doc/unity/zhcn/install.md)
[![unity](https://img.shields.io/badge/unity(stable)-v2.1.0-blue.svg)](doc/unity/zhcn/install.md)
![Unity_Test](https://github.com/Tencent/puerts/workflows/unity%20unittest/badge.svg)

[跳转中文](#what---普洱ts是什么)
Expand Down
83 changes: 83 additions & 0 deletions doc/unreal/en/changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,86 @@
### v1.0.7 2024年6月25日

#### 新增特性

* 静态绑定的Register支持自定义析构

* 增加一个宏,允许ts不持有ueobject (#1660)

* JsEnv.Build.cs增加KeepUObjectReference配置,支持js不强引用uobject

* JsEnv.Build.cs增加SingleThreaded选项,用于指定v8别开线程池

* 支持V8 10.6.194

#### 优化

* 只在有文件更改的时候广播 (#1637)

* 如果是插件的蓝图类,生成到ue.d.ts文件

* 如果生成Delegate调用器失败打印错误信息

* 修复静态函数每次调用的时候会查两次hash表 (#1654)

* 导出C++的类的Interface函数 (#1681)

* 生成默认值元信息头文件(InitParamDefaultMetas.inl)保证顺序,以免每次都重新编译FunctionTranslator.cpp

* UE 5.4的一些编译错误

* 将蓝图中显示的变量顺序与TS文件中定义的变量顺序保持一致 (#1740)

* 去除bEnableUndefinedIdentifierWarnings的依赖,可以支持在ue5.3+下开PCH

* 默认的tsconfig.json添加useDefineForClassFields: false,优化8.4、9.4版本v8的性能


#### 变更


#### bug修复

* 修复这个commit导致ue5.3编译报GenericplatformProcess的错误:9258c33

* 修正pesapi静态绑定,对puerts::Object赋值为空仍然持有context引用的问题

* Mixin 基类,PIE第二次启动后会崩溃

* 确保unhandledRejection() 在所有microtasks跑完后才执行

* PaddingKill状态的对象在虚拟机释放是没有回收 UEGC时崩溃 (#1645)

* 修复在IWYU模式下的编译报错问题 (#1648)

* AddToDelegate 区分 SingleDeleagte 和MultipleDelegate,解决单播变成多播的问题

* 在js绑定delegate时,应该考虑在c++侧被clear的情况,fix #1653

* 不必要的Reset导致内存泄露,Release传入的地址是null (#1652)

* 解决如果有多个plugin使用了asio,asio_signal_handler会符号冲突的问题

* asio在C++ 20下编译报错的问题

* 静态绑定的报错解决(找不到API)

* RegisterTArray 支持指针成员类型 (#1657)

* mixin基类的objectTakeByNative设置同步到其子类

* 解决错误的将父类的hideCategories赋值给蓝图以及错误的覆盖了ts收集到的hideCategories元数据

* 把Engine也加入扫描目录,生成相应的ts声明,fix #1727

* 移除已弃用的configname避免出现没有任何改动也会进行重新编译保存的bug (#1730)

* 增加对metadata的修改检查来修复删除元数据不会被检测为更改而不重新编译的问题 (#1733)

* 修复删除uproperty中Property Specifiers不生效的问题 (#1744)

* 增加对未能正确添加变量的情况进行提示 (#1748)


### v1.0.6p1 2024年1月16日

#### bug修复
Expand Down
10 changes: 7 additions & 3 deletions doc/unreal/en/mixin.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

* 如果A和B都有同样的函数,A的逻辑会替换B的

* 一些事件(比如ReceiveBeginPlay),如果A有,继续B没有,也会被回调
* 支持UE的事件(比如ReceiveBeginPlay)

* 可新增方法或字段

Expand All @@ -28,10 +28,14 @@

- 支持原生类的BlueprintNativeEvent、BlueprintImplementableEvent方法的mixin

### 注意事项

* 如果要覆盖UE的事件,要注意被mixin的类中有对应的事件(逻辑可以为空),否则在子类调用时可能会有可能调用不到 ts的逻辑,见: https://github.com/Tencent/puerts/issues/1762


### 基本用法

本文完整例子看[这里](https://github.com/chexiongsheng/puerts_unreal_demo/blob/master/TsProj/UsingMixin.ts),将Start脚本改为UsingMixin即可运行。
本文完整例子看[这里](https://github.com/chexiongsheng/puerts_unreal_demo/blob/master/TypeScript/UsingMixin.ts),将Start脚本改为UsingMixin即可运行。


#### 加载被mixin的蓝图类
Expand Down Expand Up @@ -149,7 +153,7 @@ class DerivedClassMixin extends MixinSuperTestBasePlaceHold {

* objectTakeByNative为false时,需要保持对stub对象的引用,否则stub对象释放后,ue对象回传将会建立一个新对象,原来的数据就丢失了

* objectTakeByNative为false不需要保持stub对象引用,但注意不要期望通过持有stub对象进而引用ue对象,该ue对象应保证被引擎持有
* objectTakeByNative为true不需要保持stub对象引用,但注意不要期望通过持有stub对象进而引用ue对象,该ue对象应保证被引擎持有

#### 原生类的mixin

Expand Down
83 changes: 83 additions & 0 deletions doc/unreal/zhcn/changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,86 @@
### v1.0.7 2024年6月25日

#### 新增特性

* 静态绑定的Register支持自定义析构

* 增加一个宏,允许ts不持有ueobject (#1660)

* JsEnv.Build.cs增加KeepUObjectReference配置,支持js不强引用uobject

* JsEnv.Build.cs增加SingleThreaded选项,用于指定v8别开线程池

* 支持V8 10.6.194

#### 优化

* 只在有文件更改的时候广播 (#1637)

* 如果是插件的蓝图类,生成到ue.d.ts文件

* 如果生成Delegate调用器失败打印错误信息

* 修复静态函数每次调用的时候会查两次hash表 (#1654)

* 导出C++的类的Interface函数 (#1681)

* 生成默认值元信息头文件(InitParamDefaultMetas.inl)保证顺序,以免每次都重新编译FunctionTranslator.cpp

* UE 5.4的一些编译错误

* 将蓝图中显示的变量顺序与TS文件中定义的变量顺序保持一致 (#1740)

* 去除bEnableUndefinedIdentifierWarnings的依赖,可以支持在ue5.3+下开PCH

* 默认的tsconfig.json添加useDefineForClassFields: false,优化8.4、9.4版本v8的性能


#### 变更


#### bug修复

* 修复这个commit导致ue5.3编译报GenericplatformProcess的错误:9258c33

* 修正pesapi静态绑定,对puerts::Object赋值为空仍然持有context引用的问题

* Mixin 基类,PIE第二次启动后会崩溃

* 确保unhandledRejection() 在所有microtasks跑完后才执行

* PaddingKill状态的对象在虚拟机释放是没有回收 UEGC时崩溃 (#1645)

* 修复在IWYU模式下的编译报错问题 (#1648)

* AddToDelegate 区分 SingleDeleagte 和MultipleDelegate,解决单播变成多播的问题

* 在js绑定delegate时,应该考虑在c++侧被clear的情况,fix #1653

* 不必要的Reset导致内存泄露,Release传入的地址是null (#1652)

* 解决如果有多个plugin使用了asio,asio_signal_handler会符号冲突的问题

* asio在C++ 20下编译报错的问题

* 静态绑定的报错解决(找不到API)

* RegisterTArray 支持指针成员类型 (#1657)

* mixin基类的objectTakeByNative设置同步到其子类

* 解决错误的将父类的hideCategories赋值给蓝图以及错误的覆盖了ts收集到的hideCategories元数据

* 把Engine也加入扫描目录,生成相应的ts声明,fix #1727

* 移除已弃用的configname避免出现没有任何改动也会进行重新编译保存的bug (#1730)

* 增加对metadata的修改检查来修复删除元数据不会被检测为更改而不重新编译的问题 (#1733)

* 修复删除uproperty中Property Specifiers不生效的问题 (#1744)

* 增加对未能正确添加变量的情况进行提示 (#1748)


### v1.0.6p1 2024年1月16日

#### bug修复
Expand Down
Loading

0 comments on commit fb9735f

Please sign in to comment.