• src/xptls/CMakeLists.txt

    From Deuc¨@VERT to Git commit to main/sbbs/master on Thu May 7 19:11:19 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/85dcf1c43e62351765f5a86d
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: honor BOTAN3_VENDORED_TARGET on Win32

    When the parent project builds Botan via ExternalProject (typical
    on Windows where pkg-config is rarely installed), it pre-creates
    an IMPORTED Botan target and exports the cache hint
    BOTAN3_VENDORED_TARGET. Use that target directly instead of
    unconditionally requiring pkg-config Ä mirrors src/ssh/CMakeLists.txt.

    Fixes "Could NOT find PkgConfig" on Win32 CI runners.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu May 7 19:19:55 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/31025f03be71e82aaa147740
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: depend on xpdev target for portability defines

    Replace the duplicated platform / HAS_STDINT_H / HAS_INTTYPES_H
    checks with a single source of truth: link xpdev. xpdev's
    CMakeLists already publishes the right defines as PUBLIC on its
    target, but xptls only borrowed xpdev's headers without linking,
    so they didn't propagate.

    Add xpdev as a subdirectory if the parent hasn't already (using
    the same xpdev_DONE flag require_lib_dir uses, so syncterm's later require_libs() doesn't double-add).

    Fixes MSVC int8_t/int32_t/uint32_t redefinition errors caused by
    gen_defs.h's typedef block firing without HAS_STDINT_H set.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu May 7 19:23:43 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/47993deecbb746f364e2c7a1
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: set xpdev_DONE in CACHE so parent require_libs sees it

    set(xpdev_DONE TRUE) in xptls's scope doesn't propagate up to
    syncterm's scope where require_libs() runs, so syncterm was
    re-adding the xpdev subdirectory and triggering CMP0002 (duplicate
    target). CACHE INTERNAL makes the flag global, matching how
    require_lib_dir's own set() works inside the macro caller's scope.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Aug 3 23:30:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/1e15986d748227287fef0127
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: preserve MSVC atomics flags for C sources

    Visual Studio generators evaluate target-wide COMPILE_LANGUAGE
    expressions as C++ when a target contains any C++ sources. The Botan
    provider therefore caused the C-only atomics switches to disappear from xp_tls_credentials.c, leaving MSVC's C atomics support disabled.

    Apply the atomics enablement and __STDC_NO_ATOMICS__ override directly
    to each C source that includes <stdatomic.h>. This keeps the switches
    off C++ translation units while covering both Botan and OpenSSL builds.

    Co-Authored-By: OpenAI Codex <noreply@openai.com>

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