diff --git a/include/serial/libserial_exports.h b/include/serial/libserial_exports.h new file mode 100644 index 00000000..d8f36785 --- /dev/null +++ b/include/serial/libserial_exports.h @@ -0,0 +1,16 @@ +#pragma once + +#if defined(_WIN32) +# if !defined(LIBSERIAL_DYNAMIC) +# define LIBSERIAL_EXPORT_API +# else +# if defined(LIBSERIAL_EXPORTS) +# define LIBSERIAL_EXPORT_API __declspec(dllexport) +# else +# define LIBSERIAL_EXPORT_API __declspec(dllimport) +# endif +# endif +#else +# define LIBSERIAL_EXPORT_API +#endif + diff --git a/include/serial/serial.h b/include/serial/serial.h index a1657852..9e225306 100644 --- a/include/serial/serial.h +++ b/include/serial/serial.h @@ -43,7 +43,9 @@ #include #include #include -#include +#include + +#include "libserial_exports.h" #define THROW(exceptionClass, message) throw exceptionClass(__FILE__, \ __LINE__, (message) ) @@ -95,7 +97,7 @@ typedef enum { * * In order to disable the interbyte timeout, set it to Timeout::max(). */ -struct Timeout { +struct LIBSERIAL_EXPORT_API Timeout { #ifdef max # undef max #endif @@ -144,7 +146,7 @@ struct Timeout { /*! * Class that provides a portable serial port interface. */ -class Serial { +class LIBSERIAL_EXPORT_API Serial { public: /*! * Creates a Serial object and opens the port if a port is specified, @@ -669,7 +671,7 @@ class Serial { }; -class SerialException : public std::exception +class LIBSERIAL_EXPORT_API SerialException : public std::exception { // Disable copy constructors SerialException& operator=(const SerialException&); @@ -687,7 +689,7 @@ class SerialException : public std::exception } }; -class IOException : public std::exception +class LIBSERIAL_EXPORT_API IOException : public std::exception { // Disable copy constructors IOException& operator=(const IOException&); @@ -726,7 +728,7 @@ class IOException : public std::exception } }; -class PortNotOpenedException : public std::exception +class LIBSERIAL_EXPORT_API PortNotOpenedException : public std::exception { // Disable copy constructors const PortNotOpenedException& operator=(PortNotOpenedException); @@ -747,7 +749,7 @@ class PortNotOpenedException : public std::exception /*! * Structure that describes a serial device. */ -struct PortInfo { +struct LIBSERIAL_EXPORT_API PortInfo { /*! Address of the serial port (this can be passed to the constructor of Serial). */ std::string port; @@ -767,7 +769,7 @@ struct PortInfo { * * \return vector of serial::PortInfo. */ -std::vector +LIBSERIAL_EXPORT_API std::vector list_ports(); } // namespace serial diff --git a/include/serial/v8stdint.h b/include/serial/v8stdint.h deleted file mode 100644 index f3be96b1..00000000 --- a/include/serial/v8stdint.h +++ /dev/null @@ -1,57 +0,0 @@ -// This header is from the v8 google project: -// http://code.google.com/p/v8/source/browse/trunk/include/v8stdint.h - -// Copyright 2012 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Load definitions of standard types. - -#ifndef V8STDINT_H_ -#define V8STDINT_H_ - -#include -#include - -#if defined(_WIN32) && !defined(__MINGW32__) - -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; // NOLINT -typedef unsigned short uint16_t; // NOLINT -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -// intptr_t and friends are defined in crtdefs.h through stdio.h. - -#else - -#include - -#endif - -#endif // V8STDINT_H_ diff --git a/src/impl/unix.cc b/src/impl/unix.cc old mode 100755 new mode 100644 diff --git a/src/serial.cc b/src/serial.cc old mode 100755 new mode 100644