diff --git a/mswin32/Build.bat b/mswin32/Build.bat
index 37e7c4940..87af7b4f2 100644
--- a/mswin32/Build.bat
+++ b/mswin32/Build.bat
@@ -7,9 +7,15 @@ for /f "usebackq delims=#" %%a in (`"%ProgramFiles(x86)%\Microsoft Visual Studio
@echo on
if "%TARGET%" == "Vars" ( goto :vars )
+mkdir build-pcre2
+cd build-pcre2
+cmake.exe -A Win32 -G "Visual Studio 16 2019" ..\..\libpcre\ || goto :QUIT
+cd ..
msbuild -nologo nmap.sln -m -t:%TARGET% -p:Configuration="%VCCONFIG%" -p:Platform="Win32" -fl
-exit /b %errorlevel%
+goto :QUIT
:vars
cl.exe /nologo /EP make-vars.h > make-vars.make
+
+:QUIT
exit /b %errorlevel%
diff --git a/mswin32/nmap.sln b/mswin32/nmap.sln
index 81c4b4983..1f015fef3 100644
--- a/mswin32/nmap.sln
+++ b/mswin32/nmap.sln
@@ -11,7 +11,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nmap", "nmap.vcxproj", "{36
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsock", "..\nsock\nsock.vcxproj", "{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "..\libpcre\libpcre.vcxproj", "{5DE86C7A-DE72-4265-8807-4CA38F94F22A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "build-pcre2\pcre2-8-static.vcxproj", "{6FC03DB9-D882-3161-ABEE-A44A395E05B3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nbase", "..\nbase\nbase.vcxproj", "{B630C8F7-3138-43E8-89ED-78742FA2AC5F}"
EndProject
@@ -66,17 +66,17 @@ Global
{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}.Release-oem|Win32.ActiveCfg = Release|Win32
{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}.Release-oem|Win32.Build.0 = Release|Win32
{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}.Release-oem|x64.ActiveCfg = ReleaseNoPcap|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Debug|Win32.ActiveCfg = Debug|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Debug|Win32.Build.0 = Debug|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Debug|x64.ActiveCfg = Debug|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Ncat Static|Win32.ActiveCfg = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Ncat Static|x64.ActiveCfg = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Release|Win32.ActiveCfg = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Release|Win32.Build.0 = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Release|x64.ActiveCfg = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Release-oem|Win32.ActiveCfg = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Release-oem|Win32.Build.0 = Release|Win32
- {5DE86C7A-DE72-4265-8807-4CA38F94F22A}.Release-oem|x64.ActiveCfg = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Debug|Win32.Build.0 = Debug|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Debug|x64.ActiveCfg = Debug|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Ncat Static|Win32.ActiveCfg = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Ncat Static|x64.ActiveCfg = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Release|Win32.ActiveCfg = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Release|Win32.Build.0 = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Release|x64.ActiveCfg = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Release-oem|Win32.ActiveCfg = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Release-oem|Win32.Build.0 = Release|Win32
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}.Release-oem|x64.ActiveCfg = Release|Win32
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Debug|Win32.ActiveCfg = Debug|Win32
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Debug|Win32.Build.0 = Debug|Win32
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Debug|x64.ActiveCfg = Debug|Win32
diff --git a/mswin32/nmap.vcxproj b/mswin32/nmap.vcxproj
index 47f52dfd5..108ddcb3b 100644
--- a/mswin32/nmap.vcxproj
+++ b/mswin32/nmap.vcxproj
@@ -70,8 +70,8 @@
Disabled
- .;..;..\liblua;..\nbase;..\libpcre;..\nsock\include;..\..\nmap-mswin32-aux\Npcap\Include;..\libdnet-stripped\include;..\..\nmap-mswin32-aux\OpenSSL\include;..\liblinear;..\libssh2\include;..\libz;%(AdditionalIncludeDirectories)
- WIN32;_CONSOLE;BPF_MAJOR_VERSION;ZLIB_WINAPI;%(PreprocessorDefinitions)
+ .;..;..\liblua;..\nbase;build-pcre2;..\nsock\include;..\..\nmap-mswin32-aux\Npcap\Include;..\libdnet-stripped\include;..\..\nmap-mswin32-aux\OpenSSL\include;..\liblinear;..\libssh2\include;..\libz;%(AdditionalIncludeDirectories)
+ WIN32;_CONSOLE;BPF_MAJOR_VERSION;ZLIB_WINAPI;PCRE2_STATIC;%(PreprocessorDefinitions)
false
false
false
@@ -90,10 +90,10 @@
false
- liblua.lib;nsock.lib;libpcre.lib;nbase.lib;libdnet-stripped.lib;libssh2.lib;zlibwapi.lib;liblinear.lib;ws2_32.lib;IPHlpAPI.Lib;wpcap.lib;packet.lib;advapi32.lib;libcrypto.lib;libssl.lib;shell32.lib;libnetutil.lib
+ liblua.lib;nsock.lib;pcre2-8-static.lib;nbase.lib;libdnet-stripped.lib;libssh2.lib;zlibwapi.lib;liblinear.lib;ws2_32.lib;IPHlpAPI.Lib;wpcap.lib;packet.lib;advapi32.lib;libcrypto.lib;libssl.lib;shell32.lib;libnetutil.lib
.\Debug\nmap.exe
true
- ..\libssh2\win32\Debug_dll;..\..\nmap-mswin32-aux\Npcap\Lib;..\liblua;..\libpcre;..\nsock;..\nbase;..\libdnet-stripped;../libnetutil;..\..\nmap-mswin32-aux\OpenSSL\lib;..\liblinear;..\libz\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;%(AdditionalLibraryDirectories)
+ ..\libssh2\win32\Debug_dll;..\..\nmap-mswin32-aux\Npcap\Lib;..\liblua;build-pcre2\Debug;..\nsock;..\nbase;..\libdnet-stripped;../libnetutil;..\..\nmap-mswin32-aux\OpenSSL\lib;..\liblinear;..\libz\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;%(AdditionalLibraryDirectories)
%(IgnoreSpecificDefaultLibraries)
packet.dll;wpcap.dll
true
@@ -117,8 +117,8 @@
MaxSpeed
OnlyExplicitInline
- .;..;..\liblua;..\nbase;..\libpcre;..\nsock\include;..\..\nmap-mswin32-aux\Npcap\Include;..\libdnet-stripped\include;..\..\nmap-mswin32-aux\OpenSSL\include;..\liblinear;..\libssh2\include;..\libz;%(AdditionalIncludeDirectories)
- WIN32;_CONSOLE;BPF_MAJOR_VERSION;ZLIB_WINAPI;%(PreprocessorDefinitions)
+ .;..;..\liblua;..\nbase;build-pcre2;..\nsock\include;..\..\nmap-mswin32-aux\Npcap\Include;..\libdnet-stripped\include;..\..\nmap-mswin32-aux\OpenSSL\include;..\liblinear;..\libssh2\include;..\libz;%(AdditionalIncludeDirectories)
+ WIN32;_CONSOLE;BPF_MAJOR_VERSION;ZLIB_WINAPI;PCRE2_STATIC;%(PreprocessorDefinitions)
true
true
@@ -131,10 +131,10 @@
CompileAsCpp
- liblua.lib;nsock.lib;libpcre.lib;nbase.lib;libdnet-stripped.lib;libssh2.lib;zlibwapi.lib;liblinear.lib;ws2_32.lib;IPHlpAPI.Lib;wpcap.lib;packet.lib;advapi32.lib;libcrypto.lib;libssl.lib;shell32.lib;libnetutil.lib
+ liblua.lib;nsock.lib;pcre2-8-static.lib;nbase.lib;libdnet-stripped.lib;libssh2.lib;zlibwapi.lib;liblinear.lib;ws2_32.lib;IPHlpAPI.Lib;wpcap.lib;packet.lib;advapi32.lib;libcrypto.lib;libssl.lib;shell32.lib;libnetutil.lib
.\$(Configuration)/nmap.exe
true
- ..\libssh2\win32\Release_dll;..\..\nmap-mswin32-aux\Npcap\Lib;..\liblua;..\libpcre;..\nsock;..\nbase;..\libdnet-stripped;../libnetutil;..\..\nmap-mswin32-aux\OpenSSL\lib;..\liblinear;..\libz\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;%(AdditionalLibraryDirectories)
+ ..\libssh2\win32\Release_dll;..\..\nmap-mswin32-aux\Npcap\Lib;..\liblua;build-pcre2\Release;..\nsock;..\nbase;..\libdnet-stripped;../libnetutil;..\..\nmap-mswin32-aux\OpenSSL\lib;..\liblinear;..\libz\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;%(AdditionalLibraryDirectories)
%(IgnoreSpecificDefaultLibraries)
packet.dll;wpcap.dll
true
@@ -157,8 +157,8 @@
MaxSpeed
OnlyExplicitInline
- .;..;..\liblua;..\nbase;..\libpcre;..\nsock\include;..\..\nmap-mswin32-aux\Npcap\Include;..\libdnet-stripped\include;..\..\nmap-mswin32-aux\OpenSSL\include;..\liblinear;..\libssh2\include;..\libz;%(AdditionalIncludeDirectories)
- NMAP_OEM;WIN32;_CONSOLE;BPF_MAJOR_VERSION;ZLIB_WINAPI;%(PreprocessorDefinitions)
+ .;..;..\liblua;..\nbase;build-pcre2;..\nsock\include;..\..\nmap-mswin32-aux\Npcap\Include;..\libdnet-stripped\include;..\..\nmap-mswin32-aux\OpenSSL\include;..\liblinear;..\libssh2\include;..\libz;%(AdditionalIncludeDirectories)
+ NMAP_OEM;WIN32;_CONSOLE;BPF_MAJOR_VERSION;ZLIB_WINAPI;PCRE2_STATIC;%(PreprocessorDefinitions)
true
true
@@ -171,10 +171,10 @@
CompileAsCpp
- liblua.lib;nsock.lib;libpcre.lib;nbase.lib;libdnet-stripped.lib;libssh2.lib;zlibwapi.lib;liblinear.lib;ws2_32.lib;IPHlpAPI.Lib;wpcap.lib;packet.lib;advapi32.lib;libcrypto.lib;libssl.lib;shell32.lib;libnetutil.lib
+ liblua.lib;nsock.lib;pcre2-8-static.lib;nbase.lib;libdnet-stripped.lib;libssh2.lib;zlibwapi.lib;liblinear.lib;ws2_32.lib;IPHlpAPI.Lib;wpcap.lib;packet.lib;advapi32.lib;libcrypto.lib;libssl.lib;shell32.lib;libnetutil.lib
.\$(Configuration)/nmap.exe
true
- ..\libssh2\win32\Release_dll;..\..\nmap-mswin32-aux\Npcap\Lib;..\liblua;..\libpcre;..\nsock;..\nbase;..\libdnet-stripped;../libnetutil;..\..\nmap-mswin32-aux\OpenSSL\lib;..\liblinear;..\libz\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;%(AdditionalLibraryDirectories)
+ ..\libssh2\win32\Release_dll;..\..\nmap-mswin32-aux\Npcap\Lib;..\liblua;build-pcre2\Release..\nsock;..\nbase;..\libdnet-stripped;../libnetutil;..\..\nmap-mswin32-aux\OpenSSL\lib;..\liblinear;..\libz\contrib\vstudio\vc14\x86\ZlibDllReleaseWithoutAsm;%(AdditionalLibraryDirectories)
%(IgnoreSpecificDefaultLibraries)
packet.dll;wpcap.dll
true
@@ -407,8 +407,8 @@
{31fb0767-a71f-4575-8379-002d72b8af86}
false
-
- {5de86c7a-de72-4265-8807-4ca38f94f22a}
+
+ {6FC03DB9-D882-3161-ABEE-A44A395E05B3}
false