macros.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2008, Willow Garage, Inc.
00003  *
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions are met:
00006  *   * Redistributions of source code must retain the above copyright notice,
00007  *     this list of conditions and the following disclaimer.
00008  *   * Redistributions in binary form must reproduce the above copyright
00009  *     notice, this list of conditions and the following disclaimer in the
00010  *     documentation and/or other materials provided with the distribution.
00011  *   * Neither the names of Stanford University or Willow Garage, Inc. nor the names of its
00012  *     contributors may be used to endorse or promote products derived from
00013  *     this software without specific prior written permission.
00014  *
00015  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00016  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00017  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00018  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00019  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00020  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00021  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00022  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00023  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00024  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00025  * POSSIBILITY OF SUCH DAMAGE.
00026  */
00027 
00028 #ifndef ROSPACK_MACROS_H_
00029 #define ROSPACK_MACROS_H_
00030 
00031 /*
00032  * Windows macros for dll exports
00033  *
00034  * This replicates what ros has in roscpp_core/cpp_common/macros.h
00035  * so rospack can be standalone.
00036  *
00037  * See also http://gcc.gnu.org/wiki/Visibility
00038  */
00039 
00040 #if defined(_MSC_VER)
00041     #define ROS_HELPER_IMPORT __declspec(dllimport)
00042     #define ROS_HELPER_EXPORT __declspec(dllexport)
00043     #define ROS_HELPER_LOCAL
00044 #elif __GNUC__ >= 4
00045     #define ROS_HELPER_IMPORT __attribute__ ((visibility("default")))
00046     #define ROS_HELPER_EXPORT __attribute__ ((visibility("default")))
00047     #define ROS_HELPER_LOCAL  __attribute__ ((visibility("hidden")))
00048 #else
00049     #define ROS_HELPER_IMPORT
00050     #define ROS_HELPER_EXPORT
00051     #define ROS_HELPER_LOCAL
00052 #endif
00053 
00054 // Ignore warnings about import/exports when deriving from std classes.
00055 #ifdef _MSC_VER
00056   #pragma warning(disable:4251)
00057   #pragma warning(disable:4275)
00058   #pragma warning(disable:4514) // unreferenced inline function has been removed
00059   #pragma warning(disable:4668) // warnigns about used, but not defined macros, replacing with 0
00060   #pragma warning(disable:4710) // function not inlined
00061   #pragma warning(disable:4738) // storing floats, memory splitting, possible loss in performance
00062   #pragma warning(disable:4820) // structs and padding
00063 #endif
00064 
00065 #ifdef ROS_BUILD_STATIC_LIBS // ros is being built around shared libraries
00066   #define ROSPACK_DECL
00067 #else // ros is being built around shared libraries
00068   #ifdef rospack_EXPORTS // we are building a shared lib/dll
00069     #define ROSPACK_DECL ROS_HELPER_EXPORT
00070   #else // we are using shared lib/dll
00071     #define ROSPACK_DECL ROS_HELPER_IMPORT
00072   #endif
00073 #endif
00074 
00075 #endif /* ROSPACK_MACROS_H_ */


rospack
Author(s): Brian Gerkey, Morgan Quigley, Dirk Thomas
autogenerated on Fri Aug 28 2015 12:41:42