From 03109a4bb04a6993107c9045db1639d7dec33990 Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Mon, 12 Feb 2018 12:28:01 +0100
Subject: [PATCH] fix for windows

---
 3d_party/libcurl/install_VS2017.cmd           | 21 +++++++++++++++++++
 common/cpp/include/common/error.h             |  1 +
 .../cpp/src/system_io/system_io_windows.cpp   |  5 ++---
 3 files changed, 24 insertions(+), 3 deletions(-)
 create mode 100644 3d_party/libcurl/install_VS2017.cmd

diff --git a/3d_party/libcurl/install_VS2017.cmd b/3d_party/libcurl/install_VS2017.cmd
new file mode 100644
index 000000000..cff0e0dad
--- /dev/null
+++ b/3d_party/libcurl/install_VS2017.cmd
@@ -0,0 +1,21 @@
+:: download and untar libcurl sources to dir
+:: https://curl.haxx.se/download/curl-7.58.0.tar.gz
+
+:: set directory with libcurl sources
+SET dir=c:\tmp\curl-7.58.0
+:: set directory where libcurl should be installed
+SET install_dir=c:\Curl
+
+set mypath=%cd%
+
+call "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
+
+cd /d %dir%\winbuild
+
+nmake.exe /f Makefile.vc mode=static VC=14 MACHINE=X86 RTLIBCFG=static
+
+xcopy /isvy %dir%\builds\libcurl-vc14-X86-release-static-ipv6-sspi-winssl\include %install_dir%\include
+xcopy /isvy %dir%\builds\libcurl-vc14-X86-release-static-ipv6-sspi-winssl\lib %install_dir%\lib
+rename %install_dir%\lib\libcurl_a.lib libcurl.lib
+
+
diff --git a/common/cpp/include/common/error.h b/common/cpp/include/common/error.h
index 0973b90f6..962fe89ce 100644
--- a/common/cpp/include/common/error.h
+++ b/common/cpp/include/common/error.h
@@ -2,6 +2,7 @@
 #define HIDRA2_ERROR_H
 
 #include <string>
+#include <memory>
 
 namespace hidra2 {
 
diff --git a/common/cpp/src/system_io/system_io_windows.cpp b/common/cpp/src/system_io/system_io_windows.cpp
index 171ab2838..d4816ef18 100644
--- a/common/cpp/src/system_io/system_io_windows.cpp
+++ b/common/cpp/src/system_io/system_io_windows.cpp
@@ -16,8 +16,7 @@ Error IOErrorFromGetLastError() {
     const char* message;
     switch (GetLastError()) {
     case ERROR_SUCCESS :
-        message = IOErrors::kNoError;
-        break;
+        return nullptr;
     case ERROR_PATH_NOT_FOUND:
     case ERROR_FILE_NOT_FOUND:
         message = IOErrors::kFileNotFound;
@@ -84,7 +83,7 @@ bool IsDirectory(const WIN32_FIND_DATA f) {
 }
 
 void ProcessFileEntity(const WIN32_FIND_DATA f, const std::string& path,
-                       FileInfos* files, Errors* err) {
+                       FileInfos* files, Error* err) {
 
     *err = nullptr;
     if (f.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-- 
GitLab