diff --git a/CMakeLists.txt b/CMakeLists.txt index cc1f551c..30f4badc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,11 +7,16 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") endif() if(WIN32) - # Enable Math Constants - # https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants?view=vs-2019 add_compile_definitions( + # For math constants + # https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants?view=vs-2019 _USE_MATH_DEFINES + # Minimize Windows namespace collision + NOMINMAX + WIN32_LEAN_AND_MEAN ) + # set the same behavior for windows as it is on linux + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/include/control_toolbox/pid.hpp b/include/control_toolbox/pid.hpp index c64a873a..19ada722 100644 --- a/include/control_toolbox/pid.hpp +++ b/include/control_toolbox/pid.hpp @@ -40,8 +40,6 @@ #include "realtime_tools/realtime_buffer.hpp" -#include "control_toolbox/visibility_control.hpp" - namespace control_toolbox { /***************************************************/ @@ -102,7 +100,7 @@ namespace control_toolbox */ /***************************************************/ -class CONTROL_TOOLBOX_PUBLIC Pid +class Pid { public: /*! diff --git a/include/control_toolbox/pid_ros.hpp b/include/control_toolbox/pid_ros.hpp index dbacc9e9..66fb9f74 100644 --- a/include/control_toolbox/pid_ros.hpp +++ b/include/control_toolbox/pid_ros.hpp @@ -46,12 +46,11 @@ #include "realtime_tools/realtime_publisher.hpp" #include "control_toolbox/pid.hpp" -#include "control_toolbox/visibility_control.hpp" namespace control_toolbox { -class CONTROL_TOOLBOX_PUBLIC PidROS +class PidROS { public: /*! diff --git a/include/control_toolbox/visibility_control.hpp b/include/control_toolbox/visibility_control.hpp deleted file mode 100644 index bef3fee8..00000000 --- a/include/control_toolbox/visibility_control.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2009, Willow Garage, Inc. -// All rights reserved. -// -// Software License Agreement (BSD License 2.0) -// -// 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 the Willow Garage 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. - -#ifndef CONTROL_TOOLBOX__VISIBILITY_CONTROL_HPP_ -#define CONTROL_TOOLBOX__VISIBILITY_CONTROL_HPP_ - -// This logic was borrowed (then namespaced) from the examples on the gcc wiki: -// https://gcc.gnu.org/wiki/Visibility - -#if defined _WIN32 || defined __CYGWIN__ -#ifdef __GNUC__ -#define CONTROL_TOOLBOX_EXPORT __attribute__((dllexport)) -#define CONTROL_TOOLBOX_IMPORT __attribute__((dllimport)) -#else -#define CONTROL_TOOLBOX_EXPORT __declspec(dllexport) -#define CONTROL_TOOLBOX_IMPORT __declspec(dllimport) -#endif -#ifdef CONTROL_TOOLBOX_BUILDING_LIBRARY -#define CONTROL_TOOLBOX_PUBLIC CONTROL_TOOLBOX_EXPORT -#else -#define CONTROL_TOOLBOX_PUBLIC CONTROL_TOOLBOX_IMPORT -#endif -#define CONTROL_TOOLBOX_PUBLIC_TYPE CONTROL_TOOLBOX_PUBLIC -#define CONTROL_TOOLBOX_LOCAL -#else -#define CONTROL_TOOLBOX_EXPORT __attribute__((visibility("default"))) -#define CONTROL_TOOLBOX_IMPORT -#if __GNUC__ >= 4 -#define CONTROL_TOOLBOX_PUBLIC __attribute__((visibility("default"))) -#define CONTROL_TOOLBOX_LOCAL __attribute__((visibility("hidden"))) -#else -#define CONTROL_TOOLBOX_PUBLIC -#define CONTROL_TOOLBOX_LOCAL -#endif -#define CONTROL_TOOLBOX_PUBLIC_TYPE -#endif - -#endif // CONTROL_TOOLBOX__VISIBILITY_CONTROL_HPP_