summaryrefslogtreecommitdiff
path: root/winbuild
diff options
context:
space:
mode:
authorNick Banks <nibanks@microsoft.com>2022-04-10 18:21:37 +0200
committerDaniel Stenberg <daniel@haxx.se>2022-04-10 18:23:04 +0200
commit37492ebbfa24ba4e700e6655b3dbc2bdd65c894a (patch)
treee0850c91ec4a66c654463d2ede04cd9c038288fd /winbuild
parent7befbe9ce97d6f9a1525a0fcbf5cbc5ad50546e3 (diff)
downloadcurl-37492ebbfa24ba4e700e6655b3dbc2bdd65c894a.tar.gz
msh3: add support for QUIC and HTTP/3 using msh3
Considered experimental, as the other HTTP/3 backends. Closes #8517
Diffstat (limited to 'winbuild')
-rw-r--r--winbuild/Makefile.vc22
-rw-r--r--winbuild/MakefileBuild.vc26
-rw-r--r--winbuild/README.md2
3 files changed, 50 insertions, 0 deletions
diff --git a/winbuild/Makefile.vc b/winbuild/Makefile.vc
index 54da51e10..48b0acc37 100644
--- a/winbuild/Makefile.vc
+++ b/winbuild/Makefile.vc
@@ -149,6 +149,23 @@ NGHTTP2 = static
USE_NGHTTP2 = false
!ENDIF
+!IF "$(ENABLE_MSH3)"=="yes"
+# compatibility bit, WITH_MSH3 is the correct flag
+WITH_MSH3 = dll
+USE_MSH3 = true
+MSH3 = dll
+!ELSEIF "$(WITH_MSH3)"=="dll"
+USE_MSH3 = true
+MSH3 = dll
+!ELSEIF "$(WITH_MSH3)"=="static"
+USE_MSH3 = true
+MSH3 = static
+!ENDIF
+
+!IFNDEF USE_MSH3
+USE_MSH3 = false
+!ENDIF
+
!IF "$(WITH_MBEDTLS)"=="dll" || "$(WITH_MBEDTLS)"=="static"
USE_MBEDTLS = true
MBEDTLS = $(WITH_MBEDTLS)
@@ -240,6 +257,10 @@ CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-schannel
CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-nghttp2-$(NGHTTP2)
!ENDIF
+!IF "$(USE_MSH3)"=="true"
+CONFIG_NAME_LIB = $(CONFIG_NAME_LIB)-msh3
+!ENDIF
+
!MESSAGE configuration name: $(CONFIG_NAME_LIB)
BUILD_DIR=../builds/$(CONFIG_NAME_LIB)
@@ -261,6 +282,7 @@ $(MODE):
@SET CONFIG_NAME_LIB=$(CONFIG_NAME_LIB)
@SET MACHINE=$(MACHINE)
@SET USE_NGHTTP2=$(USE_NGHTTP2)
+ @SET USE_MSH3=$(USE_MSH3)
@SET USE_IDN=$(USE_IDN)
@SET USE_IPV6=$(USE_IPV6)
@SET USE_SSPI=$(USE_SSPI)
diff --git a/winbuild/MakefileBuild.vc b/winbuild/MakefileBuild.vc
index c4b8fc94b..33f779467 100644
--- a/winbuild/MakefileBuild.vc
+++ b/winbuild/MakefileBuild.vc
@@ -164,6 +164,26 @@ NGHTTP2_LIBS = nghttp2.lib
!ENDIF
!ENDIF
+!IFDEF MSH3_PATH
+MSH3_INC_DIR = $(MSH3_PATH)\include
+MSH3_LIB_DIR = $(MSH3_PATH)\lib
+MSH3_LFLAGS = $(MSH3_LFLAGS) "/LIBPATH:$(MSH3_LIB_DIR)"
+!ELSE
+MSH3_INC_DIR = $(DEVEL_INCLUDE)
+MSH3_LIB_DIR = $(DEVEL_LIB)
+!ENDIF
+
+!IF "$(WITH_MSH3)"=="dll"
+MSH3_CFLAGS = /DUSE_MSH3 /I"$(MSH3_INC_DIR)"
+MSH3_LIBS = msh3.lib
+!ELSEIF "$(WITH_MSH3)"=="static"
+MSH3_CFLAGS = /DUSE_MSH3 /DMSH3_STATICLIB /I"$(MSH3_INC_DIR)"
+!IF EXISTS("$(NGHTTP2_LIB_DIR)\msh3_static.lib")
+MSH3_LIBS = msh3_static.lib
+!ELSE
+MSH3_LIBS = msh3.lib
+!ENDIF
+!ENDIF
!IFDEF MBEDTLS_PATH
MBEDTLS_INC_DIR = $(MBEDTLS_PATH)\include
@@ -492,6 +512,11 @@ CFLAGS = $(CFLAGS) $(NGHTTP2_CFLAGS)
LFLAGS = $(LFLAGS) $(NGHTTP2_LFLAGS) $(NGHTTP2_LIBS)
!ENDIF
+!IF "$(USE_MSH3)"=="true"
+CFLAGS = $(CFLAGS) $(MSH3_CFLAGS)
+LFLAGS = $(LFLAGS) $(MSH3_LFLAGS) $(MSH3_LIBS)
+!ENDIF
+
!IF "$(GEN_PDB)"=="true"
CFLAGS = $(CFLAGS) $(CFLAGS_PDB) /Fd"$(LIB_DIROBJ)\$(PDB)"
LFLAGS = $(LFLAGS) $(LFLAGS_PDB)
@@ -545,6 +570,7 @@ package: $(TARGET)
$(TARGET): $(LIB_OBJS) $(LIB_DIROBJ) $(DIRDIST)
@echo Using SSL: $(USE_SSL)
@echo Using NGHTTP2: $(USE_NGHTTP2)
+ @echo Using MSH3: $(USE_MSH3)
@echo Using c-ares: $(USE_CARES)
@echo Using SSH2: $(USE_SSH2)
@echo Using SSH: $(USE_SSH)
diff --git a/winbuild/README.md b/winbuild/README.md
index 4c33d4ff6..3f664c010 100644
--- a/winbuild/README.md
+++ b/winbuild/README.md
@@ -80,6 +80,7 @@ where `<options>` is one or many of:
Uncompress them into the deps folder.
- `WITH_SSL=<dll/static>` - Enable OpenSSL support, DLL or static
- `WITH_NGHTTP2=<dll/static>` - Enable HTTP/2 support, DLL or static
+ - `WITH_MSH3=<dll/static>` - Enable (experimental) HTTP/3 support, DLL or static
- `WITH_MBEDTLS=<dll/static>` - Enable mbedTLS support, DLL or static
- `WITH_CARES=<dll/static>` - Enable c-ares support, DLL or static
- `WITH_ZLIB=<dll/static>` - Enable zlib support, DLL or static
@@ -103,6 +104,7 @@ where `<options>` is one or many of:
- `CARES_PATH=<path>` - Custom path for c-ares
- `MBEDTLS_PATH=<path>` - Custom path for mbedTLS
- `NGHTTP2_PATH=<path>` - Custom path for nghttp2
+ - `MSH3_PATH=<path>` - Custom path for msh3
- `SSH2_PATH=<path>` - Custom path for libSSH2
- `SSL_PATH=<path>` - Custom path for OpenSSL
- `ZLIB_PATH=<path>` - Custom path for zlib