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
 | |
| 
 |