aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/singlejar/diag.h
diff options
context:
space:
mode:
authorGravatar Laszlo Csomor <laszlocsomor@google.com>2018-02-14 01:37:48 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-14 01:39:19 -0800
commit9bdb4d83e41170b573b602a8c2d3571a838fd153 (patch)
tree42d6972fed6a7b51a3367e91895aecbefb3a99ba /src/tools/singlejar/diag.h
parentacfec5f2c069aa314c932910bedaeb8dbf61e8df (diff)
windows,singlejar: compile "token_stream"
We can now compile //src/tools/singlejar:token_stream on Windows. See https://github.com/bazelbuild/bazel/issues/2241 Change-Id: I98f86e608e5ebaf685e4de26b2dabe75fcca78d2 PiperOrigin-RevId: 185655986
Diffstat (limited to 'src/tools/singlejar/diag.h')
-rw-r--r--src/tools/singlejar/diag.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/singlejar/diag.h b/src/tools/singlejar/diag.h
index 5dd4a7fb10..775ab05344 100644
--- a/src/tools/singlejar/diag.h
+++ b/src/tools/singlejar/diag.h
@@ -20,12 +20,32 @@
* for portability.
*/
#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__)
+
#include <err.h>
#define diag_err(...) err(__VA_ARGS__)
#define diag_errx(...) errx(__VA_ARGS__)
#define diag_warn(...) warn(__VA_ARGS__)
#define diag_warnx(...) warnx(__VA_ARGS__)
+
+#elif defined(COMPILER_MSVC)
+
+#include <stdio.h>
+#include <string.h>
+#include <windows.h>
+#define _diag_msg(prefix, msg, ...) \
+ { fprintf(stderr, prefix " [" __FILE__ ":%d]" msg, __LINE__, __VA_ARGS__); }
+#define _diag_msgx(eval, prefix, msg, ...) \
+ { \
+ _diag_msg(prefix, msg, __VA_ARGS__); \
+ ::ExitProcess(eval); \
+ }
+#define diag_err(eval, fmt, ...) _diag_msgx(eval, "ERROR", fmt, __VA_ARGS__)
+#define diag_errx(eval, ...) _diag_msgx(eval, "ERROR", "", __VA_ARGS__)
+#define diag_warn(...) _diag_msg("WARNING", __VA_ARGS__)
+#define diag_warnx(...) _diag_msg("WARNING")
+
#else
#error Unknown platform
#endif
+
#endif // BAZEL_SRC_TOOLS_SINGLEJAR_DIAG_H_