diff --git a/.ci/Servatrice_Debian11/Dockerfile b/.ci/Servatrice_Debian11/Dockerfile new file mode 100644 index 000000000..fadc9e0e7 --- /dev/null +++ b/.ci/Servatrice_Debian11/Dockerfile @@ -0,0 +1,21 @@ +FROM debian:11 + +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + build-essential \ + ccache \ + clang-format \ + cmake \ + file \ + g++ \ + git \ + libmariadb-dev-compat \ + libprotobuf-dev \ + libqt5sql5-mysql \ + libqt5websockets5-dev \ + ninja-build \ + protobuf-compiler \ + qttools5-dev \ + qttools5-dev-tools \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* diff --git a/.ci/compile.sh b/.ci/compile.sh index ac1dc2a22..6c8a7db18 100755 --- a/.ci/compile.sh +++ b/.ci/compile.sh @@ -12,7 +12,7 @@ # --ccache [] uses ccache and shows stats, optionally provide size # --dir sets the name of the build dir, default is "build" # --target-macos-version sets the min os version - only used for macOS builds -# uses env: BUILDTYPE MAKE_INSTALL MAKE_PACKAGE PACKAGE_TYPE PACKAGE_SUFFIX MAKE_SERVER MAKE_TEST USE_CCACHE CCACHE_SIZE BUILD_DIR CMAKE_GENERATOR TARGET_MACOS_VERSION +# uses env: BUILDTYPE MAKE_INSTALL MAKE_PACKAGE PACKAGE_TYPE PACKAGE_SUFFIX MAKE_SERVER MAKE_NO_CLIENT MAKE_TEST USE_CCACHE CCACHE_SIZE BUILD_DIR CMAKE_GENERATOR TARGET_MACOS_VERSION # (correspond to args: --debug/--release --install --package --suffix --server --test --ccache --dir ) # exitcode: 1 for failure, 3 for invalid arguments @@ -47,6 +47,10 @@ while [[ $# != 0 ]]; do MAKE_SERVER=1 shift ;; + '--no-client') + MAKE_NO_CLIENT=1 + shift + ;; '--test') MAKE_TEST=1 shift @@ -117,6 +121,9 @@ flags=("-DCMAKE_BUILD_TYPE=$BUILDTYPE") if [[ $MAKE_SERVER ]]; then flags+=("-DWITH_SERVER=1") fi +if [[ $MAKE_NO_CLIENT ]]; then + flags+=("-DWITH_CLIENT=0" "-DWITH_ORACLE=0" "-DWITH_DBCONVERTER=0") +fi if [[ $MAKE_TEST ]]; then flags+=("-DTEST=1") fi @@ -220,12 +227,12 @@ fi echo "::group::Configure cmake" cmake --version -echo "Running cmake with flags: ${flags[@]}" +echo "Running cmake with flags: ${flags[*]}" cmake .. "${flags[@]}" echo "::endgroup::" echo "::group::Build project" -echo "Running cmake --build with flags: ${buildflags[@]}" +echo "Running cmake --build with flags: ${buildflags[*]}" cmake --build . "${buildflags[@]}" echo "::endgroup::" diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 2f794d2b3..14b9d3e13 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -114,7 +114,12 @@ jobs: - distro: Debian version: 11 package: DEB - test: skip # Running tests on all distros is superfluous + + - distro: Servatrice_Debian + version: 11 + package: DEB + test: skip + server_only: yes - distro: Debian version: 12 @@ -191,10 +196,11 @@ jobs: SUFFIX: '-${{matrix.distro}}${{matrix.version}}' package: '${{matrix.package}}' CMAKE_GENERATOR: '${{env.CMAKE_GENERATOR}}' + NO_CLIENT: ${{matrix.server_only == 'yes' && '--no-client' || '' }} run: | source .ci/docker.sh RUN --server --release --package "$package" --dir "$BUILD_DIR" \ - --ccache "$CCACHE_SIZE" + --ccache "$CCACHE_SIZE" $NO_CLIENT .ci/name_build.sh - name: Save compiler cache (ccache) diff --git a/CMakeLists.txt b/CMakeLists.txt index b3eda4429..affc6472d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -333,11 +333,14 @@ add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_protocol ${CMAKE_BINARY_DIR}/ add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_network ${CMAKE_BINARY_DIR}/libcockatrice_network) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_deck_list ${CMAKE_BINARY_DIR}/libcockatrice_deck_list) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_rng ${CMAKE_BINARY_DIR}/libcockatrice_rng) -add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_settings ${CMAKE_BINARY_DIR}/libcockatrice_settings) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_card ${CMAKE_BINARY_DIR}/libcockatrice_card) add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_utility ${CMAKE_BINARY_DIR}/libcockatrice_utility) -add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_models ${CMAKE_BINARY_DIR}/libcockatrice_models) -add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_filters ${CMAKE_BINARY_DIR}/libcockatrice_filters) +if(WITH_ORACLE OR WITH_CLIENT) + add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_settings ${CMAKE_BINARY_DIR}/libcockatrice_settings) + add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_models ${CMAKE_BINARY_DIR}/libcockatrice_models) + add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_filters ${CMAKE_BINARY_DIR}/libcockatrice_filters) +endif() + if(WITH_SERVER) add_subdirectory(servatrice) set(CPACK_INSTALL_CMAKE_PROJECTS "Servatrice;Servatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})