diff --git a/tf2/include/tf2/LinearMath/QuadWord.hpp b/tf2/include/tf2/LinearMath/QuadWord.hpp index 04153d4c0..d4a3fd81c 100644 --- a/tf2/include/tf2/LinearMath/QuadWord.hpp +++ b/tf2/include/tf2/LinearMath/QuadWord.hpp @@ -18,7 +18,7 @@ subject to the following restrictions: #include "Scalar.hpp" #include "MinMax.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" #if defined (__CELLOS_LV2) && defined (__SPU__) diff --git a/tf2/include/tf2/LinearMath/Quaternion.hpp b/tf2/include/tf2/LinearMath/Quaternion.hpp index 12aaa469d..c4c505b6e 100644 --- a/tf2/include/tf2/LinearMath/Quaternion.hpp +++ b/tf2/include/tf2/LinearMath/Quaternion.hpp @@ -20,7 +20,7 @@ subject to the following restrictions: #include "Vector3.hpp" #include "QuadWord.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/LinearMath/Transform.hpp b/tf2/include/tf2/LinearMath/Transform.hpp index 03f2aff9e..4532bd5a7 100644 --- a/tf2/include/tf2/LinearMath/Transform.hpp +++ b/tf2/include/tf2/LinearMath/Transform.hpp @@ -19,7 +19,7 @@ subject to the following restrictions: #include "Matrix3x3.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 diff --git a/tf2/include/tf2/LinearMath/Vector3.hpp b/tf2/include/tf2/LinearMath/Vector3.hpp index 6e0e82950..10590a276 100644 --- a/tf2/include/tf2/LinearMath/Vector3.hpp +++ b/tf2/include/tf2/LinearMath/Vector3.hpp @@ -20,7 +20,7 @@ subject to the following restrictions: #include "Scalar.hpp" #include "MinMax.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/buffer_core.hpp b/tf2/include/tf2/buffer_core.hpp index 0664ba345..04c6f644e 100644 --- a/tf2/include/tf2/buffer_core.hpp +++ b/tf2/include/tf2/buffer_core.hpp @@ -51,7 +51,7 @@ #include "tf2/buffer_core_interface.hpp" #include "tf2/exceptions.hpp" #include "tf2/transform_storage.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/buffer_core_interface.hpp b/tf2/include/tf2/buffer_core_interface.hpp index 73beb5b68..d9c718a8e 100644 --- a/tf2/include/tf2/buffer_core_interface.hpp +++ b/tf2/include/tf2/buffer_core_interface.hpp @@ -34,7 +34,7 @@ #include "geometry_msgs/msg/transform_stamped.hpp" #include "tf2/time.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/convert.hpp b/tf2/include/tf2/convert.hpp index 89857a2de..b56ac500f 100644 --- a/tf2/include/tf2/convert.hpp +++ b/tf2/include/tf2/convert.hpp @@ -40,7 +40,7 @@ #include "tf2/exceptions.hpp" #include "tf2/impl/convert.hpp" #include "tf2/transform_datatypes.hpp" -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/exceptions.hpp b/tf2/include/tf2/exceptions.hpp index 9155da6d6..5b334b500 100644 --- a/tf2/include/tf2/exceptions.hpp +++ b/tf2/include/tf2/exceptions.hpp @@ -35,7 +35,7 @@ #include #include -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/time.hpp b/tf2/include/tf2/time.hpp index 5d5bfb1ca..c01aab84c 100644 --- a/tf2/include/tf2/time.hpp +++ b/tf2/include/tf2/time.hpp @@ -33,7 +33,7 @@ #include #include -#include "tf2/visibility_control.hpp" +#include "tf2/visibility_control.h" namespace tf2 { diff --git a/tf2/include/tf2/time_cache.hpp b/tf2/include/tf2/time_cache.hpp index dd17d0fc2..6ae277cc0 100644 --- a/tf2/include/tf2/time_cache.hpp +++ b/tf2/include/tf2/time_cache.hpp @@ -30,6 +30,8 @@ #ifndef TF2__TIME_CACHE_HPP_ #define TF2__TIME_CACHE_HPP_ +#include "tf2/visibility_control.h" + #include #include #include @@ -37,7 +39,6 @@ #include #include -#include "tf2/visibility_control.hpp" #include "tf2/transform_storage.hpp" #include "tf2/exceptions.hpp" diff --git a/tf2/include/tf2/transform_storage.hpp b/tf2/include/tf2/transform_storage.hpp index 6e73f1d44..5d04f513b 100644 --- a/tf2/include/tf2/transform_storage.hpp +++ b/tf2/include/tf2/transform_storage.hpp @@ -30,10 +30,11 @@ #ifndef TF2__TRANSFORM_STORAGE_HPP_ #define TF2__TRANSFORM_STORAGE_HPP_ +#include "tf2/visibility_control.h" + #include "tf2/LinearMath/Vector3.hpp" #include "tf2/LinearMath/Quaternion.hpp" #include "tf2/time.hpp" -#include "tf2/visibility_control.hpp" namespace tf2 { diff --git a/tf2/include/tf2/utils.hpp b/tf2/include/tf2/utils.hpp index b4a1f7f46..ca560d1bd 100644 --- a/tf2/include/tf2/utils.hpp +++ b/tf2/include/tf2/utils.hpp @@ -18,7 +18,7 @@ #include #include #include -#include +#include namespace tf2 { diff --git a/tf2/include/tf2/visibility_control.h b/tf2/include/tf2/visibility_control.h index 10492e513..cb4611891 100644 --- a/tf2/include/tf2/visibility_control.h +++ b/tf2/include/tf2/visibility_control.h @@ -29,8 +29,35 @@ #ifndef TF2__VISIBILITY_CONTROL_H_ #define TF2__VISIBILITY_CONTROL_H_ -#warning This header is obsolete, please include tf2/visibility_control.hpp instead +// This logic was borrowed (then namespaced) from the examples on the gcc wiki: +// https://gcc.gnu.org/wiki/Visibility -#include +#if defined _WIN32 || defined __CYGWIN__ + #ifdef __GNUC__ + #define TF2_EXPORT __attribute__ ((dllexport)) + #define TF2_IMPORT __attribute__ ((dllimport)) + #else + #define TF2_EXPORT __declspec(dllexport) + #define TF2_IMPORT __declspec(dllimport) + #endif + #ifdef TF2_BUILDING_DLL + #define TF2_PUBLIC TF2_EXPORT + #else + #define TF2_PUBLIC TF2_IMPORT + #endif + #define TF2_PUBLIC_TYPE TF2_PUBLIC + #define TF2_LOCAL +#else + #define TF2_EXPORT __attribute__ ((visibility("default"))) + #define TF2_IMPORT + #if __GNUC__ >= 4 + #define TF2_PUBLIC __attribute__ ((visibility("default"))) + #define TF2_LOCAL __attribute__ ((visibility("hidden"))) + #else + #define TF2_PUBLIC + #define TF2_LOCAL + #endif + #define TF2_PUBLIC_TYPE +#endif #endif // TF2__VISIBILITY_CONTROL_H_ diff --git a/tf2/include/tf2/visibility_control.hpp b/tf2/include/tf2/visibility_control.hpp deleted file mode 100644 index c011ec959..000000000 --- a/tf2/include/tf2/visibility_control.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2017, Open Source Robotics Foundation, Inc. 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 the Open Source Robotics Foundation 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 HOLDER 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 TF2__VISIBILITY_CONTROL_HPP_ -#define TF2__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 TF2_EXPORT __attribute__ ((dllexport)) - #define TF2_IMPORT __attribute__ ((dllimport)) - #else - #define TF2_EXPORT __declspec(dllexport) - #define TF2_IMPORT __declspec(dllimport) - #endif - #ifdef TF2_BUILDING_DLL - #define TF2_PUBLIC TF2_EXPORT - #else - #define TF2_PUBLIC TF2_IMPORT - #endif - #define TF2_PUBLIC_TYPE TF2_PUBLIC - #define TF2_LOCAL -#else - #define TF2_EXPORT __attribute__ ((visibility("default"))) - #define TF2_IMPORT - #if __GNUC__ >= 4 - #define TF2_PUBLIC __attribute__ ((visibility("default"))) - #define TF2_LOCAL __attribute__ ((visibility("hidden"))) - #else - #define TF2_PUBLIC - #define TF2_LOCAL - #endif - #define TF2_PUBLIC_TYPE -#endif - -#endif // TF2__VISIBILITY_CONTROL_HPP_