include
rospack
macros.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2008, Willow Garage, Inc.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
* * Redistributions of source code must retain the above copyright notice,
7
* this list of conditions and the following disclaimer.
8
* * Redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution.
11
* * Neither the names of Stanford University or Willow Garage, Inc. nor the names of its
12
* contributors may be used to endorse or promote products derived from
13
* this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
* POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
#ifndef ROSPACK_MACROS_H_
29
#define ROSPACK_MACROS_H_
30
31
/*
32
* Windows macros for dll exports
33
*
34
* This replicates what ros has in roscpp_core/cpp_common/macros.h
35
* so rospack can be standalone.
36
*
37
* See also http://gcc.gnu.org/wiki/Visibility
38
*/
39
40
#if defined(_MSC_VER)
41
#define ROS_HELPER_IMPORT __declspec(dllimport)
42
#define ROS_HELPER_EXPORT __declspec(dllexport)
43
#define ROS_HELPER_LOCAL
44
#elif __GNUC__ >= 4
45
#define ROS_HELPER_IMPORT __attribute__ ((visibility("default")))
46
#define ROS_HELPER_EXPORT __attribute__ ((visibility("default")))
47
#define ROS_HELPER_LOCAL __attribute__ ((visibility("hidden")))
48
#else
49
#define ROS_HELPER_IMPORT
50
#define ROS_HELPER_EXPORT
51
#define ROS_HELPER_LOCAL
52
#endif
53
54
// Ignore warnings about import/exports when deriving from std classes.
55
#ifdef _MSC_VER
56
#pragma warning(disable:4251)
57
#pragma warning(disable:4275)
58
#pragma warning(disable:4514) // unreferenced inline function has been removed
59
#pragma warning(disable:4668) // warnings about used, but not defined macros, replacing with 0
60
#pragma warning(disable:4710) // function not inlined
61
#pragma warning(disable:4738) // storing floats, memory splitting, possible loss in performance
62
#pragma warning(disable:4820) // structs and padding
63
#endif
64
65
#ifdef ROS_BUILD_STATIC_LIBS // ros is being built around shared libraries
66
#define ROSPACK_DECL
67
#else // ros is being built around shared libraries
68
#ifdef rospack_EXPORTS // we are building a shared lib/dll
69
#define ROSPACK_DECL ROS_HELPER_EXPORT
70
#else // we are using shared lib/dll
71
#define ROSPACK_DECL ROS_HELPER_IMPORT
72
#endif
73
#endif
74
75
#endif
/* ROSPACK_MACROS_H_ */
rospack
Author(s): Brian Gerkey, Morgan Quigley, Dirk Thomas
autogenerated on Mon Feb 28 2022 23:32:59