aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml1
-rw-r--r--.github/workflows/gcc-build.yml41
-rw-r--r--.github/workflows/linux-build.yml78
-rw-r--r--src/server/scripts/CMakeLists.txt4
4 files changed, 81 insertions, 43 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6c7ff5f0646..c55481a7583 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -155,4 +155,3 @@ workflows:
jobs:
- codestyle_and_sql
- pch
- - nopch
diff --git a/.github/workflows/gcc-build.yml b/.github/workflows/gcc-build.yml
deleted file mode 100644
index fa01c8e297e..00000000000
--- a/.github/workflows/gcc-build.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: GCC
-
-on:
- push:
- pull_request:
-
-jobs:
- build:
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v5
- - name: Set reusable strings
- id: strings
- shell: bash
- run: |
- echo "build-output-dir=${{ github.workspace }}/bin" >> "$GITHUB_OUTPUT"
- - name: Dependencies
- run: |
- sudo apt-get update && sudo apt-get install -yq libboost-all-dev g++-11
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 --slave /usr/bin/g++ g++ /usr/bin/g++-11
- - name: Setup
- env:
- CMAKE_BUILD_TYPE: Debug
- run: >
- cmake -S ${{ github.workspace }} -B ${{ steps.strings.outputs.build-output-dir }}
- -DWITH_WARNINGS=1 -DWITH_WARNINGS_AS_ERRORS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0
- -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG"
- -DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1
- - name: Build
- run: |
- cd bin
- make -j 4 -k && make install
- - name: Unit tests
- run: |
- cd bin
- make test
- - name: Check executables
- run: |
- cd ${{ github.workspace }}/check_install/bin
- ./bnetserver --version
- ./worldserver --version
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml
new file mode 100644
index 00000000000..4cbc29e0e60
--- /dev/null
+++ b/.github/workflows/linux-build.yml
@@ -0,0 +1,78 @@
+name: Ubuntu x64
+
+on:
+ push:
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ubuntu-24.04
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - cc: gcc-13
+ cxx: g++-13
+ pch: 1
+ launcher:
+ - cc: clang-17
+ cxx: clang++-17
+ pch: 1
+ launcher:
+ - cc: clang-17
+ cxx: clang++-17
+ pch: 0
+ launcher: ccache
+ steps:
+ - uses: actions/checkout@v5
+ - name: Set reusable strings
+ id: strings
+ shell: bash
+ run: |
+ echo "build-start=$EPOCHSECONDS" >> "$GITHUB_OUTPUT"
+ echo "build-output-dir=${{ github.workspace }}/bin" >> "$GITHUB_OUTPUT"
+ echo "ccache-key-prefix=ubuntu-${{ matrix.cc }}-${{ github.base_ref || github.ref_name }}" >> "$GITHUB_OUTPUT"
+ - name: Dependencies
+ run: |
+ sudo apt-get update && sudo apt-get install -yq ccache libboost-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev libssl-dev libreadline-dev zlib1g-dev libbz2-dev
+ - name: Restore nopch cache
+ id: ccache-restore
+ if: ${{ matrix.pch == '0' }}
+ uses: actions/cache@v4
+ with:
+ path: ${{ github.workspace }}/.ccache
+ key: ${{ steps.strings.outputs.ccache-key-prefix }}-${{ github.ref_name }}-${{ github.sha }}
+ restore-keys: |
+ ${{ steps.strings.outputs.ccache-key-prefix }}-${{ github.ref_name }}-
+ ${{ steps.strings.outputs.ccache-key-prefix }}-
+ - name: Setup
+ env:
+ CMAKE_BUILD_TYPE: Debug
+ CMAKE_C_COMPILER_LAUNCHER: ${{ matrix.launcher }}
+ CMAKE_CXX_COMPILER_LAUNCHER: ${{ matrix.launcher }}
+ CC: /usr/bin/${{ matrix.cc }}
+ CXX: /usr/bin/${{ matrix.cxx }}
+ run: >
+ cmake -GNinja -S ${{ github.workspace }} -B ${{ steps.strings.outputs.build-output-dir }}
+ -DWITH_WARNINGS=1 -DWITH_WARNINGS_AS_ERRORS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=${{ matrix.pch }} -DUSE_SCRIPTPCH=${{ matrix.pch }} -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0
+ -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG -g0" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG -g0"
+ -DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1
+ - name: Build
+ env:
+ CCACHE_BASEDIR: ${{ github.workspace }}
+ CCACHE_DIR: ${{ github.workspace }}/.ccache
+ CCACHE_CPP2: 1
+ run: |
+ ccache -z
+ cmake --build ${{ steps.strings.outputs.build-output-dir }}
+ ccache -s
+ ccache --evict-older-than $(($EPOCHSECONDS - ${{ steps.strings.outputs.build-start }}))s
+ - name: Unit tests
+ run: |
+ cmake --build ${{ steps.strings.outputs.build-output-dir }} --target test
+ - name: Check executables
+ run: |
+ cmake --install ${{ steps.strings.outputs.build-output-dir }}
+ cd ${{ github.workspace }}/check_install/bin
+ ./bnetserver --version
+ ./worldserver --version
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt
index 06eb5060341..40d08e8cfbe 100644
--- a/src/server/scripts/CMakeLists.txt
+++ b/src/server/scripts/CMakeLists.txt
@@ -156,7 +156,9 @@ foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST})
CollectAndAddSourceFiles(${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_MODULE_PATH})
target_sources(${SCRIPT_MODULE_PROJECT_NAME}
PUBLIC
- FILE_SET HEADERS FILES ScriptLoader.h)
+ FILE_SET HEADERS FILES ScriptLoader.h
+ PRIVATE
+ ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER})
target_link_libraries(${SCRIPT_MODULE_PROJECT_NAME}
PRIVATE