• .gitlab-ci-unix.yml .gitlab-ci.yml

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Jul 16 19:25:32 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/f88761b4f2123a438616835e
    Modified Files:
    .gitlab-ci-unix.yml .gitlab-ci.yml
    Log Message:
    CI: build libtermgfx and the doors that link it on Linux x64

    The termgfx door family had no CI coverage: the Doors section only builds
    the ODoors-based doors, which are gmake projects. libtermgfx, syncdoom, syncduke, syncretro, syncmoo1 and syncconquer are CMake projects, so the existing build_doors gate does not fit them -- it drives gmake command
    lines that mean nothing to CMake.

    Add a separate build_termgfx_doors input, defaulting to 'no', and enable
    it on linux/x64 only. These doors also build under Windows/MSVC via each
    door's build.bat, but the other CI targets are unverified, so platforms
    opt in as each one is confirmed rather than opting out after a red
    pipeline.

    The jobs share a .<os>-termgfx-door template carrying the gate, the
    ccache launcher and needs: []. Unlike the ODoors doors, these build their dependencies (xpdev, termgfx, and each door's vendored engine) as CMake sub-targets, so they need no *.tgz artifact from the library jobs and can
    start immediately.

    Each door is driven through its own build.sh, the documented entry point,
    which encodes that door's CMake flags -- syncconquer's -DBUILD_VANILLATD=ON adds the second Tiberian Dawn binary, so calling cmake directly here would silently halve its artifact. build.sh only builds; it never deploys into a
    live install. libtermgfx has no build.sh, so its job calls cmake directly
    and is the one place TERMGFX_TESTS is turned on, running ctest.

    ccache follows the [syncterm-cmake] job's convention and matters more for
    these trees, which vendor whole engines. It is set through the CMAKE_<LANG>_COMPILER_LAUNCHER environment variables rather than -D,
    because build.sh owns the cmake invocation and takes no extra arguments.

    syncscumm is deliberately excluded: it is a full ScummVM configure+make
    across five engines rather than a small CMake project, and wants its own
    job once the rest are proven.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net