https://gitlab.synchro.net/main/sbbs/-/commit/5a32f35838daf85bf4e164b6
Added Files:
src/doors/syncduke/build.bat src/doors/syncduke/compat/strings.h src/doors/syncduke/vcpkg.json
Modified Files:
src/doors/syncduke/.gitignore CMakeLists.txt README.md syncduke_config.c syncduke_door.c syncduke_input.c syncduke_io.c syncduke_plat.c
Log Message:
syncduke: Win32/MSVC build (build.bat, vcpkg.json, cross-platform shim I/O)
Following src/doors/syncdoom, add the files to build SyncDuke for Win32:
- build.bat + vcpkg.json: VS 2022 configure/build/install, static libjxl
via classic-mode vcpkg (falls back to sixel/text tiers when absent).
- CMakeLists.txt: PLATFORM_WIN32 on Windows; guard the GCC-only options
under NOT MSVC and add MSVC equivalents (/w, CRT/Winsock deprecation
defines, /FORCE:MULTIPLE for the engine tentative-global + xpdev dup
symbols, premap.c /Od, ws2_32 + winmm). /FIinttypes.h plus
_MSC_STDINT_H_/_MSC_INTTYPES_H_ neutralize the vendored msinttypes
shims that clash with MSVC 2022's native headers.
- compat/strings.h: satisfies the vendored filesystem.c <strings.h>
include on MSVC (maps strcasecmp); #include_next passthrough on *nix.
- Shim sources (door/config/io/input/plat): _WIN32 paths using Winsock
send/recv/ioctlsocket, QueryPerformanceCounter clocks, Sleep,
_fullpath/_stricmp, and .CRT$XCU constructors (reading __argc/__argv)
in place of glibc __attribute__((constructor)). input.c/door.c stay
xpdev-free so the keymap unit test still links standalone; the *nix
paths are unchanged.
Verified: builds under MSVC (Win32 x86 console syncduke.exe) and on Linux.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net