From 9987485f63c98df5b04848f9a0f5eceaa794261f Mon Sep 17 00:00:00 2001 From: atraczyk Date: Fri, 17 Feb 2017 18:15:54 -0500 Subject: [PATCH 1/3] clean up solution --- MSVC/.gitignore | 1 - MSVC/contrib/src/fetch_and_patch.bat | 20 + MSVC/contrib/src/gmp/fetch_and_patch.bat | 22 + MSVC/contrib/src/gmp/gmp-uwp.patch | 110 +++++ MSVC/contrib/src/gnutls/fetch_and_patch.bat | 24 + MSVC/contrib/src/gnutls/gnutls-no-egd.patch | 107 +++++ MSVC/contrib/src/gnutls/gnutls-uwp.patch | 445 ++++++++++++++++++ .../src/gnutls/read-file-limits.h.patch | 12 + MSVC/contrib/src/iconv/fetch_and_patch.bat | 22 + MSVC/contrib/src/iconv/libiconv-uwp.patch | 99 ++++ MSVC/contrib/src/msgpack/fetch_and_patch.bat | 22 + MSVC/contrib/src/msgpack/msgpack-uwp.patch | 221 +++++++++ MSVC/contrib/src/nettle/fetch_and_patch.bat | 22 + MSVC/contrib/src/nettle/nettle-uwp.patch | 228 +++++++++ MSVC/contrib/src/zlib/fetch_and_patch.bat | 22 + MSVC/contrib/src/zlib/zlib-uwp.patch | 97 ++++ MSVC/dhtchat.vcxproj | 4 +- MSVC/dhtnode.vcxproj | 4 +- MSVC/dhtscanner.vcxproj | 4 +- MSVC/opendht.vcxproj | 3 +- MSVC/opendht.vcxproj.filters | 3 + MSVC/opendht_deps.sln | 27 +- MSVC/project_get_dependencies.bat | 79 ---- 23 files changed, 1491 insertions(+), 107 deletions(-) create mode 100644 MSVC/contrib/src/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/gmp/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/gmp/gmp-uwp.patch create mode 100644 MSVC/contrib/src/gnutls/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/gnutls/gnutls-no-egd.patch create mode 100644 MSVC/contrib/src/gnutls/gnutls-uwp.patch create mode 100644 MSVC/contrib/src/gnutls/read-file-limits.h.patch create mode 100644 MSVC/contrib/src/iconv/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/iconv/libiconv-uwp.patch create mode 100644 MSVC/contrib/src/msgpack/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/msgpack/msgpack-uwp.patch create mode 100644 MSVC/contrib/src/nettle/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/nettle/nettle-uwp.patch create mode 100644 MSVC/contrib/src/zlib/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/zlib/zlib-uwp.patch create mode 100644 MSVC/opendht.vcxproj.filters delete mode 100644 MSVC/project_get_dependencies.bat diff --git a/MSVC/.gitignore b/MSVC/.gitignore index 5a687e53..ee16880e 100644 --- a/MSVC/.gitignore +++ b/MSVC/.gitignore @@ -15,7 +15,6 @@ Release/ *.VC.VC.opendb *.VC.db *.db -*.filters # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/MSVC/contrib/src/fetch_and_patch.bat b/MSVC/contrib/src/fetch_and_patch.bat new file mode 100644 index 00000000..3aeb1d3f --- /dev/null +++ b/MSVC/contrib/src/fetch_and_patch.bat @@ -0,0 +1,20 @@ +@echo OFF +SETLOCAL EnableDelayedExpansion + +set SRC=%~dp0 + +set USE_CACHE=0 + +set DEPENDENCIES=( ^ +gmp, ^ +gnutls, ^ +iconv, ^ +msgpack, ^ +nettle, ^ +opendht, ^ +zlib ^ +) + +for %%I in %DEPENDENCIES% do ( + call %SRC%\%%I\fetch_and_patch.bat +) \ No newline at end of file diff --git a/MSVC/contrib/src/gmp/fetch_and_patch.bat b/MSVC/contrib/src/gmp/fetch_and_patch.bat new file mode 100644 index 00000000..1fb83c76 --- /dev/null +++ b/MSVC/contrib/src/gmp/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set GMP_VERSION=3c8f5a0ae0c2ac9ff0ea31b27f71b152979b556d +set GMP_URL=https://github.com/ShiftMediaProject/gmp/archive/%GMP_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%GMP_VERSION%.tar.gz %cd% +) else ( + wget %GMP_URL% +) + +7z -y x %GMP_VERSION%.tar.gz && 7z -y x %GMP_VERSION%.tar -o%BUILD% +del %GMP_VERSION%.tar && del %GMP_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\gmp-%GMP_VERSION% gmp + +cd %BUILD%\gmp + +git apply --reject --whitespace=fix %SRC%\gmp\gmp-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/gmp/gmp-uwp.patch b/MSVC/contrib/src/gmp/gmp-uwp.patch new file mode 100644 index 00000000..e32ef9ae --- /dev/null +++ b/MSVC/contrib/src/gmp/gmp-uwp.patch @@ -0,0 +1,110 @@ +--- a/SMP/libgmp.vcxproj ++++ b/SMP/libgmp.vcxproj +@@ -1248,6 +1248,7 @@ + {02B94302-23D6-43EF-8865-95CDE99D5DC2} + libgmp + libgmp ++ 8.1 + + + +@@ -1368,65 +1369,65 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmpd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmpd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmpd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmpd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmp + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmp +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +--- a/SMP/config.h ++++ b/SMP/config.h +@@ -202,7 +202,7 @@ + /* #undef HAVE_NATIVE_mpn_add_n_sub_n */ + #define HAVE_NATIVE_mpn_add_nc 1 + #if defined(__x86_64) || defined(_M_X64) +-#define HAVE_NATIVE_mpn_addaddmul_1msb0 1 ++#define HAVE_NATIVE_mpn_addaddmul_1msb0 0 + #define HAVE_NATIVE_mpn_addlsh1_n 1 + #define HAVE_NATIVE_mpn_addlsh2_n 1 + #define HAVE_NATIVE_mpn_addlsh_n 1 +-- +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/gnutls/fetch_and_patch.bat b/MSVC/contrib/src/gnutls/fetch_and_patch.bat new file mode 100644 index 00000000..5c25b52e --- /dev/null +++ b/MSVC/contrib/src/gnutls/fetch_and_patch.bat @@ -0,0 +1,24 @@ +set BUILD=%SRC%..\build + +set GNUTLS_VERSION=f2d0ade53ff644da55244aed79d05eca78d11a2f +set GNUTLS_URL=https://github.com/ShiftMediaProject/gnutls/archive/%GNUTLS_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%GNUTLS_VERSION%.tar.gz %cd% +) else ( + wget %GNUTLS_URL% +) + +7z -y x %GNUTLS_VERSION%.tar.gz && 7z -y x %GNUTLS_VERSION%.tar -o%BUILD% +del %GNUTLS_VERSION%.tar && del %GNUTLS_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\gnutls-%GNUTLS_VERSION% gnutls + +cd %BUILD%\gnutls + +git apply --reject --whitespace=fix %SRC%\gnutls\gnutls-no-egd.patch +git apply --reject --whitespace=fix %SRC%\gnutls\read-file-limits.h.patch +git apply --reject --whitespace=fix %SRC%\gnutls\gnutls-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/gnutls/gnutls-no-egd.patch b/MSVC/contrib/src/gnutls/gnutls-no-egd.patch new file mode 100644 index 00000000..d4b5f093 --- /dev/null +++ b/MSVC/contrib/src/gnutls/gnutls-no-egd.patch @@ -0,0 +1,107 @@ + {a => b}/lib/nettle/Makefile.am | 2 +- + {a => b}/lib/nettle/Makefile.in | 11 +++++------ + {a => b}/lib/nettle/rnd-common.c | 7 +++++-- + 3 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/lib/nettle/Makefile.am b/lib/nettle/Makefile.am +index e84ed1f..4767663 100644 +--- a/lib/nettle/Makefile.am ++++ b/lib/nettle/Makefile.am +@@ -38,7 +38,7 @@ endif + + noinst_LTLIBRARIES = libcrypto.la + +-libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c egd.c egd.h \ ++libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c \ + gnettle.h rnd-common.h rnd-common.c \ + rnd.c + +diff --git a/lib/nettle/Makefile.in b/lib/nettle/Makefile.in +index 88ae7cf..6ddd536 100644 +--- a/lib/nettle/Makefile.in ++++ b/lib/nettle/Makefile.in +@@ -221,8 +221,8 @@ CONFIG_CLEAN_FILES = + CONFIG_CLEAN_VPATH_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + libcrypto_la_LIBADD = +-am__libcrypto_la_SOURCES_DIST = pk.c mpi.c mac.c cipher.c init.c egd.c \ +- egd.h gnettle.h rnd-common.h rnd-common.c rnd.c rnd-fips.c \ ++am__libcrypto_la_SOURCES_DIST = pk.c mpi.c mac.c cipher.c init.c \ ++ gnettle.h rnd-common.h rnd-common.c rnd.c rnd-fips.c \ + int/drbg-aes-self-test.c int/dsa-fips.h \ + int/dsa-keygen-fips186.c int/dsa-validate.c \ + int/provable-prime.c int/drbg-aes.c int/drbg-aes.h \ +@@ -233,7 +233,7 @@ am__dirstamp = $(am__leading_dot)dirstamp + @ENABLE_FIPS140_TRUE@ int/dsa-keygen-fips186.lo \ + @ENABLE_FIPS140_TRUE@ int/dsa-validate.lo int/provable-prime.lo \ + @ENABLE_FIPS140_TRUE@ int/drbg-aes.lo int/rsa-keygen-fips186.lo +-am_libcrypto_la_OBJECTS = pk.lo mpi.lo mac.lo cipher.lo init.lo egd.lo \ ++am_libcrypto_la_OBJECTS = pk.lo mpi.lo mac.lo cipher.lo init.lo \ + rnd-common.lo rnd.lo $(am__objects_1) + libcrypto_la_OBJECTS = $(am_libcrypto_la_OBJECTS) + AM_V_lt = $(am__v_lt_@AM_V@) +@@ -1279,8 +1279,8 @@ AM_CPPFLAGS = -I$(srcdir)/int -I$(srcdir)/../../gl \ + -I$(builddir)/../includes -I$(builddir)/../../gl \ + -I$(srcdir)/.. $(am__append_1) + noinst_LTLIBRARIES = libcrypto.la +-libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c egd.c egd.h \ +- gnettle.h rnd-common.h rnd-common.c rnd.c $(am__append_2) ++libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c gnettle.h \ ++ rnd-common.h rnd-common.c rnd.c $(am__append_2) + all: all-am + + .SUFFIXES: +@@ -1355,7 +1355,6 @@ distclean-compile: + -rm -f *.tab.c + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher.Plo@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egd.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi.Plo@am__quote@ +diff --git a/lib/nettle/rnd-common.c b/lib/nettle/rnd-common.c +index c69ff3b..80b5f32 100644 +--- a/lib/nettle/rnd-common.c ++++ b/lib/nettle/rnd-common.c +@@ -139,7 +139,7 @@ void _rnd_system_entropy_deinit(void) + #include + #include + #include +-#include "egd.h" ++//#include "egd.h" + + static int _gnutls_urandom_fd = -1; + static mode_t _gnutls_urandom_fd_mode = 0; +@@ -208,6 +208,7 @@ static int _rnd_get_system_entropy_urandom(void* _rnd, size_t size) + return 0; + } + ++#if 0 + static + int _rnd_get_system_entropy_egd(void* _rnd, size_t size) + { +@@ -232,6 +233,7 @@ int _rnd_get_system_entropy_egd(void* _rnd, size_t size) + + return 0; + } ++#endif + + int _rnd_system_entropy_check(void) + { +@@ -268,6 +270,7 @@ int _rnd_system_entropy_init(void) + + return 0; + fallback: ++#if 0 + _gnutls_urandom_fd = _rndegd_connect_socket(); + if (_gnutls_urandom_fd < 0) { + _gnutls_debug_log("Cannot open egd socket!\n"); +@@ -281,7 +284,7 @@ fallback: + } + + _rnd_get_system_entropy = _rnd_get_system_entropy_egd; +- ++#endif + return 0; + } + diff --git a/MSVC/contrib/src/gnutls/gnutls-uwp.patch b/MSVC/contrib/src/gnutls/gnutls-uwp.patch new file mode 100644 index 00000000..60850279 --- /dev/null +++ b/MSVC/contrib/src/gnutls/gnutls-uwp.patch @@ -0,0 +1,445 @@ +--- a/SMP/libgnutls.vcxproj ++++ b/SMP/libgnutls.vcxproj +@@ -743,91 +744,91 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutlsd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutlsd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +@@ -1834,7 +1834,7 @@ del /f /q $(OutDir)\licenses\gnutls.txt + false + Fast + false +- HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_64;_WIN32_WINNT=0x0600;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) ++ RING_UWP;HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0600;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + .\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories) + false + 4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings) +@@ -1850,7 +1850,7 @@ del /f /q $(OutDir)\licenses\gnutls.txt + $(OutDir)\lib\x64\$(TargetName)$(TargetExt) + MachineX64 + Windows +- Crypt32.lib;Ws2_32.lib;libzlib.lib;libiconv.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies) ++ bcrypt.lib;Ws2_32.lib;libzlib.lib;libiconv.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies) + $(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories) + /IGNORE:4006,4221,4042 %(AdditionalOptions) + +--- a/lib/nettle/rnd-common.c ++++ b/lib/nettle/rnd-common.c +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + + /* gnulib wants to claim strerror even if it cannot provide it. WTF */ + #undef strerror +@@ -88,16 +89,25 @@ void _rnd_get_event(struct event_st *e) + #include + + static HCRYPTPROV device_fd = 0; ++static BCRYPT_ALG_HANDLE bdevice_fd = 0; + + static + int _rnd_get_system_entropy_win32(void* rnd, size_t size) + { ++#ifndef RING_UWP + if (!CryptGenRandom(device_fd, (DWORD) size, rnd)) { + _gnutls_debug_log("Error in CryptGenRandom: %d\n", + (int)GetLastError()); + return GNUTLS_E_RANDOM_DEVICE_ERROR; + } +- ++#else ++ NTSTATUS ret = BCryptGenRandom(bdevice_fd, rnd, (ULONG) size, 0); ++ if (!(BCRYPT_SUCCESS(ret))) { ++ _gnutls_debug_log("Error in BCryptGenRandom: %d\n", ++ (int)GetLastError()); ++ return GNUTLS_E_RANDOM_DEVICE_ERROR; ++ } ++#endif + return 0; + } + +@@ -111,7 +121,7 @@ int _rnd_system_entropy_check(void) + int _rnd_system_entropy_init(void) + { + int old; +- ++#ifndef RING_UWP + if (!CryptAcquireContext + (&device_fd, NULL, NULL, PROV_RSA_FULL, + CRYPT_SILENT | CRYPT_VERIFYCONTEXT)) { +@@ -119,13 +129,26 @@ int _rnd_system_entropy_init(void) + ("error in CryptAcquireContext!\n"); + return GNUTLS_E_RANDOM_DEVICE_ERROR; + } +- ++#else ++ NTSTATUS ret = BCryptOpenAlgorithmProvider(&bdevice_fd, ++ BCRYPT_RNG_ALGORITHM, MS_PRIMITIVE_PROVIDER, ++ 0); ++ if (!(BCRYPT_SUCCESS(ret))) { ++ _gnutls_debug_log ++ ("error in BCryptOpenAlgorithmProvider!\n"); ++ return GNUTLS_E_RANDOM_DEVICE_ERROR; ++ } ++#endif + return 0; + } + + void _rnd_system_entropy_deinit(void) + { ++#ifndef RING_UWP + CryptReleaseContext(device_fd, 0); ++#else ++ BCryptCloseAlgorithmProvider(bdevice_fd, 0); ++#endif + } + + #else /* POSIX */ +--- a/lib/opencdk/misc.c ++++ b/lib/opencdk/misc.c +@@ -34,7 +34,6 @@ + #include + #include + +- + u32 _cdk_buftou32(const byte * buf) + { + u32 u; +@@ -149,6 +148,13 @@ int _cdk_check_args(int overwrite, const char *in, const char *out) + } + + #ifdef _WIN32 ++#if (_WIN32_WINNT >= 0x0600) ++FILE *_cdk_tmpfile(void) ++{ ++ return NULL; ++} ++#else ++ + #include + #include + +@@ -183,6 +189,7 @@ FILE *_cdk_tmpfile(void) + _close(fd); + return NULL; + } ++#endif /*_WIN32*/ + #else + FILE *_cdk_tmpfile(void) + { +--- a/lib/system-keys-win.c ++++ b/lib/system-keys-win.c +@@ -20,9 +20,10 @@ + + // Before including any Windows header we need to set _WIN32_WINNT to Vista + // (or higher) so that the NCRYPT stuff can be used. +-#if _WIN32_WINNT < 0x600 ++#define _WIN32_WINNT 0x0A00 ++#if _WIN32_WINNT < 0x0600 + #undef _WIN32_WINNT +-#define _WIN32_WINNT 0x600 ++#define _WIN32_WINNT 0x0600 + #endif + + +@@ -1075,7 +1076,11 @@ int _gnutls_system_key_init(void) + int ret; + + #ifdef DYN_NCRYPT +- ncrypt_lib = LoadLibraryA("ncrypt.dll"); ++#if (_WIN32_WINNT < 0x0A00) ++ ncrypt_lib = LoadLibrary("ncrypt.dll"); ++#else ++ ncrypt_lib = LoadPackagedLibrary("ncrypt.dll", 0); ++#endif + if (ncrypt_lib == NULL) { + return gnutls_assert_val(GNUTLS_E_CRYPTO_INIT_FAILED); + } +--- a/lib/system-keys-win.c ++++ b/lib/system-keys-win.c +@@ -396,7 +396,11 @@ _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, + blob.cbData = id_size; + blob.pbData = id; + +- store = CertOpenSystemStore(0, "MY"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if (store == NULL) { + gnutls_assert(); + ret = GNUTLS_E_FILE_ERROR; +@@ -535,7 +539,11 @@ _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url) + blob.cbData = id_size; + blob.pbData = id; + +- store = CertOpenSystemStore(0, "MY"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if (store == NULL) { + gnutls_assert(); + ret = GNUTLS_E_FILE_ERROR; +@@ -776,7 +784,11 @@ gnutls_system_key_iter_get_info(gnutls_system_key_iter_t *iter, + if (*iter == NULL) + return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); + +- (*iter)->store = CertOpenSystemStore(0, "MY"); ++ (*iter)->store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if ((*iter)->store == NULL) { + gnutls_free(*iter); + *iter = NULL; +@@ -841,7 +853,11 @@ int gnutls_system_key_delete(const char *cert_url, const char *key_url) + blob.cbData = id_size; + blob.pbData = id; + +- store = CertOpenSystemStore(0, "MY"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if (store != NULL) { + do { + cert = CertFindCertificateInStore(store, +--- a/lib/system.c ++++ b/lib/system.c +@@ -446,9 +446,17 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, + gnutls_datum_t data; + + if (i == 0) +- store = CertOpenSystemStore(0, "ROOT"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"ROOT"); + else +- store = CertOpenSystemStore(0, "CA"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"CA"); + + if (store == NULL) + return GNUTLS_E_FILE_ERROR; +--- a/lib/accelerated/x86/x86-common.c ++++ b/lib/accelerated/x86/x86-common.c +@@ -652,6 +652,7 @@ void register_x86_intel_crypto(unsigned capabilities) + + void register_x86_crypto(void) + { ++#ifndef RING_UWP + unsigned capabilities = 0; + char *p; + p = secure_getenv("GNUTLS_CPUID_OVERRIDE"); +@@ -663,5 +664,7 @@ void register_x86_crypto(void) + #ifdef ENABLE_PADLOCK + register_x86_padlock_crypto(capabilities); + #endif ++#endif ++ register_x86_intel_crypto(0); + } + +--- a/lib/gnutls_global.c ++++ b/lib/gnutls_global.c +@@ -240,7 +240,9 @@ int gnutls_global_init(void) + + _gnutls_switch_lib_state(LIB_STATE_INIT); + ++#ifndef RING_UWP + e = secure_getenv("GNUTLS_DEBUG_LEVEL"); ++#endif + if (e != NULL) { + level = atoi(e); + gnutls_global_set_log_level(level); +@@ -473,8 +475,10 @@ const char *e; + if (_gnutls_global_init_skip() != 0) + return; + ++#ifndef RING_UWP + e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT"); +- if (e != NULL) { ++#endif ++ if (e != NULL) { + ret = atoi(e); + if (ret == 1) + return; +@@ -494,7 +498,9 @@ static void _DESTRUCTOR lib_deinit(void) + if (_gnutls_global_init_skip() != 0) + return; + ++#ifndef RING_UWP + e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT"); ++#endif + if (e != NULL) { + int ret = atoi(e); + if (ret == 1) +--- a/lib/gnutls_kx.c ++++ b/lib/gnutls_kx.c +@@ -105,7 +105,9 @@ static void write_nss_key_log(gnutls_session_t session, const gnutls_datum_t *pr + + if (!checked_env) { + checked_env = 1; ++#ifndef RING_UWP + keylogfile = secure_getenv("SSLKEYLOGFILE"); ++#endif + } + + if (keylogfile == NULL) +--- a/lib/system.c ++++ b/lib/system.c +@@ -340,7 +340,11 @@ void gnutls_system_global_deinit(void) + */ + int _gnutls_find_config_path(char *path, size_t max_size) + { +- const char *home_dir = secure_getenv("HOME"); ++#ifndef RING_UWP ++ const char *home_dir = secure_getenv("HOME"); ++#else ++ const char *home_dir = NULL; ++#endif + + if (home_dir != NULL && home_dir[0] != 0) { + snprintf(path, max_size, "%s/" CONFIG_PATH, home_dir); +@@ -349,8 +353,13 @@ int _gnutls_find_config_path(char *path, size_t max_size) + + #ifdef _WIN32 + if (home_dir == NULL || home_dir[0] == '\0') { ++#ifndef RING_UWP + const char *home_drive = getenv("HOMEDRIVE"); + const char *home_path = getenv("HOMEPATH"); ++#else ++ const char *home_drive = NULL; ++ const char *home_path = NULL; ++#endif + + if (home_drive != NULL && home_path != NULL) { + snprintf(path, max_size, "%s%s\\" CONFIG_PATH, home_drive, home_path); +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/gnutls/read-file-limits.h.patch b/MSVC/contrib/src/gnutls/read-file-limits.h.patch new file mode 100644 index 00000000..b13b1a88 --- /dev/null +++ b/MSVC/contrib/src/gnutls/read-file-limits.h.patch @@ -0,0 +1,12 @@ +--- gnutls/gl/read-file.c.orig 2012-03-06 20:59:29.600593329 -0500 ++++ gnutls/gl/read-file.c 2012-03-06 20:59:44.568593328 -0500 +@@ -35,6 +35,9 @@ + /* Get errno. */ + #include + ++/* Get SIZE_MAX */ ++#include ++ + /* Read a STREAM and return a newly allocated string with the content, + and set *LENGTH to the length of the string. The string is + zero-terminated, but the terminating zero byte is not counted in diff --git a/MSVC/contrib/src/iconv/fetch_and_patch.bat b/MSVC/contrib/src/iconv/fetch_and_patch.bat new file mode 100644 index 00000000..b7503aa3 --- /dev/null +++ b/MSVC/contrib/src/iconv/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set ICONV_VERSION=65ab92f7a1699ecc39e37fb81f66e5a42aaa35c4 +set ICONV_URL=https://github.com/ShiftMediaProject/libiconv/archive/%ICONV_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%ICONV_VERSION%.tar.gz %cd% +) else ( + wget %ICONV_URL% +) + +7z -y x %ICONV_VERSION%.tar.gz && 7z -y x %ICONV_VERSION%.tar -o%BUILD% +del %ICONV_VERSION%.tar && del %ICONV_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\libiconv-%ICONV_VERSION% libiconv + +cd %BUILD%\libiconv + +git apply --reject --whitespace=fix %SRC%\iconv\libiconv-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/iconv/libiconv-uwp.patch b/MSVC/contrib/src/iconv/libiconv-uwp.patch new file mode 100644 index 00000000..233cdfc7 --- /dev/null +++ b/MSVC/contrib/src/iconv/libiconv-uwp.patch @@ -0,0 +1,99 @@ +--- a/SMP/libiconv.vcxproj ++++ b/SMP/libiconv.vcxproj +@@ -45,6 +45,7 @@ + + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B} + libiconv ++ 8.1 + + + +@@ -164,65 +165,65 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconvd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconvd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconvd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconvd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconv + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconv +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +-- +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/msgpack/fetch_and_patch.bat b/MSVC/contrib/src/msgpack/fetch_and_patch.bat new file mode 100644 index 00000000..424c36f1 --- /dev/null +++ b/MSVC/contrib/src/msgpack/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set MSGPACK_VERSION=1df97bc37b363a340c5ad06c5cbcc53310aaff80 +set MSGPACK_URL=https://github.com/msgpack/msgpack-c/archive/%MSGPACK_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%MSGPACK_VERSION%.tar.gz %cd% +) else ( + wget %MSGPACK_URL% +) + +7z -y x %MSGPACK_VERSION%.tar.gz && 7z -y x %MSGPACK_VERSION%.tar -o%BUILD% +del %MSGPACK_VERSION%.tar && del %MSGPACK_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\msgpack-c-%MSGPACK_VERSION% msgpack-c + +cd %BUILD%\msgpack-c + +git apply --reject --whitespace=fix %SRC%\msgpack\msgpack-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/msgpack/msgpack-uwp.patch b/MSVC/contrib/src/msgpack/msgpack-uwp.patch new file mode 100644 index 00000000..d79e9ef9 --- /dev/null +++ b/MSVC/contrib/src/msgpack/msgpack-uwp.patch @@ -0,0 +1,221 @@ +--- /dev/null ++++ b/msgpack_vc8.vcxproj +@@ -0,0 +1,214 @@ ++ ++ ++ ++ ++ Debug ++ Win32 ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ Win32 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ MessagePack ++ {122A2EA4-B283-4241-9655-786DE78283B2} ++ MessagePack ++ Win32Proj ++ 8.1 ++ ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ false ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ false ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ <_ProjectFileVersion>14.0.25123.0 ++ ++ ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ msgpackd ++ ++ ++ msgpackd ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ ++ ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ msgpack ++ ++ ++ msgpack ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ ++ ++ ++ Disabled ++ .;include;%(AdditionalIncludeDirectories) ++ WIN32_NATIVE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ++ true ++ StackFrameRuntimeCheck ++ MultiThreadedDebugDLL ++ ++ Level3 ++ EditAndContinue ++ ++ ++ $(OutDir)\lib\x86\$(TargetName)$(TargetExt) ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ Disabled ++ .;include;%(AdditionalIncludeDirectories) ++ WIN32_NATIVE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ++ StackFrameRuntimeCheck ++ MultiThreadedDebugDLL ++ ++ ++ Level3 ++ ProgramDatabase ++ ++ ++ $(OutDir)\lib\x64\$(TargetName)$(TargetExt) ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ .;include;%(AdditionalIncludeDirectories) ++ WIN32_NATIVE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) ++ MultiThreadedDLL ++ ++ Level3 ++ ProgramDatabase ++ $(OutDir)\lib\x86\$(TargetName).pdb ++ ++ ++ $(OutDir)\lib\x86\$(TargetName)$(TargetExt) ++ ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ .;include;%(AdditionalIncludeDirectories) ++ MSGPACK_USE_CPP03;WIN32_NATIVE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) ++ MultiThreadedDLL ++ ++ ++ Level3 ++ ProgramDatabase ++ $(OutDir)\lib\x64\$(TargetName).pdb ++ ++ ++ $(OutDir)\lib\x64\$(TargetName)$(TargetExt) ++ ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file +-- +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/nettle/fetch_and_patch.bat b/MSVC/contrib/src/nettle/fetch_and_patch.bat new file mode 100644 index 00000000..6146062f --- /dev/null +++ b/MSVC/contrib/src/nettle/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set NETTLE_VERSION=4e0b2723b76d4163fa37b2b456d41534154ec97c +set NETTLE_URL=https://github.com/ShiftMediaProject/nettle/archive/%NETTLE_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%NETTLE_VERSION%.tar.gz %cd% +) else ( + wget %NETTLE_URL% +) + +7z -y x %NETTLE_VERSION%.tar.gz && 7z -y x %NETTLE_VERSION%.tar -o%BUILD% +del %NETTLE_VERSION%.tar && del %NETTLE_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\nettle-%NETTLE_VERSION% nettle + +cd %BUILD%\nettle + +git apply --reject --whitespace=fix %SRC%\nettle\nettle-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/nettle/nettle-uwp.patch b/MSVC/contrib/src/nettle/nettle-uwp.patch new file mode 100644 index 00000000..bca04dba --- /dev/null +++ b/MSVC/contrib/src/nettle/nettle-uwp.patch @@ -0,0 +1,228 @@ +--- a/SMP/libhogweed.vcxproj ++++ b/SMP/libhogweed.vcxproj +@@ -242,6 +242,7 @@ + + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C} + libhogweed ++ 8.1 + + + +@@ -405,91 +406,91 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweedd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweedd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +--- a/SMP/libnettle.vcxproj ++++ b/SMP/libnettle.vcxproj +@@ -278,6 +278,7 @@ + + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} + libnettle ++ 8.1 + + + +@@ -397,65 +398,65 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettled + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettled +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettled + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettled +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettle + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettle +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +-- +2.8.1.windows.1 diff --git a/MSVC/contrib/src/zlib/fetch_and_patch.bat b/MSVC/contrib/src/zlib/fetch_and_patch.bat new file mode 100644 index 00000000..59f25a96 --- /dev/null +++ b/MSVC/contrib/src/zlib/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set ZLIB_VERSION=3a062eb61d0c3d4aa30851cd1a6597b977b56597 +set ZLIB_URL=https://github.com/ShiftMediaProject/zlib/archive/%ZLIB_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%ZLIB_VERSION%.tar.gz %cd% +) else ( + wget %ZLIB_URL% +) + +7z -y x %ZLIB_VERSION%.tar.gz && 7z -y x %ZLIB_VERSION%.tar -o%BUILD% +del %ZLIB_VERSION%.tar && del %ZLIB_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\zlib-%ZLIB_VERSION% zlib + +cd %BUILD%\zlib + +git apply --reject --whitespace=fix %SRC%\zlib\zlib-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/zlib/zlib-uwp.patch b/MSVC/contrib/src/zlib/zlib-uwp.patch new file mode 100644 index 00000000..c559cdcb --- /dev/null +++ b/MSVC/contrib/src/zlib/zlib-uwp.patch @@ -0,0 +1,97 @@ +--- a/SMP/libzlib.vcxproj ++++ b/SMP/libzlib.vcxproj +@@ -45,6 +45,7 @@ + + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32} + libzlib ++ 8.1 + + + +@@ -165,63 +166,63 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlibd + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlibd + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlibd + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlibd + false + Clean +-- +2.8.1.windows.1 + diff --git a/MSVC/dhtchat.vcxproj b/MSVC/dhtchat.vcxproj index 96243267..97dc0307 100644 --- a/MSVC/dhtchat.vcxproj +++ b/MSVC/dhtchat.vcxproj @@ -139,7 +139,7 @@ true true true - ..\..\include;..\..\msgpack-c\include;$(ProjectDir) + ..\..\include;$(ProjectDir)contrib\build\include;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir) _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4267;4244;4800;4273; $(IntDir)vc$(PlatformToolsetVersion).pdb @@ -148,7 +148,7 @@ true true crypt32.lib;blake.lib;argon.lib;libgnutls.lib;opendht.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(ProjectDir)..\..\lib\x64 + $(ProjectDir)contrib\build\lib\x64;$(ProjectDir)..\..\lib\x64 /ignore:4049 %(AdditionalOptions) diff --git a/MSVC/dhtnode.vcxproj b/MSVC/dhtnode.vcxproj index 1331486b..c0840773 100644 --- a/MSVC/dhtnode.vcxproj +++ b/MSVC/dhtnode.vcxproj @@ -139,7 +139,7 @@ true true true - ..\..\include;..\..\msgpack-c\include;$(ProjectDir) + ..\..\include;$(ProjectDir)contrib\build\include;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir) WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4267;4244;4800;4273;4101; $(IntDir)vc$(PlatformToolsetVersion).pdb @@ -148,7 +148,7 @@ true true crypt32.lib;blake.lib;argon.lib;libgnutls.lib;opendht.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(ProjectDir)..\..\lib\x64 + $(ProjectDir)contrib\build\lib\x64;$(ProjectDir)..\..\lib\x64 /ignore:4049 %(AdditionalOptions) diff --git a/MSVC/dhtscanner.vcxproj b/MSVC/dhtscanner.vcxproj index 77ed2d6d..d14dd5aa 100644 --- a/MSVC/dhtscanner.vcxproj +++ b/MSVC/dhtscanner.vcxproj @@ -139,7 +139,7 @@ true true true - ..\..\include;..\..\msgpack-c\include;$(ProjectDir) + ..\..\include;$(ProjectDir)contrib\build\include;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir) _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4267;4244;4800;4273;4101; $(IntDir)vc$(PlatformToolsetVersion).pdb @@ -148,7 +148,7 @@ true true crypt32.lib;blake.lib;argon.lib;libgnutls.lib;opendht.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(ProjectDir)..\..\lib\x64 + $(ProjectDir)contrib\build\lib\x64;$(ProjectDir)..\..\lib\x64 /ignore:4049 %(AdditionalOptions) diff --git a/MSVC/opendht.vcxproj b/MSVC/opendht.vcxproj index 85d058e3..ca6a0313 100644 --- a/MSVC/opendht.vcxproj +++ b/MSVC/opendht.vcxproj @@ -26,6 +26,7 @@ + @@ -207,7 +208,7 @@ copy ..\include\opendht.h $(OutDir)\include\ true true true - ..\..\include;..\include;..\include\opendht;..\..\msgpack-c\include; + $(ProjectDir)contrib\build\include;$(ProjectDir)..\include;$(ProjectDir)..\include\opendht;$(ProjectDir)contrib\build\msgpack-c\include _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4800;4101;4267;4244;4503; -D_SCL_SECURE_NO_WARNINGS %(AdditionalOptions) diff --git a/MSVC/opendht.vcxproj.filters b/MSVC/opendht.vcxproj.filters new file mode 100644 index 00000000..53b551a5 --- /dev/null +++ b/MSVC/opendht.vcxproj.filters @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/MSVC/opendht_deps.sln b/MSVC/opendht_deps.sln index 4ef618ba..ddcd5ded 100644 --- a/MSVC/opendht_deps.sln +++ b/MSVC/opendht_deps.sln @@ -13,9 +13,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opendht", "opendht.vcxproj" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dependencies", "dependencies", "{71A1A9EC-1104-4335-A87E-AF8749FD5B34}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgmp", "..\..\gmp\SMP\libgmp.vcxproj", "{02B94302-23D6-43EF-8865-95CDE99D5DC2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgmp", "contrib\build\gmp\SMP\libgmp.vcxproj", "{02B94302-23D6-43EF-8865-95CDE99D5DC2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "..\..\gnutls\SMP\libgnutls.vcxproj", "{6F610EE8-7F59-4191-AB88-F63843267C02}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "contrib\build\gnutls\SMP\libgnutls.vcxproj", "{6F610EE8-7F59-4191-AB88-F63843267C02}" ProjectSection(ProjectDependencies) = postProject {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {02B94302-23D6-43EF-8865-95CDE99D5DC2} {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} = {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} @@ -24,18 +24,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "..\..\gnutls\S {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B} = {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiconv", "..\..\libiconv\SMP\libiconv.vcxproj", "{CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiconv", "contrib\build\libiconv\SMP\libiconv.vcxproj", "{CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhogweed", "..\..\nettle\SMP\libhogweed.vcxproj", "{200F3D3C-8B84-46D8-953A-6C0EBD283B5C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhogweed", "contrib\build\nettle\SMP\libhogweed.vcxproj", "{200F3D3C-8B84-46D8-953A-6C0EBD283B5C}" ProjectSection(ProjectDependencies) = postProject {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {02B94302-23D6-43EF-8865-95CDE99D5DC2} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnettle", "..\..\nettle\SMP\libnettle.vcxproj", "{070FEF2B-0C3F-4F33-9D3C-53C7330BF518}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnettle", "contrib\build\nettle\SMP\libnettle.vcxproj", "{070FEF2B-0C3F-4F33-9D3C-53C7330BF518}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzlib", "..\..\zlib\SMP\libzlib.vcxproj", "{CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzlib", "contrib\build\zlib\SMP\libzlib.vcxproj", "{CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessagePack", "..\..\msgpack-c\msgpack_vc8.vcxproj", "{122A2EA4-B283-4241-9655-786DE78283B2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessagePack", "contrib\build\msgpack-c\msgpack_vc8.vcxproj", "{122A2EA4-B283-4241-9655-786DE78283B2}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "argon", "argon.vcxproj", "{2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}" ProjectSection(ProjectDependencies) = postProject @@ -63,20 +63,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dhtchat", "dhtchat.vcxproj" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - DebugDLL|x64 = DebugDLL|x64 - DebugDLL|x86 = DebugDLL|x86 - DebugDLLStaticDeps|x64 = DebugDLLStaticDeps|x64 - DebugDLLStaticDeps|x86 = DebugDLLStaticDeps|x86 Release|x64 = Release|x64 - Release|x86 = Release|x86 - ReleaseDLL|x64 = ReleaseDLL|x64 - ReleaseDLL|x86 = ReleaseDLL|x86 - ReleaseDLLStaticDeps|x64 = ReleaseDLLStaticDeps|x64 - ReleaseDLLStaticDeps|x86 = ReleaseDLLStaticDeps|x86 - ReleaseLTO|x64 = ReleaseLTO|x64 - ReleaseLTO|x86 = ReleaseLTO|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/MSVC/project_get_dependencies.bat b/MSVC/project_get_dependencies.bat deleted file mode 100644 index 28a7c28b..00000000 --- a/MSVC/project_get_dependencies.bat +++ /dev/null @@ -1,79 +0,0 @@ -@ECHO OFF -SETLOCAL EnableDelayedExpansion - -SET UPSTREAMURL=https://github.com/ShiftMediaProject -SET DEPENDENCIES=( ^ -gmp, ^ -gnutls, ^ -nettle ^ -) - -SET PASSDEPENDENCIES=%~1 - -git status >NUL 2>&1 -IF %ERRORLEVEL% EQU 128 ( - git init -) ELSE ( - IF %ERRORLEVEL% EQU 9009 ( - ECHO git not installed. - EXIT /B 1 - ) -) - -SET CURRDIR=%~dp1 - -cd ..\.. -set MSGPACK_VERSION=1df97bc37b363a340c5ad06c5cbcc53310aaff80 -set MSGPACK_URL="https://github.com/msgpack/msgpack-c.git" -ECHO Cloning msgpack-c... -git clone %MSGPACK_URL% --quiet -cd msgpack-c -git checkout %MSGPACK_VERSION% -git apply --reject --whitespace=fix ..\opendht\MSVC\msgpack-msvc.patch -cd .. - -FOR %%I IN %DEPENDENCIES% DO ( - ECHO !PASSDEPENDENCIES! | FINDSTR /C:"%%I" >NUL 2>&1 || ( - CALL :cloneOrUpdateRepo "%%I" ) -) -cd %CURRDIR% >NUL -GOTO exit - -:cloneOrUpdateRepo -SET REPONAME=%~1 -IF NOT EXIST "%REPONAME%" ( - ECHO %REPONAME%: Existing folder not found. Cloning repository... - SET REPOURL=%UPSTREAMURL%/%REPONAME%.git - git clone !REPOURL! --quiet - cd %REPONAME% - git config --local core.autocrlf false - git rm --cached -r . --quiet - git reset --hard --quiet - cd ..\ -) - -SET PASSDEPENDENCIES=%PASSDEPENDENCIES% %REPONAME% - -IF EXIST "%REPONAME%\SMP\project_get_dependencies.bat" ( - ECHO %REPONAME%: Found additional dependencies... - ECHO. - cd %REPONAME%\SMP - project_get_dependencies.bat "!PASSDEPENDENCIES!" || GOTO exitOnError - cd ..\.. -) -ECHO. -EXIT /B %ERRORLEVEL% - -:exitOnError -cd %CURRDIR% - -:exit -( - ENDLOCAL - SET PASSDEPENDENCIES=%PASSDEPENDENCIES% -) - -ECHO %CMDCMDLINE% | FINDSTR /L %COMSPEC% >NUL 2>&1 -IF %ERRORLEVEL% == 0 IF "%~1"=="" PAUSE - -EXIT /B 0 \ No newline at end of file From b7c5d4a55022ab8556ef259a8288a0e47b0a4e28 Mon Sep 17 00:00:00 2001 From: atraczyk Date: Fri, 17 Feb 2017 18:15:54 -0500 Subject: [PATCH 2/3] clean up solution --- MSVC/.gitignore | 1 - MSVC/contrib/src/fetch_and_patch.bat | 20 + MSVC/contrib/src/gmp/fetch_and_patch.bat | 22 + MSVC/contrib/src/gmp/gmp-uwp.patch | 110 +++++ MSVC/contrib/src/gnutls/fetch_and_patch.bat | 24 + MSVC/contrib/src/gnutls/gnutls-no-egd.patch | 107 +++++ MSVC/contrib/src/gnutls/gnutls-uwp.patch | 445 ++++++++++++++++++ .../src/gnutls/read-file-limits.h.patch | 12 + MSVC/contrib/src/iconv/fetch_and_patch.bat | 22 + MSVC/contrib/src/iconv/libiconv-uwp.patch | 99 ++++ MSVC/contrib/src/msgpack/fetch_and_patch.bat | 22 + MSVC/contrib/src/msgpack/msgpack-uwp.patch | 221 +++++++++ MSVC/contrib/src/nettle/fetch_and_patch.bat | 22 + MSVC/contrib/src/nettle/nettle-uwp.patch | 228 +++++++++ MSVC/contrib/src/zlib/fetch_and_patch.bat | 22 + MSVC/contrib/src/zlib/zlib-uwp.patch | 97 ++++ MSVC/dhtchat.vcxproj | 4 +- MSVC/dhtnode.vcxproj | 4 +- MSVC/dhtscanner.vcxproj | 4 +- MSVC/opendht.vcxproj | 3 +- MSVC/opendht.vcxproj.filters | 3 + MSVC/opendht_deps.sln | 27 +- MSVC/project_get_dependencies.bat | 79 ---- 23 files changed, 1491 insertions(+), 107 deletions(-) create mode 100644 MSVC/contrib/src/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/gmp/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/gmp/gmp-uwp.patch create mode 100644 MSVC/contrib/src/gnutls/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/gnutls/gnutls-no-egd.patch create mode 100644 MSVC/contrib/src/gnutls/gnutls-uwp.patch create mode 100644 MSVC/contrib/src/gnutls/read-file-limits.h.patch create mode 100644 MSVC/contrib/src/iconv/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/iconv/libiconv-uwp.patch create mode 100644 MSVC/contrib/src/msgpack/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/msgpack/msgpack-uwp.patch create mode 100644 MSVC/contrib/src/nettle/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/nettle/nettle-uwp.patch create mode 100644 MSVC/contrib/src/zlib/fetch_and_patch.bat create mode 100644 MSVC/contrib/src/zlib/zlib-uwp.patch create mode 100644 MSVC/opendht.vcxproj.filters delete mode 100644 MSVC/project_get_dependencies.bat diff --git a/MSVC/.gitignore b/MSVC/.gitignore index 5a687e53..ee16880e 100644 --- a/MSVC/.gitignore +++ b/MSVC/.gitignore @@ -15,7 +15,6 @@ Release/ *.VC.VC.opendb *.VC.db *.db -*.filters # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/MSVC/contrib/src/fetch_and_patch.bat b/MSVC/contrib/src/fetch_and_patch.bat new file mode 100644 index 00000000..3aeb1d3f --- /dev/null +++ b/MSVC/contrib/src/fetch_and_patch.bat @@ -0,0 +1,20 @@ +@echo OFF +SETLOCAL EnableDelayedExpansion + +set SRC=%~dp0 + +set USE_CACHE=0 + +set DEPENDENCIES=( ^ +gmp, ^ +gnutls, ^ +iconv, ^ +msgpack, ^ +nettle, ^ +opendht, ^ +zlib ^ +) + +for %%I in %DEPENDENCIES% do ( + call %SRC%\%%I\fetch_and_patch.bat +) \ No newline at end of file diff --git a/MSVC/contrib/src/gmp/fetch_and_patch.bat b/MSVC/contrib/src/gmp/fetch_and_patch.bat new file mode 100644 index 00000000..1fb83c76 --- /dev/null +++ b/MSVC/contrib/src/gmp/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set GMP_VERSION=3c8f5a0ae0c2ac9ff0ea31b27f71b152979b556d +set GMP_URL=https://github.com/ShiftMediaProject/gmp/archive/%GMP_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%GMP_VERSION%.tar.gz %cd% +) else ( + wget %GMP_URL% +) + +7z -y x %GMP_VERSION%.tar.gz && 7z -y x %GMP_VERSION%.tar -o%BUILD% +del %GMP_VERSION%.tar && del %GMP_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\gmp-%GMP_VERSION% gmp + +cd %BUILD%\gmp + +git apply --reject --whitespace=fix %SRC%\gmp\gmp-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/gmp/gmp-uwp.patch b/MSVC/contrib/src/gmp/gmp-uwp.patch new file mode 100644 index 00000000..e32ef9ae --- /dev/null +++ b/MSVC/contrib/src/gmp/gmp-uwp.patch @@ -0,0 +1,110 @@ +--- a/SMP/libgmp.vcxproj ++++ b/SMP/libgmp.vcxproj +@@ -1248,6 +1248,7 @@ + {02B94302-23D6-43EF-8865-95CDE99D5DC2} + libgmp + libgmp ++ 8.1 + + + +@@ -1368,65 +1369,65 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmpd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmpd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmpd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmpd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgmp +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmp + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gmp +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +--- a/SMP/config.h ++++ b/SMP/config.h +@@ -202,7 +202,7 @@ + /* #undef HAVE_NATIVE_mpn_add_n_sub_n */ + #define HAVE_NATIVE_mpn_add_nc 1 + #if defined(__x86_64) || defined(_M_X64) +-#define HAVE_NATIVE_mpn_addaddmul_1msb0 1 ++#define HAVE_NATIVE_mpn_addaddmul_1msb0 0 + #define HAVE_NATIVE_mpn_addlsh1_n 1 + #define HAVE_NATIVE_mpn_addlsh2_n 1 + #define HAVE_NATIVE_mpn_addlsh_n 1 +-- +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/gnutls/fetch_and_patch.bat b/MSVC/contrib/src/gnutls/fetch_and_patch.bat new file mode 100644 index 00000000..5c25b52e --- /dev/null +++ b/MSVC/contrib/src/gnutls/fetch_and_patch.bat @@ -0,0 +1,24 @@ +set BUILD=%SRC%..\build + +set GNUTLS_VERSION=f2d0ade53ff644da55244aed79d05eca78d11a2f +set GNUTLS_URL=https://github.com/ShiftMediaProject/gnutls/archive/%GNUTLS_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%GNUTLS_VERSION%.tar.gz %cd% +) else ( + wget %GNUTLS_URL% +) + +7z -y x %GNUTLS_VERSION%.tar.gz && 7z -y x %GNUTLS_VERSION%.tar -o%BUILD% +del %GNUTLS_VERSION%.tar && del %GNUTLS_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\gnutls-%GNUTLS_VERSION% gnutls + +cd %BUILD%\gnutls + +git apply --reject --whitespace=fix %SRC%\gnutls\gnutls-no-egd.patch +git apply --reject --whitespace=fix %SRC%\gnutls\read-file-limits.h.patch +git apply --reject --whitespace=fix %SRC%\gnutls\gnutls-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/gnutls/gnutls-no-egd.patch b/MSVC/contrib/src/gnutls/gnutls-no-egd.patch new file mode 100644 index 00000000..d4b5f093 --- /dev/null +++ b/MSVC/contrib/src/gnutls/gnutls-no-egd.patch @@ -0,0 +1,107 @@ + {a => b}/lib/nettle/Makefile.am | 2 +- + {a => b}/lib/nettle/Makefile.in | 11 +++++------ + {a => b}/lib/nettle/rnd-common.c | 7 +++++-- + 3 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/lib/nettle/Makefile.am b/lib/nettle/Makefile.am +index e84ed1f..4767663 100644 +--- a/lib/nettle/Makefile.am ++++ b/lib/nettle/Makefile.am +@@ -38,7 +38,7 @@ endif + + noinst_LTLIBRARIES = libcrypto.la + +-libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c egd.c egd.h \ ++libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c \ + gnettle.h rnd-common.h rnd-common.c \ + rnd.c + +diff --git a/lib/nettle/Makefile.in b/lib/nettle/Makefile.in +index 88ae7cf..6ddd536 100644 +--- a/lib/nettle/Makefile.in ++++ b/lib/nettle/Makefile.in +@@ -221,8 +221,8 @@ CONFIG_CLEAN_FILES = + CONFIG_CLEAN_VPATH_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + libcrypto_la_LIBADD = +-am__libcrypto_la_SOURCES_DIST = pk.c mpi.c mac.c cipher.c init.c egd.c \ +- egd.h gnettle.h rnd-common.h rnd-common.c rnd.c rnd-fips.c \ ++am__libcrypto_la_SOURCES_DIST = pk.c mpi.c mac.c cipher.c init.c \ ++ gnettle.h rnd-common.h rnd-common.c rnd.c rnd-fips.c \ + int/drbg-aes-self-test.c int/dsa-fips.h \ + int/dsa-keygen-fips186.c int/dsa-validate.c \ + int/provable-prime.c int/drbg-aes.c int/drbg-aes.h \ +@@ -233,7 +233,7 @@ am__dirstamp = $(am__leading_dot)dirstamp + @ENABLE_FIPS140_TRUE@ int/dsa-keygen-fips186.lo \ + @ENABLE_FIPS140_TRUE@ int/dsa-validate.lo int/provable-prime.lo \ + @ENABLE_FIPS140_TRUE@ int/drbg-aes.lo int/rsa-keygen-fips186.lo +-am_libcrypto_la_OBJECTS = pk.lo mpi.lo mac.lo cipher.lo init.lo egd.lo \ ++am_libcrypto_la_OBJECTS = pk.lo mpi.lo mac.lo cipher.lo init.lo \ + rnd-common.lo rnd.lo $(am__objects_1) + libcrypto_la_OBJECTS = $(am_libcrypto_la_OBJECTS) + AM_V_lt = $(am__v_lt_@AM_V@) +@@ -1279,8 +1279,8 @@ AM_CPPFLAGS = -I$(srcdir)/int -I$(srcdir)/../../gl \ + -I$(builddir)/../includes -I$(builddir)/../../gl \ + -I$(srcdir)/.. $(am__append_1) + noinst_LTLIBRARIES = libcrypto.la +-libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c egd.c egd.h \ +- gnettle.h rnd-common.h rnd-common.c rnd.c $(am__append_2) ++libcrypto_la_SOURCES = pk.c mpi.c mac.c cipher.c init.c gnettle.h \ ++ rnd-common.h rnd-common.c rnd.c $(am__append_2) + all: all-am + + .SUFFIXES: +@@ -1355,7 +1355,6 @@ distclean-compile: + -rm -f *.tab.c + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher.Plo@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egd.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi.Plo@am__quote@ +diff --git a/lib/nettle/rnd-common.c b/lib/nettle/rnd-common.c +index c69ff3b..80b5f32 100644 +--- a/lib/nettle/rnd-common.c ++++ b/lib/nettle/rnd-common.c +@@ -139,7 +139,7 @@ void _rnd_system_entropy_deinit(void) + #include + #include + #include +-#include "egd.h" ++//#include "egd.h" + + static int _gnutls_urandom_fd = -1; + static mode_t _gnutls_urandom_fd_mode = 0; +@@ -208,6 +208,7 @@ static int _rnd_get_system_entropy_urandom(void* _rnd, size_t size) + return 0; + } + ++#if 0 + static + int _rnd_get_system_entropy_egd(void* _rnd, size_t size) + { +@@ -232,6 +233,7 @@ int _rnd_get_system_entropy_egd(void* _rnd, size_t size) + + return 0; + } ++#endif + + int _rnd_system_entropy_check(void) + { +@@ -268,6 +270,7 @@ int _rnd_system_entropy_init(void) + + return 0; + fallback: ++#if 0 + _gnutls_urandom_fd = _rndegd_connect_socket(); + if (_gnutls_urandom_fd < 0) { + _gnutls_debug_log("Cannot open egd socket!\n"); +@@ -281,7 +284,7 @@ fallback: + } + + _rnd_get_system_entropy = _rnd_get_system_entropy_egd; +- ++#endif + return 0; + } + diff --git a/MSVC/contrib/src/gnutls/gnutls-uwp.patch b/MSVC/contrib/src/gnutls/gnutls-uwp.patch new file mode 100644 index 00000000..60850279 --- /dev/null +++ b/MSVC/contrib/src/gnutls/gnutls-uwp.patch @@ -0,0 +1,445 @@ +--- a/SMP/libgnutls.vcxproj ++++ b/SMP/libgnutls.vcxproj +@@ -743,91 +744,91 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutlsd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutlsd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutlsd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libgnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + gnutls +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +@@ -1834,7 +1834,7 @@ del /f /q $(OutDir)\licenses\gnutls.txt + false + Fast + false +- HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86;ASM_X86_64;_WIN32_WINNT=0x0600;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) ++ RING_UWP;HAVE_WIN32_LOCKS;HAVE_CONFIG_H;inline=__inline;ASN1_BUILDING;ASN1_STATIC;LOCALEDIR=".";__func__=__FUNCTION__;ASM_X86_64;_WIN32_WINNT=0x0600;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + .\;.\lib;..\lib;..\lib\accelerated;..\lib\auth;..\lib\ext;..\lib\extras;..\lib\minitasn1;..\lib\nettle;..\lib\nettle\int;..\lib\openpgp;..\lib\opencdk;..\lib\x509;..\lib\includes;..\gl;$(OutDir)\include;..\lib\accelerated\x86;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories) + false + 4996;4244;4018;4146;4267;4028;4101;4020;4047;4024;4005;4311;4312;4334;4116;4090;%(DisableSpecificWarnings) +@@ -1850,7 +1850,7 @@ del /f /q $(OutDir)\licenses\gnutls.txt + $(OutDir)\lib\x64\$(TargetName)$(TargetExt) + MachineX64 + Windows +- Crypt32.lib;Ws2_32.lib;libzlib.lib;libiconv.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies) ++ bcrypt.lib;Ws2_32.lib;libzlib.lib;libiconv.lib;libhogweed.lib;libgmp.lib;libnettle.lib;%(AdditionalDependencies) + $(OutDir)\lib\x64\;$(ProjectDir)\..\..\prebuilt\lib\x64\;%(AdditionalLibraryDirectories) + /IGNORE:4006,4221,4042 %(AdditionalOptions) + +--- a/lib/nettle/rnd-common.c ++++ b/lib/nettle/rnd-common.c +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + + /* gnulib wants to claim strerror even if it cannot provide it. WTF */ + #undef strerror +@@ -88,16 +89,25 @@ void _rnd_get_event(struct event_st *e) + #include + + static HCRYPTPROV device_fd = 0; ++static BCRYPT_ALG_HANDLE bdevice_fd = 0; + + static + int _rnd_get_system_entropy_win32(void* rnd, size_t size) + { ++#ifndef RING_UWP + if (!CryptGenRandom(device_fd, (DWORD) size, rnd)) { + _gnutls_debug_log("Error in CryptGenRandom: %d\n", + (int)GetLastError()); + return GNUTLS_E_RANDOM_DEVICE_ERROR; + } +- ++#else ++ NTSTATUS ret = BCryptGenRandom(bdevice_fd, rnd, (ULONG) size, 0); ++ if (!(BCRYPT_SUCCESS(ret))) { ++ _gnutls_debug_log("Error in BCryptGenRandom: %d\n", ++ (int)GetLastError()); ++ return GNUTLS_E_RANDOM_DEVICE_ERROR; ++ } ++#endif + return 0; + } + +@@ -111,7 +121,7 @@ int _rnd_system_entropy_check(void) + int _rnd_system_entropy_init(void) + { + int old; +- ++#ifndef RING_UWP + if (!CryptAcquireContext + (&device_fd, NULL, NULL, PROV_RSA_FULL, + CRYPT_SILENT | CRYPT_VERIFYCONTEXT)) { +@@ -119,13 +129,26 @@ int _rnd_system_entropy_init(void) + ("error in CryptAcquireContext!\n"); + return GNUTLS_E_RANDOM_DEVICE_ERROR; + } +- ++#else ++ NTSTATUS ret = BCryptOpenAlgorithmProvider(&bdevice_fd, ++ BCRYPT_RNG_ALGORITHM, MS_PRIMITIVE_PROVIDER, ++ 0); ++ if (!(BCRYPT_SUCCESS(ret))) { ++ _gnutls_debug_log ++ ("error in BCryptOpenAlgorithmProvider!\n"); ++ return GNUTLS_E_RANDOM_DEVICE_ERROR; ++ } ++#endif + return 0; + } + + void _rnd_system_entropy_deinit(void) + { ++#ifndef RING_UWP + CryptReleaseContext(device_fd, 0); ++#else ++ BCryptCloseAlgorithmProvider(bdevice_fd, 0); ++#endif + } + + #else /* POSIX */ +--- a/lib/opencdk/misc.c ++++ b/lib/opencdk/misc.c +@@ -34,7 +34,6 @@ + #include + #include + +- + u32 _cdk_buftou32(const byte * buf) + { + u32 u; +@@ -149,6 +148,13 @@ int _cdk_check_args(int overwrite, const char *in, const char *out) + } + + #ifdef _WIN32 ++#if (_WIN32_WINNT >= 0x0600) ++FILE *_cdk_tmpfile(void) ++{ ++ return NULL; ++} ++#else ++ + #include + #include + +@@ -183,6 +189,7 @@ FILE *_cdk_tmpfile(void) + _close(fd); + return NULL; + } ++#endif /*_WIN32*/ + #else + FILE *_cdk_tmpfile(void) + { +--- a/lib/system-keys-win.c ++++ b/lib/system-keys-win.c +@@ -20,9 +20,10 @@ + + // Before including any Windows header we need to set _WIN32_WINNT to Vista + // (or higher) so that the NCRYPT stuff can be used. +-#if _WIN32_WINNT < 0x600 ++#define _WIN32_WINNT 0x0A00 ++#if _WIN32_WINNT < 0x0600 + #undef _WIN32_WINNT +-#define _WIN32_WINNT 0x600 ++#define _WIN32_WINNT 0x0600 + #endif + + +@@ -1075,7 +1076,11 @@ int _gnutls_system_key_init(void) + int ret; + + #ifdef DYN_NCRYPT +- ncrypt_lib = LoadLibraryA("ncrypt.dll"); ++#if (_WIN32_WINNT < 0x0A00) ++ ncrypt_lib = LoadLibrary("ncrypt.dll"); ++#else ++ ncrypt_lib = LoadPackagedLibrary("ncrypt.dll", 0); ++#endif + if (ncrypt_lib == NULL) { + return gnutls_assert_val(GNUTLS_E_CRYPTO_INIT_FAILED); + } +--- a/lib/system-keys-win.c ++++ b/lib/system-keys-win.c +@@ -396,7 +396,11 @@ _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, + blob.cbData = id_size; + blob.pbData = id; + +- store = CertOpenSystemStore(0, "MY"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if (store == NULL) { + gnutls_assert(); + ret = GNUTLS_E_FILE_ERROR; +@@ -535,7 +539,11 @@ _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url) + blob.cbData = id_size; + blob.pbData = id; + +- store = CertOpenSystemStore(0, "MY"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if (store == NULL) { + gnutls_assert(); + ret = GNUTLS_E_FILE_ERROR; +@@ -776,7 +784,11 @@ gnutls_system_key_iter_get_info(gnutls_system_key_iter_t *iter, + if (*iter == NULL) + return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); + +- (*iter)->store = CertOpenSystemStore(0, "MY"); ++ (*iter)->store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if ((*iter)->store == NULL) { + gnutls_free(*iter); + *iter = NULL; +@@ -841,7 +853,11 @@ int gnutls_system_key_delete(const char *cert_url, const char *key_url) + blob.cbData = id_size; + blob.pbData = id; + +- store = CertOpenSystemStore(0, "MY"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"MY"); + if (store != NULL) { + do { + cert = CertFindCertificateInStore(store, +--- a/lib/system.c ++++ b/lib/system.c +@@ -446,9 +446,17 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags, + gnutls_datum_t data; + + if (i == 0) +- store = CertOpenSystemStore(0, "ROOT"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"ROOT"); + else +- store = CertOpenSystemStore(0, "CA"); ++ store = CertOpenStore( CERT_STORE_PROV_SYSTEM_A, ++ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, ++ 0, ++ CERT_SYSTEM_STORE_CURRENT_USER, ++ (const void*)"CA"); + + if (store == NULL) + return GNUTLS_E_FILE_ERROR; +--- a/lib/accelerated/x86/x86-common.c ++++ b/lib/accelerated/x86/x86-common.c +@@ -652,6 +652,7 @@ void register_x86_intel_crypto(unsigned capabilities) + + void register_x86_crypto(void) + { ++#ifndef RING_UWP + unsigned capabilities = 0; + char *p; + p = secure_getenv("GNUTLS_CPUID_OVERRIDE"); +@@ -663,5 +664,7 @@ void register_x86_crypto(void) + #ifdef ENABLE_PADLOCK + register_x86_padlock_crypto(capabilities); + #endif ++#endif ++ register_x86_intel_crypto(0); + } + +--- a/lib/gnutls_global.c ++++ b/lib/gnutls_global.c +@@ -240,7 +240,9 @@ int gnutls_global_init(void) + + _gnutls_switch_lib_state(LIB_STATE_INIT); + ++#ifndef RING_UWP + e = secure_getenv("GNUTLS_DEBUG_LEVEL"); ++#endif + if (e != NULL) { + level = atoi(e); + gnutls_global_set_log_level(level); +@@ -473,8 +475,10 @@ const char *e; + if (_gnutls_global_init_skip() != 0) + return; + ++#ifndef RING_UWP + e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT"); +- if (e != NULL) { ++#endif ++ if (e != NULL) { + ret = atoi(e); + if (ret == 1) + return; +@@ -494,7 +498,9 @@ static void _DESTRUCTOR lib_deinit(void) + if (_gnutls_global_init_skip() != 0) + return; + ++#ifndef RING_UWP + e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT"); ++#endif + if (e != NULL) { + int ret = atoi(e); + if (ret == 1) +--- a/lib/gnutls_kx.c ++++ b/lib/gnutls_kx.c +@@ -105,7 +105,9 @@ static void write_nss_key_log(gnutls_session_t session, const gnutls_datum_t *pr + + if (!checked_env) { + checked_env = 1; ++#ifndef RING_UWP + keylogfile = secure_getenv("SSLKEYLOGFILE"); ++#endif + } + + if (keylogfile == NULL) +--- a/lib/system.c ++++ b/lib/system.c +@@ -340,7 +340,11 @@ void gnutls_system_global_deinit(void) + */ + int _gnutls_find_config_path(char *path, size_t max_size) + { +- const char *home_dir = secure_getenv("HOME"); ++#ifndef RING_UWP ++ const char *home_dir = secure_getenv("HOME"); ++#else ++ const char *home_dir = NULL; ++#endif + + if (home_dir != NULL && home_dir[0] != 0) { + snprintf(path, max_size, "%s/" CONFIG_PATH, home_dir); +@@ -349,8 +353,13 @@ int _gnutls_find_config_path(char *path, size_t max_size) + + #ifdef _WIN32 + if (home_dir == NULL || home_dir[0] == '\0') { ++#ifndef RING_UWP + const char *home_drive = getenv("HOMEDRIVE"); + const char *home_path = getenv("HOMEPATH"); ++#else ++ const char *home_drive = NULL; ++ const char *home_path = NULL; ++#endif + + if (home_drive != NULL && home_path != NULL) { + snprintf(path, max_size, "%s%s\\" CONFIG_PATH, home_drive, home_path); +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/gnutls/read-file-limits.h.patch b/MSVC/contrib/src/gnutls/read-file-limits.h.patch new file mode 100644 index 00000000..b13b1a88 --- /dev/null +++ b/MSVC/contrib/src/gnutls/read-file-limits.h.patch @@ -0,0 +1,12 @@ +--- gnutls/gl/read-file.c.orig 2012-03-06 20:59:29.600593329 -0500 ++++ gnutls/gl/read-file.c 2012-03-06 20:59:44.568593328 -0500 +@@ -35,6 +35,9 @@ + /* Get errno. */ + #include + ++/* Get SIZE_MAX */ ++#include ++ + /* Read a STREAM and return a newly allocated string with the content, + and set *LENGTH to the length of the string. The string is + zero-terminated, but the terminating zero byte is not counted in diff --git a/MSVC/contrib/src/iconv/fetch_and_patch.bat b/MSVC/contrib/src/iconv/fetch_and_patch.bat new file mode 100644 index 00000000..b7503aa3 --- /dev/null +++ b/MSVC/contrib/src/iconv/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set ICONV_VERSION=65ab92f7a1699ecc39e37fb81f66e5a42aaa35c4 +set ICONV_URL=https://github.com/ShiftMediaProject/libiconv/archive/%ICONV_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%ICONV_VERSION%.tar.gz %cd% +) else ( + wget %ICONV_URL% +) + +7z -y x %ICONV_VERSION%.tar.gz && 7z -y x %ICONV_VERSION%.tar -o%BUILD% +del %ICONV_VERSION%.tar && del %ICONV_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\libiconv-%ICONV_VERSION% libiconv + +cd %BUILD%\libiconv + +git apply --reject --whitespace=fix %SRC%\iconv\libiconv-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/iconv/libiconv-uwp.patch b/MSVC/contrib/src/iconv/libiconv-uwp.patch new file mode 100644 index 00000000..233cdfc7 --- /dev/null +++ b/MSVC/contrib/src/iconv/libiconv-uwp.patch @@ -0,0 +1,99 @@ +--- a/SMP/libiconv.vcxproj ++++ b/SMP/libiconv.vcxproj +@@ -45,6 +45,7 @@ + + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B} + libiconv ++ 8.1 + + + +@@ -164,65 +165,65 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconvd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconvd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconvd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconvd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libiconv +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconv + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + iconv +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +-- +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/msgpack/fetch_and_patch.bat b/MSVC/contrib/src/msgpack/fetch_and_patch.bat new file mode 100644 index 00000000..424c36f1 --- /dev/null +++ b/MSVC/contrib/src/msgpack/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set MSGPACK_VERSION=1df97bc37b363a340c5ad06c5cbcc53310aaff80 +set MSGPACK_URL=https://github.com/msgpack/msgpack-c/archive/%MSGPACK_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%MSGPACK_VERSION%.tar.gz %cd% +) else ( + wget %MSGPACK_URL% +) + +7z -y x %MSGPACK_VERSION%.tar.gz && 7z -y x %MSGPACK_VERSION%.tar -o%BUILD% +del %MSGPACK_VERSION%.tar && del %MSGPACK_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\msgpack-c-%MSGPACK_VERSION% msgpack-c + +cd %BUILD%\msgpack-c + +git apply --reject --whitespace=fix %SRC%\msgpack\msgpack-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/msgpack/msgpack-uwp.patch b/MSVC/contrib/src/msgpack/msgpack-uwp.patch new file mode 100644 index 00000000..d79e9ef9 --- /dev/null +++ b/MSVC/contrib/src/msgpack/msgpack-uwp.patch @@ -0,0 +1,221 @@ +--- /dev/null ++++ b/msgpack_vc8.vcxproj +@@ -0,0 +1,214 @@ ++ ++ ++ ++ ++ Debug ++ Win32 ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ Win32 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ MessagePack ++ {122A2EA4-B283-4241-9655-786DE78283B2} ++ MessagePack ++ Win32Proj ++ 8.1 ++ ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ false ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ false ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ ++ ++ StaticLibrary ++ v140 ++ Unicode ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ <_ProjectFileVersion>14.0.25123.0 ++ ++ ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ msgpackd ++ ++ ++ msgpackd ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ ++ ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ msgpack ++ ++ ++ msgpack ++ $(ProjectDir)..\ ++ $(Configuration)\ ++ ++ ++ ++ Disabled ++ .;include;%(AdditionalIncludeDirectories) ++ WIN32_NATIVE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ++ true ++ StackFrameRuntimeCheck ++ MultiThreadedDebugDLL ++ ++ Level3 ++ EditAndContinue ++ ++ ++ $(OutDir)\lib\x86\$(TargetName)$(TargetExt) ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ Disabled ++ .;include;%(AdditionalIncludeDirectories) ++ WIN32_NATIVE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ++ StackFrameRuntimeCheck ++ MultiThreadedDebugDLL ++ ++ ++ Level3 ++ ProgramDatabase ++ ++ ++ $(OutDir)\lib\x64\$(TargetName)$(TargetExt) ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ .;include;%(AdditionalIncludeDirectories) ++ WIN32_NATIVE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) ++ MultiThreadedDLL ++ ++ Level3 ++ ProgramDatabase ++ $(OutDir)\lib\x86\$(TargetName).pdb ++ ++ ++ $(OutDir)\lib\x86\$(TargetName)$(TargetExt) ++ ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ .;include;%(AdditionalIncludeDirectories) ++ MSGPACK_USE_CPP03;WIN32_NATIVE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) ++ MultiThreadedDLL ++ ++ ++ Level3 ++ ProgramDatabase ++ $(OutDir)\lib\x64\$(TargetName).pdb ++ ++ ++ $(OutDir)\lib\x64\$(TargetName)$(TargetExt) ++ ++ ++ ++ mkdir $(OutDir)\include ++ ++mkdir $(OutDir)\include\msgpack ++ ++copy include\*.h $(OutDir)\include\ ++ ++copy include\*.hpp $(OutDir)\include\ ++xcopy /S /Y include\msgpack\*.h $(OutDir)\include\msgpack ++xcopy /S /Y include\msgpack\*.hpp $(OutDir)\include\msgpack ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file +-- +2.8.1.windows.1 + diff --git a/MSVC/contrib/src/nettle/fetch_and_patch.bat b/MSVC/contrib/src/nettle/fetch_and_patch.bat new file mode 100644 index 00000000..6146062f --- /dev/null +++ b/MSVC/contrib/src/nettle/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set NETTLE_VERSION=4e0b2723b76d4163fa37b2b456d41534154ec97c +set NETTLE_URL=https://github.com/ShiftMediaProject/nettle/archive/%NETTLE_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%NETTLE_VERSION%.tar.gz %cd% +) else ( + wget %NETTLE_URL% +) + +7z -y x %NETTLE_VERSION%.tar.gz && 7z -y x %NETTLE_VERSION%.tar -o%BUILD% +del %NETTLE_VERSION%.tar && del %NETTLE_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\nettle-%NETTLE_VERSION% nettle + +cd %BUILD%\nettle + +git apply --reject --whitespace=fix %SRC%\nettle\nettle-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/nettle/nettle-uwp.patch b/MSVC/contrib/src/nettle/nettle-uwp.patch new file mode 100644 index 00000000..bca04dba --- /dev/null +++ b/MSVC/contrib/src/nettle/nettle-uwp.patch @@ -0,0 +1,228 @@ +--- a/SMP/libhogweed.vcxproj ++++ b/SMP/libhogweed.vcxproj +@@ -242,6 +242,7 @@ + + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C} + libhogweed ++ 8.1 + + + +@@ -405,91 +406,91 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweedd + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweedd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweedd +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libhogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + hogweed +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +--- a/SMP/libnettle.vcxproj ++++ b/SMP/libnettle.vcxproj +@@ -278,6 +278,7 @@ + + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} + libnettle ++ 8.1 + + + +@@ -397,65 +398,65 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettled + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettled +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettled + false + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettled +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libnettle +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettle + Clean + + +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + nettle +- $(ProjectDir)..\..\..\msvc\ ++ $(ProjectDir)..\..\ + Clean + + +-- +2.8.1.windows.1 diff --git a/MSVC/contrib/src/zlib/fetch_and_patch.bat b/MSVC/contrib/src/zlib/fetch_and_patch.bat new file mode 100644 index 00000000..59f25a96 --- /dev/null +++ b/MSVC/contrib/src/zlib/fetch_and_patch.bat @@ -0,0 +1,22 @@ +set BUILD=%SRC%..\build + +set ZLIB_VERSION=3a062eb61d0c3d4aa30851cd1a6597b977b56597 +set ZLIB_URL=https://github.com/ShiftMediaProject/zlib/archive/%ZLIB_VERSION%.tar.gz + +mkdir %BUILD% + +if %USE_CACHE%==1 ( + copy %CACHE_DIR%\%ZLIB_VERSION%.tar.gz %cd% +) else ( + wget %ZLIB_URL% +) + +7z -y x %ZLIB_VERSION%.tar.gz && 7z -y x %ZLIB_VERSION%.tar -o%BUILD% +del %ZLIB_VERSION%.tar && del %ZLIB_VERSION%.tar.gz && del %BUILD%\pax_global_header +rename %BUILD%\zlib-%ZLIB_VERSION% zlib + +cd %BUILD%\zlib + +git apply --reject --whitespace=fix %SRC%\zlib\zlib-uwp.patch + +cd %SRC% \ No newline at end of file diff --git a/MSVC/contrib/src/zlib/zlib-uwp.patch b/MSVC/contrib/src/zlib/zlib-uwp.patch new file mode 100644 index 00000000..c559cdcb --- /dev/null +++ b/MSVC/contrib/src/zlib/zlib-uwp.patch @@ -0,0 +1,97 @@ +--- a/SMP/libzlib.vcxproj ++++ b/SMP/libzlib.vcxproj +@@ -45,6 +45,7 @@ + + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32} + libzlib ++ 8.1 + + + +@@ -165,63 +166,63 @@ + + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlibd + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlibd + false + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlibd + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + libzlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlib + Clean + + +- $(ProjectDir)..\..\..\msvc\ +- $(SolutionDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ ++ $(ProjectDir)..\..\ ++ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ + zlibd + false + Clean +-- +2.8.1.windows.1 + diff --git a/MSVC/dhtchat.vcxproj b/MSVC/dhtchat.vcxproj index 96243267..97dc0307 100644 --- a/MSVC/dhtchat.vcxproj +++ b/MSVC/dhtchat.vcxproj @@ -139,7 +139,7 @@ true true true - ..\..\include;..\..\msgpack-c\include;$(ProjectDir) + ..\..\include;$(ProjectDir)contrib\build\include;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir) _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4267;4244;4800;4273; $(IntDir)vc$(PlatformToolsetVersion).pdb @@ -148,7 +148,7 @@ true true crypt32.lib;blake.lib;argon.lib;libgnutls.lib;opendht.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(ProjectDir)..\..\lib\x64 + $(ProjectDir)contrib\build\lib\x64;$(ProjectDir)..\..\lib\x64 /ignore:4049 %(AdditionalOptions) diff --git a/MSVC/dhtnode.vcxproj b/MSVC/dhtnode.vcxproj index 1331486b..c0840773 100644 --- a/MSVC/dhtnode.vcxproj +++ b/MSVC/dhtnode.vcxproj @@ -139,7 +139,7 @@ true true true - ..\..\include;..\..\msgpack-c\include;$(ProjectDir) + ..\..\include;$(ProjectDir)contrib\build\include;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir) WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4267;4244;4800;4273;4101; $(IntDir)vc$(PlatformToolsetVersion).pdb @@ -148,7 +148,7 @@ true true crypt32.lib;blake.lib;argon.lib;libgnutls.lib;opendht.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(ProjectDir)..\..\lib\x64 + $(ProjectDir)contrib\build\lib\x64;$(ProjectDir)..\..\lib\x64 /ignore:4049 %(AdditionalOptions) diff --git a/MSVC/dhtscanner.vcxproj b/MSVC/dhtscanner.vcxproj index 77ed2d6d..d14dd5aa 100644 --- a/MSVC/dhtscanner.vcxproj +++ b/MSVC/dhtscanner.vcxproj @@ -139,7 +139,7 @@ true true true - ..\..\include;..\..\msgpack-c\include;$(ProjectDir) + ..\..\include;$(ProjectDir)contrib\build\include;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir) _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4267;4244;4800;4273;4101; $(IntDir)vc$(PlatformToolsetVersion).pdb @@ -148,7 +148,7 @@ true true crypt32.lib;blake.lib;argon.lib;libgnutls.lib;opendht.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - $(ProjectDir)..\..\lib\x64 + $(ProjectDir)contrib\build\lib\x64;$(ProjectDir)..\..\lib\x64 /ignore:4049 %(AdditionalOptions) diff --git a/MSVC/opendht.vcxproj b/MSVC/opendht.vcxproj index 85d058e3..ca6a0313 100644 --- a/MSVC/opendht.vcxproj +++ b/MSVC/opendht.vcxproj @@ -26,6 +26,7 @@ + @@ -207,7 +208,7 @@ copy ..\include\opendht.h $(OutDir)\include\ true true true - ..\..\include;..\include;..\include\opendht;..\..\msgpack-c\include; + $(ProjectDir)contrib\build\include;$(ProjectDir)..\include;$(ProjectDir)..\include\opendht;$(ProjectDir)contrib\build\msgpack-c\include _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4800;4101;4267;4244;4503; -D_SCL_SECURE_NO_WARNINGS %(AdditionalOptions) diff --git a/MSVC/opendht.vcxproj.filters b/MSVC/opendht.vcxproj.filters new file mode 100644 index 00000000..53b551a5 --- /dev/null +++ b/MSVC/opendht.vcxproj.filters @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/MSVC/opendht_deps.sln b/MSVC/opendht_deps.sln index 4ef618ba..ddcd5ded 100644 --- a/MSVC/opendht_deps.sln +++ b/MSVC/opendht_deps.sln @@ -13,9 +13,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opendht", "opendht.vcxproj" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dependencies", "dependencies", "{71A1A9EC-1104-4335-A87E-AF8749FD5B34}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgmp", "..\..\gmp\SMP\libgmp.vcxproj", "{02B94302-23D6-43EF-8865-95CDE99D5DC2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgmp", "contrib\build\gmp\SMP\libgmp.vcxproj", "{02B94302-23D6-43EF-8865-95CDE99D5DC2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "..\..\gnutls\SMP\libgnutls.vcxproj", "{6F610EE8-7F59-4191-AB88-F63843267C02}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "contrib\build\gnutls\SMP\libgnutls.vcxproj", "{6F610EE8-7F59-4191-AB88-F63843267C02}" ProjectSection(ProjectDependencies) = postProject {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {02B94302-23D6-43EF-8865-95CDE99D5DC2} {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} = {070FEF2B-0C3F-4F33-9D3C-53C7330BF518} @@ -24,18 +24,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgnutls", "..\..\gnutls\S {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B} = {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiconv", "..\..\libiconv\SMP\libiconv.vcxproj", "{CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiconv", "contrib\build\libiconv\SMP\libiconv.vcxproj", "{CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhogweed", "..\..\nettle\SMP\libhogweed.vcxproj", "{200F3D3C-8B84-46D8-953A-6C0EBD283B5C}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhogweed", "contrib\build\nettle\SMP\libhogweed.vcxproj", "{200F3D3C-8B84-46D8-953A-6C0EBD283B5C}" ProjectSection(ProjectDependencies) = postProject {02B94302-23D6-43EF-8865-95CDE99D5DC2} = {02B94302-23D6-43EF-8865-95CDE99D5DC2} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnettle", "..\..\nettle\SMP\libnettle.vcxproj", "{070FEF2B-0C3F-4F33-9D3C-53C7330BF518}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libnettle", "contrib\build\nettle\SMP\libnettle.vcxproj", "{070FEF2B-0C3F-4F33-9D3C-53C7330BF518}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzlib", "..\..\zlib\SMP\libzlib.vcxproj", "{CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzlib", "contrib\build\zlib\SMP\libzlib.vcxproj", "{CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessagePack", "..\..\msgpack-c\msgpack_vc8.vcxproj", "{122A2EA4-B283-4241-9655-786DE78283B2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MessagePack", "contrib\build\msgpack-c\msgpack_vc8.vcxproj", "{122A2EA4-B283-4241-9655-786DE78283B2}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "argon", "argon.vcxproj", "{2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}" ProjectSection(ProjectDependencies) = postProject @@ -63,20 +63,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dhtchat", "dhtchat.vcxproj" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - DebugDLL|x64 = DebugDLL|x64 - DebugDLL|x86 = DebugDLL|x86 - DebugDLLStaticDeps|x64 = DebugDLLStaticDeps|x64 - DebugDLLStaticDeps|x86 = DebugDLLStaticDeps|x86 Release|x64 = Release|x64 - Release|x86 = Release|x86 - ReleaseDLL|x64 = ReleaseDLL|x64 - ReleaseDLL|x86 = ReleaseDLL|x86 - ReleaseDLLStaticDeps|x64 = ReleaseDLLStaticDeps|x64 - ReleaseDLLStaticDeps|x86 = ReleaseDLLStaticDeps|x86 - ReleaseLTO|x64 = ReleaseLTO|x64 - ReleaseLTO|x86 = ReleaseLTO|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/MSVC/project_get_dependencies.bat b/MSVC/project_get_dependencies.bat deleted file mode 100644 index 28a7c28b..00000000 --- a/MSVC/project_get_dependencies.bat +++ /dev/null @@ -1,79 +0,0 @@ -@ECHO OFF -SETLOCAL EnableDelayedExpansion - -SET UPSTREAMURL=https://github.com/ShiftMediaProject -SET DEPENDENCIES=( ^ -gmp, ^ -gnutls, ^ -nettle ^ -) - -SET PASSDEPENDENCIES=%~1 - -git status >NUL 2>&1 -IF %ERRORLEVEL% EQU 128 ( - git init -) ELSE ( - IF %ERRORLEVEL% EQU 9009 ( - ECHO git not installed. - EXIT /B 1 - ) -) - -SET CURRDIR=%~dp1 - -cd ..\.. -set MSGPACK_VERSION=1df97bc37b363a340c5ad06c5cbcc53310aaff80 -set MSGPACK_URL="https://github.com/msgpack/msgpack-c.git" -ECHO Cloning msgpack-c... -git clone %MSGPACK_URL% --quiet -cd msgpack-c -git checkout %MSGPACK_VERSION% -git apply --reject --whitespace=fix ..\opendht\MSVC\msgpack-msvc.patch -cd .. - -FOR %%I IN %DEPENDENCIES% DO ( - ECHO !PASSDEPENDENCIES! | FINDSTR /C:"%%I" >NUL 2>&1 || ( - CALL :cloneOrUpdateRepo "%%I" ) -) -cd %CURRDIR% >NUL -GOTO exit - -:cloneOrUpdateRepo -SET REPONAME=%~1 -IF NOT EXIST "%REPONAME%" ( - ECHO %REPONAME%: Existing folder not found. Cloning repository... - SET REPOURL=%UPSTREAMURL%/%REPONAME%.git - git clone !REPOURL! --quiet - cd %REPONAME% - git config --local core.autocrlf false - git rm --cached -r . --quiet - git reset --hard --quiet - cd ..\ -) - -SET PASSDEPENDENCIES=%PASSDEPENDENCIES% %REPONAME% - -IF EXIST "%REPONAME%\SMP\project_get_dependencies.bat" ( - ECHO %REPONAME%: Found additional dependencies... - ECHO. - cd %REPONAME%\SMP - project_get_dependencies.bat "!PASSDEPENDENCIES!" || GOTO exitOnError - cd ..\.. -) -ECHO. -EXIT /B %ERRORLEVEL% - -:exitOnError -cd %CURRDIR% - -:exit -( - ENDLOCAL - SET PASSDEPENDENCIES=%PASSDEPENDENCIES% -) - -ECHO %CMDCMDLINE% | FINDSTR /L %COMSPEC% >NUL 2>&1 -IF %ERRORLEVEL% == 0 IF "%~1"=="" PAUSE - -EXIT /B 0 \ No newline at end of file From b40713596cb6aa229cd751fed12e51f95660019f Mon Sep 17 00:00:00 2001 From: atraczyk Date: Wed, 29 Mar 2017 18:25:10 -0400 Subject: [PATCH 3/3] ignore MSVC\contrib\build and add argon2 path to project --- MSVC/.gitignore | 3 ++- MSVC/opendht.vcxproj | 2 +- MSVC/opendht.vcxproj.filters | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/MSVC/.gitignore b/MSVC/.gitignore index ee16880e..d69cb772 100644 --- a/MSVC/.gitignore +++ b/MSVC/.gitignore @@ -244,4 +244,5 @@ _Pvt_Extensions # FAKE - F# Make .fake/ -!config.h \ No newline at end of file +!config.h +contrib/build/ \ No newline at end of file diff --git a/MSVC/opendht.vcxproj b/MSVC/opendht.vcxproj index ca6a0313..57a1e62d 100644 --- a/MSVC/opendht.vcxproj +++ b/MSVC/opendht.vcxproj @@ -208,7 +208,7 @@ copy ..\include\opendht.h $(OutDir)\include\ true true true - $(ProjectDir)contrib\build\include;$(ProjectDir)..\include;$(ProjectDir)..\include\opendht;$(ProjectDir)contrib\build\msgpack-c\include + $(ProjectDir)contrib\build\include;$(ProjectDir)..\include;$(ProjectDir)..\include\opendht;$(ProjectDir)contrib\build\msgpack-c\include;$(ProjectDir)..\argon2 _CRT_SECURE_NO_WARNINGS;WIN32_NATIVE;WIN32_LEAN_AND_MEAN;_MBCS;%(PreprocessorDefinitions) 4804;4800;4101;4267;4244;4503; -D_SCL_SECURE_NO_WARNINGS %(AdditionalOptions) diff --git a/MSVC/opendht.vcxproj.filters b/MSVC/opendht.vcxproj.filters index 53b551a5..a2e97035 100644 --- a/MSVC/opendht.vcxproj.filters +++ b/MSVC/opendht.vcxproj.filters @@ -1,3 +1,43 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file