From 55d1bf8f2539c642fa4631ff857f5bcfea6c9d87 Mon Sep 17 00:00:00 2001 From: CristiFati Date: Thu, 14 Apr 2022 18:20:59 +0300 Subject: [PATCH 1/4] Remove custom stdint --- include/serial/serial.h | 2 +- include/serial/v8stdint.h | 57 --------------------------------------- 2 files changed, 1 insertion(+), 58 deletions(-) mode change 100644 => 100755 include/serial/serial.h delete mode 100644 include/serial/v8stdint.h diff --git a/include/serial/serial.h b/include/serial/serial.h old mode 100644 new mode 100755 index a165785..afa4ce1 --- a/include/serial/serial.h +++ b/include/serial/serial.h @@ -43,7 +43,7 @@ #include #include #include -#include +#include #define THROW(exceptionClass, message) throw exceptionClass(__FILE__, \ __LINE__, (message) ) diff --git a/include/serial/v8stdint.h b/include/serial/v8stdint.h deleted file mode 100644 index f3be96b..0000000 --- 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_ From e2b713e8d681cbff2faac8d3403edfc958c8848a Mon Sep 17 00:00:00 2001 From: CristiFati Date: Thu, 14 Apr 2022 22:46:46 +0300 Subject: [PATCH 2/4] Win .dll build support --- include/serial/libserial_exports.h | 17 +++++++++++++++++ include/serial/serial.h | 16 +++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) create mode 100755 include/serial/libserial_exports.h diff --git a/include/serial/libserial_exports.h b/include/serial/libserial_exports.h new file mode 100755 index 0000000..994c35b --- /dev/null +++ b/include/serial/libserial_exports.h @@ -0,0 +1,17 @@ +#pragma once + + +#if defined(_WIN32) +# if defined(LIBSERIAL_STATIC) +# 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 afa4ce1..9e22530 100755 --- a/include/serial/serial.h +++ b/include/serial/serial.h @@ -45,6 +45,8 @@ #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 @@ private: }; -class SerialException : public std::exception +class LIBSERIAL_EXPORT_API SerialException : public std::exception { // Disable copy constructors SerialException& operator=(const SerialException&); @@ -687,7 +689,7 @@ public: } }; -class IOException : public std::exception +class LIBSERIAL_EXPORT_API IOException : public std::exception { // Disable copy constructors IOException& operator=(const IOException&); @@ -726,7 +728,7 @@ public: } }; -class PortNotOpenedException : public std::exception +class LIBSERIAL_EXPORT_API PortNotOpenedException : public std::exception { // Disable copy constructors const PortNotOpenedException& operator=(PortNotOpenedException); @@ -747,7 +749,7 @@ public: /*! * 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 From bb5c5806ff76bf17fbe0744716e6676ab9a3fe0a Mon Sep 17 00:00:00 2001 From: CristiFati Date: Thu, 14 Apr 2022 22:52:30 +0300 Subject: [PATCH 3/4] Clear exec permission for source files --- include/serial/libserial_exports.h | 0 include/serial/serial.h | 0 src/impl/unix.cc | 0 src/serial.cc | 0 4 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 include/serial/libserial_exports.h mode change 100755 => 100644 include/serial/serial.h mode change 100755 => 100644 src/impl/unix.cc mode change 100755 => 100644 src/serial.cc diff --git a/include/serial/libserial_exports.h b/include/serial/libserial_exports.h old mode 100755 new mode 100644 diff --git a/include/serial/serial.h b/include/serial/serial.h old mode 100755 new mode 100644 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 From 024f80634f40073a41be43e956b5ebaca17f6167 Mon Sep 17 00:00:00 2001 From: CristiFati Date: Thu, 14 Apr 2022 23:31:26 +0300 Subject: [PATCH 4/4] Win: make static lib build default --- include/serial/libserial_exports.h | 33 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/include/serial/libserial_exports.h b/include/serial/libserial_exports.h index 994c35b..d8f3678 100644 --- a/include/serial/libserial_exports.h +++ b/include/serial/libserial_exports.h @@ -1,17 +1,16 @@ -#pragma once - - -#if defined(_WIN32) -# if defined(LIBSERIAL_STATIC) -# 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 - +#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 +