61 lines
1.8 KiB
C
61 lines
1.8 KiB
C
/* ----------------------------------------------------------------------------
|
|
|
|
* @library_name@ Copyright 2010, Georgia Tech Research Corporation,
|
|
* Atlanta, Georgia 30332-0415
|
|
* All Rights Reserved
|
|
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
|
|
* See LICENSE for the license information
|
|
|
|
* -------------------------------------------------------------------------- */
|
|
|
|
/**
|
|
* @file dllexport.h
|
|
* @brief Symbols for exporting classes and methods from DLLs
|
|
* @author Richard Roberts
|
|
* @date Mar 9, 2013
|
|
*/
|
|
|
|
// Macros for exporting DLL symbols on Windows
|
|
// Usage example:
|
|
// In header file:
|
|
// class GTSAM_EXPORT MyClass { ... };
|
|
//
|
|
// Results in the following declarations:
|
|
// When included while compiling the GTSAM library itself:
|
|
// class __declspec(dllexport) MyClass { ... };
|
|
// When included while compiling other code against GTSAM:
|
|
// class __declspec(dllimport) MyClass { ... };
|
|
|
|
#pragma once
|
|
|
|
// Whether GTSAM is compiled as static or DLL in windows.
|
|
// This will be used to decide whether include __declspec(dllimport) or not in headers
|
|
#cmakedefine BUILD_SHARED_LIBS
|
|
|
|
#ifdef _WIN32
|
|
# ifndef BUILD_SHARED_LIBS
|
|
# define @library_name@_EXPORT
|
|
# define @library_name@_EXTERN_EXPORT extern
|
|
# else
|
|
# ifdef @library_name@_EXPORTS
|
|
# define @library_name@_EXPORT __declspec(dllexport)
|
|
# define @library_name@_EXTERN_EXPORT __declspec(dllexport) extern
|
|
# else
|
|
# define @library_name@_EXPORT __declspec(dllimport)
|
|
# define @library_name@_EXTERN_EXPORT __declspec(dllimport)
|
|
# endif
|
|
# endif
|
|
#else
|
|
#ifdef __APPLE__
|
|
# define @library_name@_EXPORT __attribute__((visibility("default")))
|
|
# define @library_name@_EXTERN_EXPORT extern
|
|
#else
|
|
# define @library_name@_EXPORT
|
|
# define @library_name@_EXTERN_EXPORT extern
|
|
#endif
|
|
#endif
|
|
|
|
#undef BUILD_SHARED_LIBS
|
|
|