メインコンテンツまでスキップ

msvc でビルド

Windows 版、cygwin でも mingw でもなく、msvc 版のビルドを試みる。

あと 59 個コンパイルを通す。

dependency

bohem gc と openssl の meson 依存を追加した。

bohem gc が 6 から 8 に上がるので、 そのままで動くか確認は必要。

ncurses (termcap/terminfo) への依存を削除する。 fxtui を導入したので削除する準備はできている。

unix headers

unistd.h

わりといっぱい使っている。

setjmp.h

大域脱出。 とりあえず削除。 必要に応じて後で、c++ の throw/try として復活させればよさそう。

static JMP_BUF AbortLoading;
static void KeyAbort(SIGNAL_ARG) {
LONGJMP(AbortLoading, 1);
SIGNAL_RETURN;
}

strncasecmp

https://github.com/osmcode/libosmium/issues/59

#ifdef _MSC_VER
#define strncasecmp _strnicmp
#define strcasecmp _stricmp
#endif

とりあえずコンパイルを通したが…

ぜんぜん動く状態でないのでちゃんと書き換えが必要。

  • socket
  • local cgi, setenv
  • file copy, move, symblink, mkdir, chmod, stat
  • fork, pipe
  • sleep

とはいえ、8割くらい libuv の守備範囲に入っていそう。

#ifdef _MSC_VER が印になっているので、 これを lubuv 実装で置き換えていく。

動いた

gzip を zlib 組込みで解凍できるようにした。