From 78cd3a7af2e79f23eab479402f688d426ac56bdf Mon Sep 17 00:00:00 2001 From: chexiongsheng Date: 2025年10月28日 17:07:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=90=88=E5=85=A5=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 143 ++++++++++++++++++++++-------- .github/workflows/publish.yml | 162 +++++++++++++++++++++++++--------- build/CMakeLists.txt | 7 +- 3 files changed, 232 insertions(+), 80 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 23360e07..325c7d12 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,32 +14,77 @@ jobs: - name: Install NDK run: | cd ~ - wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip + wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip sudo apt install unzip -y unzip -q NDK - ANDROID_NDK_HOME=$(pwd)/android-ndk-r15c + ANDROID_NDK_HOME=$(pwd)/android-ndk-r21b - name: Build run: | cd build ./make_android_lua54.sh ./make_android_lua53.sh - sudo apt install gcc-multilib - ./make_android_luajit_arm64.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_android - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_android + + android_luajit: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v2 + - name: Install NDK + run: | + cd ~ + wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip + sudo apt install unzip -y + unzip -q NDK + ANDROID_NDK_HOME=$(pwd)/android-ndk-r15c + - name: Build + run: | + cd build + sudo apt install gcc-multilib libncurses5 -y + ./make_android_luajit_arm64.sh - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_android + + ohos: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install NDK + run: | + cd ~ + cd ~ + curl -O https://repo.huaweicloud.com/harmonyos/os/4.1-Release/ohos-sdk-windows_linux-public.tar.gz + tar xvfz ohos-sdk-windows_linux-public.tar.gz + cd ohos-sdk/linux + unzip -o -d ./ native-linux-x64-4.1.7.5-Release.zip + - name: Build + run: | + cd build + chmod +x make_ohos_lua5*.sh + OHOS_NDK_HOME=~/ohos-sdk/linux/native ./make_ohos_lua54.sh + OHOS_NDK_HOME=~/ohos-sdk/linux/native ./make_ohos_lua53.sh + - name: Upload + uses: actions/upload-artifact@v4 + with: + path: ./build/plugin_lua54/**/* + name: plugin_lua54_ohos + - name: Upload53 + uses: actions/upload-artifact@v4 + with: + path: ./build/plugin_lua53/**/* + name: plugin_lua53_ohos + linux: runs-on: ubuntu-latest steps: @@ -51,20 +96,20 @@ jobs: ./make_linux64_lua53.sh ./make_linux64_luajit.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_linux - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_linux - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_linux ios: runs-on: macos-latest @@ -77,22 +122,22 @@ jobs: ./make_ios_lua53.sh ./make_ios_luajit.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_ios - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_ios - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_ios osx: - runs-on: macos-10.15 + runs-on: macos-latest steps: - uses: actions/checkout@v2 @@ -102,23 +147,25 @@ jobs: ./make_osx_lua54.sh ./make_osx_lua53.sh ./make_osx_luajit.sh + ./make_osx_silicon_lua53.sh + ./make_osx_silicon_lua54.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_osx - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_osx - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_osx windows: - runs-on: windows-2016 + runs-on: windows-2022 steps: - uses: actions/checkout@v2 @@ -130,28 +177,52 @@ jobs: run: | cd build .\make_win_lua54.bat + .\make_uwp_lua54.bat .\make_win32_lua53.bat .\make_win64_lua53.bat + .\make_uwp.bat - uses: ilammy/msvc-dev-cmd@v1 - name: Build Luajit run: | cd build .\make_win64_luajit.bat - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_window - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_window + - name: UploadJit + uses: actions/upload-artifact@v4 + with: + path: ./build/plugin_luajit/**/* + name: plugin_luajit_window + + windows-luajit-32: + runs-on: windows-2022 + + steps: + - uses: actions/checkout@v2 + + - name: Insatll MSVC + uses: microsoft/setup-msbuild@v1.0.2 + + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x86 + - name: Build Luajit + run: | + cd build + .\make_win32_luajit.bat - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_window32 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 676d39b0..25eb1c76 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,32 +15,78 @@ jobs: - name: Install NDK run: | cd ~ - wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip + wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip sudo apt install unzip -y unzip -q NDK - ANDROID_NDK_HOME=$(pwd)/android-ndk-r15c + ANDROID_NDK_HOME=$(pwd)/android-ndk-r21b - name: Build run: | cd build ./make_android_lua54.sh ./make_android_lua53.sh - sudo apt install gcc-multilib - ./make_android_luajit_arm64.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_android - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_android + + android_luajit: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v2 + - name: Install NDK + run: | + cd ~ + wget -O NDK -q https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip + sudo apt install unzip -y + unzip -q NDK + ANDROID_NDK_HOME=$(pwd)/android-ndk-r15c + - name: Build + run: | + cd build + sudo apt update + sudo apt install gcc-multilib libncurses5 -y + ./make_android_luajit_arm64.sh - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_android + + ohos: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install NDK + run: | + cd ~ + cd ~ + curl -O https://repo.huaweicloud.com/harmonyos/os/4.1-Release/ohos-sdk-windows_linux-public.tar.gz + tar xvfz ohos-sdk-windows_linux-public.tar.gz + cd ohos-sdk/linux + unzip -o -d ./ native-linux-x64-4.1.7.5-Release.zip + - name: Build + run: | + cd build + chmod +x make_ohos_lua5*.sh + OHOS_NDK_HOME=~/ohos-sdk/linux/native ./make_ohos_lua54.sh + OHOS_NDK_HOME=~/ohos-sdk/linux/native ./make_ohos_lua53.sh + - name: Upload + uses: actions/upload-artifact@v4 + with: + path: ./build/plugin_lua54/**/* + name: plugin_lua54_ohos + - name: Upload53 + uses: actions/upload-artifact@v4 + with: + path: ./build/plugin_lua53/**/* + name: plugin_lua53_ohos + linux: runs-on: ubuntu-latest steps: @@ -52,20 +98,20 @@ jobs: ./make_linux64_lua53.sh ./make_linux64_luajit.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_linux - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_linux - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_linux ios: runs-on: macos-latest @@ -78,22 +124,22 @@ jobs: ./make_ios_lua53.sh ./make_ios_luajit.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_ios - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_ios - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_ios osx: - runs-on: macos-10.15 + runs-on: macos-latest steps: - uses: actions/checkout@v2 @@ -103,23 +149,25 @@ jobs: ./make_osx_lua54.sh ./make_osx_lua53.sh ./make_osx_luajit.sh + ./make_osx_silicon_lua53.sh + ./make_osx_silicon_lua54.sh - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_osx - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_osx - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_osx windows: - runs-on: windows-2016 + runs-on: windows-2022 steps: - uses: actions/checkout@v2 @@ -131,47 +179,74 @@ jobs: run: | cd build .\make_win_lua54.bat + .\make_uwp_lua54.bat .\make_win32_lua53.bat .\make_win64_lua53.bat + .\make_uwp.bat - uses: ilammy/msvc-dev-cmd@v1 - name: Build Luajit run: | cd build .\make_win64_luajit.bat - name: Upload - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua54/**/* - name: plugin_lua54 + name: plugin_lua54_window - name: Upload53 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_lua53/**/* - name: plugin_lua53 + name: plugin_lua53_window + - name: UploadJit + uses: actions/upload-artifact@v4 + with: + path: ./build/plugin_luajit/**/* + name: plugin_luajit_window + + windows-luajit-32: + runs-on: windows-2022 + + steps: + - uses: actions/checkout@v2 + + - name: Insatll MSVC + uses: microsoft/setup-msbuild@v1.0.2 + + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x86 + - name: Build Luajit + run: | + cd build + .\make_win32_luajit.bat - name: UploadJit - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: ./build/plugin_luajit/**/* - name: plugin_luajit + name: plugin_luajit_window32 publish: runs-on: ubuntu-latest - needs: [windows,osx,ios,android] + needs: [windows,osx,ios,android,windows-luajit-32,ohos,android_luajit,linux] steps: - - uses: actions/download-artifact@v1 + - uses: actions/download-artifact@v4 with: - name: plugin_luajit + pattern: plugin_luajit_* path: plugin_luajit/ + merge-multiple: true - - uses: actions/download-artifact@v1 + - uses: actions/download-artifact@v4 with: - name: plugin_lua53 + pattern: plugin_lua53_* path: plugin_lua53/ + merge-multiple: true - - uses: actions/download-artifact@v1 + - uses: actions/download-artifact@v4 with: - name: plugin_lua54 + pattern: plugin_lua54_* path: plugin_lua54/ + merge-multiple: true - name: Create Release Asset run: | @@ -222,3 +297,4 @@ jobs: asset_path: ./lua54_${{ github.event.inputs.tag_name }}.tgz asset_name: lua54_${{ github.event.inputs.tag_name }}.tgz asset_content_type: application/tgz + diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt index ed381f28..7efc42ff 100644 --- a/build/CMakeLists.txt +++ b/build/CMakeLists.txt @@ -4,7 +4,7 @@ # http://opensource.org/licenses/MIT # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.5) if ( WIN32 AND NOT CYGWIN AND NOT ( CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" ) AND NOT ANDROID) set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT" CACHE STRING "") @@ -240,6 +240,7 @@ source_group_by_dir(${CMAKE_CURRENT_SOURCE_DIR} XLUA_CORE) if (APPLE) if (IOS) + ADD_DEFINITIONS(-DLUA_USE_IOS) # Despite claiming to be ISO C, iOS does not implement 'system'.(iOS11) set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)") add_library(xlua STATIC ${LUA_CORE} @@ -331,3 +332,7 @@ else ( ) ) endif() endif ( ) + +if ( ANDROID ) + target_link_options(xlua PRIVATE -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384) # android 16K Pagesize +endif ( ) \ No newline at end of file From 9831d2228f51104ae2988ee64c9480ad08009a68 Mon Sep 17 00:00:00 2001 From: chexiongsheng Date: 2025年10月28日 17:15:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=90=88=E5=85=A5=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/make_android_lua53.sh | 2 +- build/make_android_lua54.sh | 2 +- build/make_android_luajit.sh | 4 ++-- build/make_android_luajit_arm64.sh | 4 ++-- build/make_uwp.bat | 8 ++++---- build/make_uwp_lua54.bat | 8 ++++---- build/make_win32_lua53.bat | 21 ++++++++++++++++++++- build/make_win32_luajit.bat | 6 +++--- build/make_win64_lua53.bat | 21 ++++++++++++++++++++- build/make_win64_luajit.bat | 6 +++--- build/make_win_lua54.bat | 25 +++++++++++++++++++++++-- build/memory_leak_checker.c | 4 ++++ 12 files changed, 87 insertions(+), 24 deletions(-) diff --git a/build/make_android_lua53.sh b/build/make_android_lua53.sh index 0c777c35..3d2a0f17 100755 --- a/build/make_android_lua53.sh +++ b/build/make_android_lua53.sh @@ -18,7 +18,7 @@ function build() { ABI=2ドル TOOLCHAIN_ANME=3ドル BUILD_PATH=build.Android.${ABI} - cmake -H. -B${BUILD_PATH} -DANDROID_ABI=${ABI} -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=${API} -DANDROID_TOOLCHAIN=clang -DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_ANME} + cmake -H. -B${BUILD_PATH} -DANDROID_ABI=${ABI} -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=${API} -DANDROID_TOOLCHAIN=clang -DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_ANME} cmake --build ${BUILD_PATH} --config Release mkdir -p plugin_lua53/Plugins/Android/libs/${ABI}/ cp ${BUILD_PATH}/libxlua.so plugin_lua53/Plugins/Android/libs/${ABI}/libxlua.so diff --git a/build/make_android_lua54.sh b/build/make_android_lua54.sh index aa16497e..0941a3ac 100755 --- a/build/make_android_lua54.sh +++ b/build/make_android_lua54.sh @@ -18,7 +18,7 @@ function build() { ABI=2ドル TOOLCHAIN_ANME=3ドル BUILD_PATH=build54.Android.${ABI} - cmake -H. -B${BUILD_PATH} -DLUA_VERSION=5.4.1 -DANDROID_ABI=${ABI} -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=${API} -DANDROID_TOOLCHAIN=clang -DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_ANME} + cmake -H. -B${BUILD_PATH} -DLUA_VERSION=5.4.1 -DANDROID_ABI=${ABI} -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=${API} -DANDROID_TOOLCHAIN=clang -DANDROID_TOOLCHAIN_NAME=${TOOLCHAIN_ANME} cmake --build ${BUILD_PATH} --config Release mkdir -p plugin_lua54/Plugins/Android/libs/${ABI}/ cp ${BUILD_PATH}/libxlua.so plugin_lua54/Plugins/Android/libs/${ABI}/libxlua.so diff --git a/build/make_android_luajit.sh b/build/make_android_luajit.sh index d5ee921d..ddf69059 100755 --- a/build/make_android_luajit.sh +++ b/build/make_android_luajit.sh @@ -24,7 +24,7 @@ make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF $NDKARC cd "$DIR" mkdir -p build_lj_v7a && cd build_lj_v7a -cmake -DUSING_LUAJIT=ON -DANDROID_ABI=armeabi-v7a -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang3.6 -DANDROID_NATIVE_API_LEVEL=android-9 ../ +cmake -DUSING_LUAJIT=ON -DANDROID_ABI=armeabi-v7a -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang3.6 -DANDROID_NATIVE_API_LEVEL=android-9 ../ cd "$DIR" cmake --build build_lj_v7a --config Release mkdir -p plugin_luajit/Plugins/Android/libs/armeabi-v7a/ @@ -42,7 +42,7 @@ make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF" cd "$DIR" mkdir -p build_lj_x86 && cd build_lj_x86 -cmake -DUSING_LUAJIT=ON -DANDROID_ABI=x86 -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=x86-clang3.5 -DANDROID_NATIVE_API_LEVEL=android-9 ../ +cmake -DUSING_LUAJIT=ON -DANDROID_ABI=x86 -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN_NAME=x86-clang3.5 -DANDROID_NATIVE_API_LEVEL=android-9 ../ cd "$DIR" cmake --build build_lj_x86 --config Release mkdir -p plugin_luajit/Plugins/Android/libs/x86/ diff --git a/build/make_android_luajit_arm64.sh b/build/make_android_luajit_arm64.sh index 72f54fb1..ce89dde9 100755 --- a/build/make_android_luajit_arm64.sh +++ b/build/make_android_luajit_arm64.sh @@ -1,6 +1,6 @@ -if [ -z "$ANDROID_NDK" ]; then +#if [ -z "$ANDROID_NDK" ]; then export ANDROID_NDK=~/android-ndk-r15c -fi +#fi DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SRCDIR=$DIR/luajit-2.1.0b3 diff --git a/build/make_uwp.bat b/build/make_uwp.bat index 5c969cab..969005e1 100644 --- a/build/make_uwp.bat +++ b/build/make_uwp.bat @@ -1,26 +1,26 @@ mkdir build_uwp & pushd build_uwp -cmake -G "Visual Studio 15 2017" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp --config Release md plugin_lua53\Plugins\WSA\x86 copy /Y build_uwp\Release\xlua.dll plugin_lua53\Plugins\WSA\x86\xlua.dll mkdir build_uwp64 & pushd build_uwp64 -cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp64 --config Release md plugin_lua53\Plugins\WSA\x64 copy /Y build_uwp64\Release\xlua.dll plugin_lua53\Plugins\WSA\x64\xlua.dll mkdir build_uwp_arm & pushd build_uwp_arm -cmake -G "Visual Studio 15 2017 ARM" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -G "Visual Studio 16 2019" -A ARM -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp_arm --config Release md plugin_lua53\Plugins\WSA\ARM copy /Y build_uwp_arm\Release\xlua.dll plugin_lua53\Plugins\WSA\ARM\xlua.dll mkdir build_uwp_arm64 & pushd build_uwp_arm64 -cmake -G "Visual Studio 15 2017" -A ARM64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -G "Visual Studio 16 2019" -A ARM64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp_arm64 --config Release md plugin_lua53\Plugins\WSA\ARM64 diff --git a/build/make_uwp_lua54.bat b/build/make_uwp_lua54.bat index a4707663..671ea27a 100644 --- a/build/make_uwp_lua54.bat +++ b/build/make_uwp_lua54.bat @@ -1,26 +1,26 @@ mkdir build_uwp_54 & pushd build_uwp_54 -cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 15 2017" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 16 2019" -A Win32 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp_54 --config Release md plugin_lua54\Plugins\WSA\x86 copy /Y build_uwp_54\Release\xlua.dll plugin_lua54\Plugins\WSA\x86\xlua.dll mkdir build_uwp64_54 & pushd build_uwp64_54 -cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 15 2017 Win64" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp64_54 --config Release md plugin_lua54\Plugins\WSA\x64 copy /Y build_uwp64_54\Release\xlua.dll plugin_lua54\Plugins\WSA\x64\xlua.dll mkdir build_uwp_arm_54 & pushd build_uwp_arm_54 -cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 15 2017 ARM" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 16 2019" -A ARM -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp_arm_54 --config Release md plugin_lua54\Plugins\WSA\ARM copy /Y build_uwp_arm_54\Release\xlua.dll plugin_lua54\Plugins\WSA\ARM\xlua.dll mkdir build_uwp_arm64_54 & pushd build_uwp_arm64_54 -cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 15 2017" -A ARM64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. +cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 16 2019" -A ARM64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 .. popd cmake --build build_uwp_arm64_54 --config Release md plugin_lua54\Plugins\WSA\ARM64 diff --git a/build/make_win32_lua53.bat b/build/make_win32_lua53.bat index e9217476..0cf393d4 100644 --- a/build/make_win32_lua53.bat +++ b/build/make_win32_lua53.bat @@ -1,5 +1,24 @@ + +set "__VS=Visual Studio 16 2019" +set "__VSWhere=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" +set "__VSDISPLAY=" +set "__VSVER=" +if exist "%__VSWhere%" ( + for /f "tokens=*" %%p in ( + '"%__VSWhere%" -latest -property catalog_productLineVersion' + ) do set __VSDISPLAY=%%p + + for /f "tokens=*" %%p in ( + '"%__VSWhere%" -latest -property catalog_productDisplayVersion' + ) do set __VSVER=%%p + +) +if "%__VSVER%" neq "" ( + set __VS=Visual Studio %__VSVER:~0,2% %__VSDisplay% +) + mkdir build32 & pushd build32 -cmake -G "Visual Studio 15 2017" .. +cmake -G "%__VS%" -A Win32 .. popd cmake --build build32 --config Release md plugin_lua53\Plugins\x86 diff --git a/build/make_win32_luajit.bat b/build/make_win32_luajit.bat index 1e57c58f..d4811381 100644 --- a/build/make_win32_luajit.bat +++ b/build/make_win32_luajit.bat @@ -1,6 +1,6 @@ @echo off -call "C:\Program Files (x86)\Microsoft Visual Studio2017円\Community\VC\Auxiliary\Build\vcvars32.bat" +call "C:\Program Files (x86)\Microsoft Visual Studio2019円\Community\VC\Auxiliary\Build\vcvars32.bat" echo Swtich to x86 build env cd %~dp0\luajit-2.1.0b3\src @@ -8,8 +8,8 @@ call msvcbuild_mt.bat static cd ..\.. mkdir build_lj32 & pushd build_lj32 -cmake -DUSING_LUAJIT=ON -G "Visual Studio 15 2017" .. -IF %ERRORLEVEL% NEQ 0 cmake -DUSING_LUAJIT=ON -G "Visual Studio 15 2017" .. +cmake -DUSING_LUAJIT=ON -G "Visual Studio 16 2019" -A Win32 .. +IF %ERRORLEVEL% NEQ 0 cmake -DUSING_LUAJIT=ON -G "Visual Studio 16 2019" -A Win32 .. popd cmake --build build_lj32 --config Release md plugin_luajit\Plugins\x86 diff --git a/build/make_win64_lua53.bat b/build/make_win64_lua53.bat index 9d1af589..e3e338ae 100644 --- a/build/make_win64_lua53.bat +++ b/build/make_win64_lua53.bat @@ -1,5 +1,24 @@ + +set "__VS=Visual Studio 16 2019" +set "__VSWhere=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" +set "__VSDISPLAY=" +set "__VSVER=" +if exist "%__VSWhere%" ( + for /f "tokens=*" %%p in ( + '"%__VSWhere%" -latest -property catalog_productLineVersion' + ) do set __VSDISPLAY=%%p + + for /f "tokens=*" %%p in ( + '"%__VSWhere%" -latest -property catalog_productDisplayVersion' + ) do set __VSVER=%%p + +) +if "%__VSVER%" neq "" ( + set __VS=Visual Studio %__VSVER:~0,2% %__VSDisplay% +) + mkdir build64 & pushd build64 -cmake -G "Visual Studio 15 2017 Win64" .. +cmake -G "%__VS%" -A x64 .. popd cmake --build build64 --config Release md plugin_lua53\Plugins\x86_64 diff --git a/build/make_win64_luajit.bat b/build/make_win64_luajit.bat index d03aa78b..9d794308 100644 --- a/build/make_win64_luajit.bat +++ b/build/make_win64_luajit.bat @@ -1,6 +1,6 @@ @echo off -call "C:\Program Files (x86)\Microsoft Visual Studio2017円\Community\VC\Auxiliary\Build\vcvars64.bat" +call "C:\Program Files (x86)\Microsoft Visual Studio2019円\Community\VC\Auxiliary\Build\vcvars64.bat" echo Swtich to x64 build env cd %~dp0\luajit-2.1.0b3\src @@ -8,8 +8,8 @@ call msvcbuild_mt.bat static cd ..\.. mkdir build_lj64 & pushd build_lj64 -cmake -DUSING_LUAJIT=ON -G "Visual Studio 15 2017 Win64" .. -IF %ERRORLEVEL% NEQ 0 cmake -DUSING_LUAJIT=ON -G "Visual Studio 15 2017 Win64" .. +cmake -DUSING_LUAJIT=ON -G "Visual Studio 16 2019" -A x64 .. +IF %ERRORLEVEL% NEQ 0 cmake -DUSING_LUAJIT=ON -G "Visual Studio 16 2019" -A x64 .. popd cmake --build build_lj64 --config Release md plugin_luajit\Plugins\x86_64 diff --git a/build/make_win_lua54.bat b/build/make_win_lua54.bat index 497264ae..6b0c85eb 100644 --- a/build/make_win_lua54.bat +++ b/build/make_win_lua54.bat @@ -1,12 +1,33 @@ + +set "__VS=Visual Studio 16 2019" +set "__VSWhere=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" +set "__VSDISPLAY=" +set "__VSVER=" + +if exist "%__VSWhere%" ( + for /f "tokens=*" %%p in ( + '"%__VSWhere%" -latest -property catalog_productLineVersion' + ) do set __VSDISPLAY=%%p + + for /f "tokens=*" %%p in ( + '"%__VSWhere%" -latest -property catalog_productDisplayVersion' + ) do set __VSVER=%%p +) + +if "%__VSVER%" neq "" ( + set __VS=Visual Studio %__VSVER:~0,2% %__VSDisplay% +) + + mkdir build64_54 & pushd build64_54 -cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 15 2017 Win64" .. +cmake -DLUA_VERSION=5.4.1 -G "%__VS%" -A x64 .. popd cmake --build build64_54 --config Release md plugin_lua54\Plugins\x86_64 copy /Y build64_54\Release\xlua.dll plugin_lua54\Plugins\x86_64\xlua.dll mkdir build32_54 & pushd build32_54 -cmake -DLUA_VERSION=5.4.1 -G "Visual Studio 15 2017" .. +cmake -DLUA_VERSION=5.4.1 -G "%__VS%" -A Win32 .. popd cmake --build build32_54 --config Release md plugin_lua54\Plugins\x86 diff --git a/build/memory_leak_checker.c b/build/memory_leak_checker.c index 4e32fdbe..75c02e2e 100644 --- a/build/memory_leak_checker.c +++ b/build/memory_leak_checker.c @@ -150,7 +150,11 @@ LUA_API void xlua_report_object_relationship(lua_State *L, ObjectRelationshipRep { LClosure *cl = gco2lcl(p); lua_lock(L); +#if LUA_VERSION_NUM>= 504 && LUA_VERSION_RELEASE_NUM>= 50406 + setclLvalue2s(L, L->top.p, cl); +#else setclLvalue(L, L->top, cl); +#endif api_incr_top(L); lua_unlock(L); From acda28ec25df471c7ad905b1abca94981828faff Mon Sep 17 00:00:00 2001 From: chexiongsheng Date: 2025年10月28日 17:16:04 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=AE=98=E6=96=B9=E5=BA=93=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=9A=84=E6=9E=84=E5=BB=BA=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/make_ohos_lua53.sh | 23 +++++++++++++++++++++++ build/make_ohos_lua54.sh | 23 +++++++++++++++++++++++ build/make_osx_silicon_lua53.sh | 7 +++++++ build/make_osx_silicon_lua54.sh | 7 +++++++ build/make_osx_silicon_luajit.sh | 7 +++++++ 5 files changed, 67 insertions(+) create mode 100644 build/make_ohos_lua53.sh create mode 100644 build/make_ohos_lua54.sh create mode 100644 build/make_osx_silicon_lua53.sh create mode 100644 build/make_osx_silicon_lua54.sh create mode 100644 build/make_osx_silicon_luajit.sh diff --git a/build/make_ohos_lua53.sh b/build/make_ohos_lua53.sh new file mode 100644 index 00000000..c34adb99 --- /dev/null +++ b/build/make_ohos_lua53.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +if [ -n "$OHOS_NDK" ]; then + export NDK=${OHOS_NDK} +elif [ -n "$OHOS_NDK_HOME" ]; then + export NDK=${OHOS_NDK_HOME} +else + export NDK=~/ohos-sdk/linux/native +fi + +export PATH=${NDK}/build-tools/cmake/bin:$PATH + +function build() { + ABI=1ドル + BUILD_PATH=build.OHOS.${ABI} + cmake -H. -DOHOS_STL=c++_shared -B${BUILD_PATH} -DOHOS_ARCH=${ABI} -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/ohos.toolchain.cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON + cmake --build ${BUILD_PATH} --config Release + mkdir -p plugin_lua53/Plugins/OpenHarmony/libs/${ABI}/ + cp ${BUILD_PATH}/libxlua.so plugin_lua53/Plugins/OpenHarmony/libs/${ABI}/libxlua.so +} + +build armeabi-v7a +build arm64-v8a diff --git a/build/make_ohos_lua54.sh b/build/make_ohos_lua54.sh new file mode 100644 index 00000000..c68fc394 --- /dev/null +++ b/build/make_ohos_lua54.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +if [ -n "$OHOS_NDK" ]; then + export NDK=${OHOS_NDK} +elif [ -n "$OHOS_NDK_HOME" ]; then + export NDK=${OHOS_NDK_HOME} +else + export NDK=~/ohos-sdk/linux/native +fi + +export PATH=${NDK}/build-tools/cmake/bin:$PATH + +function build() { + ABI=1ドル + BUILD_PATH=build54.OHOS.${ABI} + cmake -H. -DLUA_VERSION=5.4.1 -DOHOS_STL=c++_shared -B${BUILD_PATH} -DOHOS_ARCH=${ABI} -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/ohos.toolchain.cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON + cmake --build ${BUILD_PATH} --config Release + mkdir -p plugin_lua54/Plugins/OpenHarmony/libs/${ABI}/ + cp ${BUILD_PATH}/libxlua.so plugin_lua54/Plugins/OpenHarmony/libs/${ABI}/libxlua.so +} + +build armeabi-v7a +build arm64-v8a diff --git a/build/make_osx_silicon_lua53.sh b/build/make_osx_silicon_lua53.sh new file mode 100644 index 00000000..b7687849 --- /dev/null +++ b/build/make_osx_silicon_lua53.sh @@ -0,0 +1,7 @@ +mkdir -p build_osx_silicon && cd build_osx_silicon +cmake -DBUILD_SILICON=ON -GXcode ../ +cd .. +cmake --build build_osx_silicon --config Release +mkdir -p plugin_lua53/Plugins/arm64/ +cp build_osx_silicon/Release/libxlua.dylib plugin_lua53/Plugins/arm64/ + diff --git a/build/make_osx_silicon_lua54.sh b/build/make_osx_silicon_lua54.sh new file mode 100644 index 00000000..f290f832 --- /dev/null +++ b/build/make_osx_silicon_lua54.sh @@ -0,0 +1,7 @@ +mkdir -p build_osx_54_silicon && cd build_osx_54_silicon +cmake -DBUILD_SILICON=ON -DLUA_VERSION=5.4.1 -GXcode ../ +cd .. +cmake --build build_osx_54_silicon --config Release +mkdir -p plugin_lua54/Plugins/arm64 +cp build_osx_54_silicon/Release/libxlua.dylib plugin_lua54/Plugins/arm64/ + diff --git a/build/make_osx_silicon_luajit.sh b/build/make_osx_silicon_luajit.sh new file mode 100644 index 00000000..2dfdde8a --- /dev/null +++ b/build/make_osx_silicon_luajit.sh @@ -0,0 +1,7 @@ +mkdir -p build_lj_osx && cd build_lj_osx +cmake -DBUILD_SILICON=ON -DUSING_LUAJIT=ON -GXcode ../ +cd .. +cmake --build build_lj_osx --config Release +mkdir -p plugin_luajit/Plugins/xlua.bundle/Contents/MacOS/ +cp build_lj_osx/Release/xlua.bundle/Contents/MacOS/xlua plugin_luajit/Plugins/xlua.bundle/Contents/MacOS/xlua + From c9e711c4e41d6ffe812e2ea98fd6b146760aa1b6 Mon Sep 17 00:00:00 2001 From: chexiongsheng Date: 2025年10月28日 17:16:42 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=90=88=E5=85=A5=E5=AE=98=E6=96=B9?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/CMakeLists.txt | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt index 7efc42ff..b617c169 100644 --- a/build/CMakeLists.txt +++ b/build/CMakeLists.txt @@ -252,17 +252,29 @@ if (APPLE) set_xcode_property (xlua IPHONEOS_DEPLOYMENT_TARGET "7.0" "all") else () ADD_DEFINITIONS(-DLUA_USE_MACOSX) #osx platform emmylua debugger must have this option or can not load cpath - set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_64_BIT)") - add_library(xlua MODULE - ${LUA_CORE} - ${LUA_LIB} - ${LUA_SOCKET} - ${XLUA_CORE} - ${THIRDPART_SRC} - ) - set_target_properties ( xlua PROPERTIES BUNDLE TRUE ) - #set_target_properties ( xlua PROPERTIES FRAMEWORK TRUE ) - #set_target_properties ( xlua PROPERTIES MACOSX_RPATH TRUE ) + if (BUILD_SILICON) + set(CMAKE_OSX_ARCHITECTURES arm64) + + add_library(xlua SHARED + ${LUA_CORE} + ${LUA_LIB} + ${LUA_SOCKET} + ${XLUA_CORE} + ${THIRDPART_SRC} + ) + else () + set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_64_BIT)") + add_library(xlua MODULE + ${LUA_CORE} + ${LUA_LIB} + ${LUA_SOCKET} + ${XLUA_CORE} + ${THIRDPART_SRC} + ) + set_target_properties ( xlua PROPERTIES BUNDLE TRUE ) + #set_target_properties ( xlua PROPERTIES FRAMEWORK TRUE ) + #set_target_properties ( xlua PROPERTIES MACOSX_RPATH TRUE ) + endif () endif () elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Switch") add_library(xlua STATIC

AltStyle によって変換されたページ (->オリジナル) /