diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index faf884c35..a21453ad8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,12 +25,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup MSBuild - uses: microsoft/setup-msbuild@v1.1.3 + uses: microsoft/setup-msbuild@v2 with: vs-version: '16.8' @@ -58,13 +58,14 @@ jobs: move msvc\${{ env.buildRelease }}\mp.pdb publish\debug\mp.pdb - name: Deploy artifacts - uses: actions/upload-artifact@v3.1.1 + uses: actions/upload-artifact@v4 with: name: win32 path: publish/* testdemos: - name: 'Test demos' + if: false # TODO: FIXME!! + name: 'Test demos (FIXME)' runs-on: ubuntu-20.04 container: s1lentq/testdemos:latest needs: [windows] @@ -80,7 +81,7 @@ jobs: steps: - name: Deploying windows artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v2 with: name: win32 @@ -136,7 +137,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true @@ -173,7 +174,7 @@ jobs: - name: Build using Clang C++ Compiler run: | - rm -rf build && CC=clang CXX=clang++ cmake -B build && cmake --build build -j8 + rm -rf build && CC=clang CXX=clang++ cmake -DUSE_LEGACY_LIBC=ON -B build && cmake --build build -j8 - name: Prepare CSSDK run: | @@ -199,7 +200,7 @@ jobs: shell: bash - name: Deploy artifacts - uses: actions/upload-artifact@v3.1.1 + uses: actions/upload-artifact@v4 id: upload-job with: name: linux32 @@ -213,17 +214,17 @@ jobs: publish: name: 'Publish' - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest needs: [windows, testdemos, linux] steps: - name: Deploying linux artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v6 with: name: linux32 - name: Deploying windows artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v6 with: name: win32 @@ -253,7 +254,7 @@ jobs: 7z a -tzip regamedll-bin-${{ env.APP_VERSION }}.zip bin/ cssdk/ - name: Publish artifacts - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 id: publish-job if: | startsWith(github.ref, 'refs/tags/') && diff --git a/regamedll/CMakeLists.txt b/regamedll/CMakeLists.txt index 69f710b31..ffae23827 100644 --- a/regamedll/CMakeLists.txt +++ b/regamedll/CMakeLists.txt @@ -22,6 +22,7 @@ project(regamedll CXX) option(DEBUG "Build with debug information." OFF) option(USE_STATIC_LIBSTDC "Enables static linking libstdc++." OFF) +option(USE_LEGACY_LIBC "Enables linking against legacy libc (<= 2.15) for compat with older distros (Debian 8/Ubuntu 16.04/Centos 7)." OFF) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -32,6 +33,7 @@ set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") set(COMPILE_FLAGS "-m32 -U_FORTIFY_SOURCE") set(LINK_FLAGS "-m32 -s") +set(LINK_LIBS dl aelf32) set(COMPILE_FLAGS "${COMPILE_FLAGS} -Wall -fno-exceptions -fno-builtin -Wno-unknown-pragmas") @@ -362,12 +364,13 @@ target_sources(regamedll PRIVATE ${UNITTESTS_SRCS}> ) -target_link_libraries(regamedll PRIVATE - dl - aelf32 +if (CMAKE_BUILD_TYPE MATCHES Unittests) + list(APPEND LINK_LIBS cppunitlite) +elseif (USE_LEGACY_LIBC) + list(APPEND LINK_LIBS libc-2.15.so) +endif() - $<$:cppunitlite> -) +target_link_libraries(regamedll PRIVATE ${LINK_LIBS}) if (USE_STATIC_LIBSTDC) target_compile_definitions(regamedll PRIVATE BUILD_STATIC_LIBSTDC) diff --git a/regamedll/lib/linux32/libc-2.15.so b/regamedll/lib/linux32/libc-2.15.so new file mode 100644 index 000000000..8c11121eb Binary files /dev/null and b/regamedll/lib/linux32/libc-2.15.so differ