compat: make sure ssize_t is available

Normally this comes via <sys/types.h> on POSIX, but we're faking that on
MSVC via our <unistd.h> shim. Make sure it's available.
diff --git a/CMakeModules/UseCompat.cmake b/CMakeModules/UseCompat.cmake
index a3be828..f9d98a0 100644
--- a/CMakeModules/UseCompat.cmake
+++ b/CMakeModules/UseCompat.cmake
@@ -58,4 +58,7 @@
     configure_file(${PROJECT_SOURCE_DIR}/compat/compat.h.in ${PROJECT_BINARY_DIR}/compat/compat.h @ONLY)
     include_directories(${PROJECT_BINARY_DIR}/compat)
     set(compatsrc ${PROJECT_SOURCE_DIR}/compat/compat.c)
+    if(WIN32)
+        include_directories(${PROJECT_SOURCE_DIR}/compat/posix-shims)
+    endif()
 endmacro()
diff --git a/compat/compat.h.in b/compat/compat.h.in
index 8ff7c89..3a14969 100644
--- a/compat/compat.h.in
+++ b/compat/compat.h.in
@@ -21,6 +21,7 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <time.h>
+#include <unistd.h>
 
 #ifndef __WORDSIZE
 #  if defined __x86_64__ && !defined __ILP32__