Don't include termios.h unless ASIO_HAS_SERIAL_PORT is defined.
diff --git a/asio/include/asio/detail/reactive_serial_port_service.hpp b/asio/include/asio/detail/reactive_serial_port_service.hpp index 2fcf8c7..5c3a9c3 100644 --- a/asio/include/asio/detail/reactive_serial_port_service.hpp +++ b/asio/include/asio/detail/reactive_serial_port_service.hpp
@@ -23,11 +23,10 @@ #include <string> #include "asio/detail/pop_options.hpp" -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) +#include "asio/serial_port_base.hpp" -#include "asio/detail/push_options.hpp" -#include <termios.h> -#include "asio/detail/pop_options.hpp" +#if defined(ASIO_HAS_SERIAL_PORT) \ + && !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) #include "asio/error.hpp" #include "asio/io_service.hpp" @@ -261,7 +260,8 @@ } // namespace detail } // namespace asio -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) +#endif // defined(ASIO_HAS_SERIAL_PORT) + // && !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) #include "asio/detail/pop_options.hpp"
diff --git a/asio/include/asio/serial_port_base.hpp b/asio/include/asio/serial_port_base.hpp index 2f3d702..1cbd185 100644 --- a/asio/include/asio/serial_port_base.hpp +++ b/asio/include/asio/serial_port_base.hpp
@@ -22,11 +22,24 @@ #include <stdexcept> #include <boost/config.hpp> #include <boost/detail/workaround.hpp> -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# include <termios.h> -#endif #include "asio/detail/pop_options.hpp" +#if !defined(ASIO_DISABLE_SERIAL_PORT) +# if defined(ASIO_HAS_IOCP) \ + || !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) +# define ASIO_HAS_SERIAL_PORT 1 +# endif // defined(ASIO_HAS_IOCP) +#endif // !defined(ASIO_DISABLE_STREAM_HANDLE) + +#if defined(ASIO_HAS_SERIAL_PORT) \ + || defined(GENERATING_DOCUMENTATION) + +#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) +# include "asio/detail/push_options.hpp" +# include <termios.h> +# include "asio/detail/pop_options.hpp" +#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) + #include "asio/error_code.hpp" #include "asio/detail/socket_types.hpp" @@ -152,6 +165,9 @@ #undef ASIO_OPTION_STORAGE +#endif // defined(ASIO_HAS_SERIAL_PORT) + // || defined(GENERATING_DOCUMENTATION) + #include "asio/detail/pop_options.hpp" #endif // ASIO_SERIAL_PORT_BASE_HPP
diff --git a/asio/include/asio/serial_port_service.hpp b/asio/include/asio/serial_port_service.hpp index e77a53e..2008205 100644 --- a/asio/include/asio/serial_port_service.hpp +++ b/asio/include/asio/serial_port_service.hpp
@@ -25,17 +25,11 @@ #include "asio/error.hpp" #include "asio/io_service.hpp" +#include "asio/serial_port_base.hpp" #include "asio/detail/service_base.hpp" #include "asio/detail/reactive_serial_port_service.hpp" #include "asio/detail/win_iocp_serial_port_service.hpp" -#if !defined(ASIO_DISABLE_SERIAL_PORT) -# if defined(ASIO_HAS_IOCP) \ - || !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# define ASIO_HAS_SERIAL_PORT 1 -# endif // defined(ASIO_HAS_IOCP) -#endif // !defined(ASIO_DISABLE_STREAM_HANDLE) - #if defined(ASIO_HAS_SERIAL_PORT) \ || defined(GENERATING_DOCUMENTATION)