Refactor: extract platform abstraction for subprocess spawning
Move all Unix-specific syscalls (fork, execvp, waitpid, strerror, /tmp) into a platform layer so the same spectrogram.c can target Windows (CreateProcess) and WebAssembly (stubs). Key changes: - src/platform.h: public API with spawn handle, error codes, path helpers - src/platform_linux.c: fork/execvp implementation, /tmp, strerror - src/platform_win32.c: CreateProcess implementation, temp dir lookup - src/platform_web.c: stub implementations (no subprocess support on web) - src/spectrogram.c: consume only platform.h; replace pid_t/fork/execvp with Platform_SpawnChild/WaitForChild; use Platform_GetTempDir() for /tmp path; replace strdup with malloc/memcpy for portability - Build: add platform_*.c to gmake, Premake, and build_web.sh
This commit is contained in:
@@ -202,6 +202,19 @@ if (downloadRaylib) then
|
||||
files {"../src/*.rc", "../src/*.ico"}
|
||||
files {"../resources/**"}
|
||||
|
||||
-- Exclude platform-specific files on each target
|
||||
filter {"system:linux"}
|
||||
excludedfiles { "../src/platform_win32.c", "../src/platform_web.c" }
|
||||
|
||||
filter {"system:windows"}
|
||||
excludedfiles { "../src/platform_linux.c", "../src/platform_web.c" }
|
||||
|
||||
filter {"system:macosx"}
|
||||
excludedfiles { "../src/platform_win32.c", "../src/platform_web.c" }
|
||||
|
||||
filter {"action:emscripten"}
|
||||
excludedfiles { "../src/platform_linux.c", "../src/platform_win32.c" }
|
||||
|
||||
filter{}
|
||||
|
||||
includedirs { "../src" }
|
||||
|
||||
Reference in New Issue
Block a user