diff options
| -rw-r--r-- | .circleci/config.yml | 1 | ||||
| -rw-r--r-- | .github/workflows/gcc-build.yml | 41 | ||||
| -rw-r--r-- | .github/workflows/linux-build.yml | 78 | ||||
| -rw-r--r-- | src/server/scripts/CMakeLists.txt | 4 |
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 |
