Il y a pas mal de travail à faire pour le porter proprement vers WIN32 natif. J'y ai passé quelques après-midi pour avoir une idée. Cela dit, je crois qu'il se construit en Cygwin...
J'essaie de me conformer à libh2o en utilisant mingw. mais gnulib-tool ne peut pas prendre en charge cmake.Je n'ai pas réussi à importer
Je viens de construire libh2o via CYGWIN. Il n'y a qu'un changement mineur requis:
$ cmake . -G"Unix Makefiles" -DWITH_BUNDLED_SSL=0 -DWITH_MRUBY=0 -DLIBUV_LIBRARIES=~/git/libuv/.libs/libuv.a -DLIBUV_INCLUDE_DIR=~/git/libuv/include -DLIBUV_VERSION=1.11.0
$ make examples-simple
$ git diff
diff --git a/deps/libyrmcds/yrmcds_portability.h b/deps/libyrmcds/yrmcds_portability.h
index c9fd4d91..b1f151d4 100644
--- a/deps/libyrmcds/yrmcds_portability.h
+++ b/deps/libyrmcds/yrmcds_portability.h
@@ -27,7 +27,7 @@
# define htole64(x) OSSwapHostToLittleInt64(x)
# define be64toh(x) OSSwapBigToHostInt64(x)
# define le64toh(x) OSSwapLittleToHostInt64(x)
-#elif defined(__linux__)
+#elif defined(__linux__) || defined (__CYGWIN__)
# include <endian.h>
#elif defined(sun) // Solaris
# include <sys/byteorder.h>
J'ai essayé de construire le serveur complet aujourd'hui - cela a fonctionné. Maintenant, je peux utiliser h2o sous Windows. Je pense que cela devrait être soumis dans une pull request.
Ce fil a maintenant plus de 3 ans. h2o a changé depuis lors et les sources actuelles ne se construisent plus ou ne fonctionnent plus telles quelles sur MingW (si elles l'ont déjà fait). J'ai fait un patch pour h2o lors du portage d' Urbit vers Windows qui pourrait intéresser le projet h2o. Sa portée est limitée à ce dont j'avais besoin pour Urbit : seule la variante libuv est construite, et pas de support fastcgi ou memcached. Le plus grand changement par nombre de lignes est causé par libuv uv_buf_t
et h2o h2o_iovec_t
déclarant les deux champs dans l'ordre inverse : sur MingW, libuv utilise l'ordre WinSock pour éviter les copies supplémentaires, alors que h2o utilise le POSIX ordre. Le patch échange les champs en h2o_iovec_t
s'il est construit sur MingW.
/cc @kazuho
Commentaire le plus utile
Je viens de construire libh2o via CYGWIN. Il n'y a qu'un changement mineur requis: