From: Antonio Ospite <ao2@ao2.it>
Date: Mon, 26 Feb 2018 14:50:53 +0000 (+0100)
Subject: src/tools.c: fix compilation on Windows
X-Git-Tag: v0.1.7~21
X-Git-Url: https://git.ao2.it/libam7xxx.git/commitdiff_plain/166a6f789ccde8f6c96da43d4c3390d054a03115

src/tools.c: fix compilation on Windows

On Windows nanosleep() is not available and compiling fails with the
following error:

  CMakeFiles/am7xxx.dir/objects.a(tools.c.obj):tools.c:(.text+0x4a): undefined reference to `nanosleep'
  collect2: error: ld returned 1 exit status
  make[2]: *** [src/CMakeFiles/am7xxx.dir/build.make:153: lib/libam7xxx.dll] Error 1
  make[1]: *** [CMakeFiles/Makefile2:189: src/CMakeFiles/am7xxx.dir/all] Error 2
  make: *** [Makefile:130: all] Error 2

Using the native Windows function Sleep() fixes the error.
---

diff --git a/src/tools.c b/src/tools.c
index be63ac6..b9c85e1 100644
--- a/src/tools.c
+++ b/src/tools.c
@@ -1,6 +1,6 @@
 /* am7xxx - communication with AM7xxx based USB Pico Projectors and DPFs
  *
- * Copyright (C) 2014  Antonio Ospite <ao2@ao2.it>
+ * Copyright (C) 2014-2018  Antonio Ospite <ao2@ao2.it>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,8 +16,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#ifdef _WIN32
+#include <windows.h>
+#else
 #include <errno.h>
 #include <time.h>
+#endif
 
 #include "tools.h"
 
@@ -30,6 +34,9 @@
  */
 int msleep(unsigned long msecs)
 {
+#ifdef _WIN32
+	Sleep(msecs);
+#else
 	struct timespec delay;
 	int ret;
 
@@ -43,6 +50,7 @@ int msleep(unsigned long msecs)
 	}
 	if (ret == -1)
 		return ret;
+#endif
 
 	return 0;
 }