diff --git a/tools/server/server-models.cpp b/tools/server/server-models.cpp index f8a10deb5e..a316e0033a 100644 --- a/tools/server/server-models.cpp +++ b/tools/server/server-models.cpp @@ -9,8 +9,13 @@ #include #include #include + +#if !defined(_WIN32) #include -#include // for kill() +#include // kill() +#include // waitpid() +#include // readlink() +#endif #if defined(__APPLE__) && defined(__MACH__) // macOS: use _NSGetExecutablePath to get the executable path diff --git a/tools/server/server-models.h b/tools/server/server-models.h index 094b287b56..c3f6900c44 100644 --- a/tools/server/server-models.h +++ b/tools/server/server-models.h @@ -7,6 +7,16 @@ #include #include +// pid_t is defined in on POSIX systems. On Windows, this +// header doesn't exist and the server code is not expected to build/run, +// but provide a minimal fallback typedef to avoid include errors when this +// header is parsed in non-POSIX builds. +#if defined(_WIN32) +using pid_t = int; +#else +#include +#endif + enum server_model_status { SERVER_MODEL_STATUS_UNLOADED, SERVER_MODEL_STATUS_LOADING, @@ -34,6 +44,7 @@ static std::string server_model_status_to_string(server_model_status status) { case SERVER_MODEL_STATUS_LOADING: return "loading"; case SERVER_MODEL_STATUS_LOADED: return "loaded"; case SERVER_MODEL_STATUS_FAILED: return "failed"; + default: return "unknown"; } } diff --git a/tools/server/server.cpp b/tools/server/server.cpp index 5377d79812..19cb39c290 100644 --- a/tools/server/server.cpp +++ b/tools/server/server.cpp @@ -5662,6 +5662,7 @@ int main(int argc, char ** argv, char ** envp) { // register API routes server_routes routes(params, ctx_server, ctx_http); + // TODO: improve this by changing arg.cpp bool is_router_server = params.model.path == DEFAULT_MODEL_PATH; if (is_router_server) { // setup server instances manager