Commit 564f02c9 authored by Jisi Liu's avatar Jisi Liu

Make win32_io only for MSVC

This excludes cygwin and mingw from using the self implemented
functions.
parent 7afa796b
......@@ -108,7 +108,7 @@ namespace compiler {
#endif
namespace {
#if defined(_WIN32) && !defined(__CYGWIN__)
#if defined(_MSC_VER)
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::access;
......
......@@ -69,7 +69,7 @@ namespace google {
namespace protobuf {
namespace compiler {
#if defined(_WIN32)
#if defined(_MSC_VER)
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::access;
......
......@@ -59,6 +59,9 @@
#ifdef _WIN32
#include <ctype.h>
#endif
#ifdef _MSC_VER
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::access;
......
......@@ -50,7 +50,7 @@
#include <google/protobuf/stubs/io_win32.h>
#include <google/protobuf/stubs/strutil.h>
#if defined(_WIN32)
#if defined(_MSC_VER)
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::open;
......
......@@ -49,7 +49,7 @@
#include <google/protobuf/descriptor.h>
#include <google/protobuf/io/zero_copy_stream_impl.h>
#if defined(_WIN32)
#if defined(_MSC_VER)
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::setmode;
......
......@@ -56,6 +56,9 @@ namespace io {
// Win32 lseek is broken: If invoked on a non-seekable file descriptor, its
// return value is undefined. We re-define it to always produce an error.
#define lseek(fd, offset, origin) ((off_t)-1)
#endif
#ifdef _MSC_VER
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::access;
......
......@@ -83,6 +83,9 @@ namespace {
#ifdef _WIN32
#define pipe(fds) _pipe(fds, 4096, O_BINARY)
#endif
#ifdef _MSC_VER
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::access;
......
......@@ -63,7 +63,7 @@
namespace google {
namespace protobuf {
#if defined(_WIN32)
#if defined(_MSC_VER)
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::close;
......
......@@ -39,15 +39,13 @@
//
// This file is only used on Windows, it's empty on other platforms.
#if defined(_WIN32)
#if defined(_MSC_VER)
// Comment this out to fall back to using the ANSI versions (open, mkdir, ...)
// instead of the Unicode ones (_wopen, _wmkdir, ...). Doing so can be useful to
// debug failing tests if that's caused by the long path support.
// Long path support is disabled in MinGW
#ifndef __MINGW32__
#define SUPPORT_LONGPATHS
#endif // !__MINGW32__
#include <ctype.h>
#include <direct.h>
......@@ -361,5 +359,5 @@ wstring testonly_path_to_winpath(const string& path) {
} // namespace protobuf
} // namespace google
#endif // defined(_WIN32)
#endif // defined(_MSC_VER)
......@@ -45,7 +45,7 @@
#ifndef GOOGLE_PROTOBUF_STUBS_IO_WIN32_H__
#define GOOGLE_PROTOBUF_STUBS_IO_WIN32_H__
#if defined(_WIN32)
#if defined(_MSC_VER)
#include <string>
#include <google/protobuf/stubs/port.h>
......@@ -91,7 +91,7 @@ LIBPROTOBUF_EXPORT std::wstring testonly_path_to_winpath(
#define STDOUT_FILENO 1
#endif
#endif // defined(_WIN32)
#endif // defined(_MSC_VER)
#endif // GOOGLE_PROTOBUF_STUBS_IO_WIN32_H__
......
......@@ -55,6 +55,9 @@ namespace protobuf {
#define lstat stat
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
#endif
#ifdef _MSC_VER
using google::protobuf::internal::win32::access;
using google::protobuf::internal::win32::chdir;
using google::protobuf::internal::win32::fopen;
......
......@@ -52,7 +52,7 @@
namespace google {
namespace protobuf {
#ifdef _WIN32
#ifdef _MSC_VER
// DO NOT include <io.h>, instead create functions in io_win32.{h,cc} and import
// them like we do below.
using google::protobuf::internal::win32::close;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment