This document is for a version of USD that is under development. See this page for the current release.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
export.h
Go to the documentation of this file.
1//
2// Copyright 2016 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_BASE_ARCH_EXPORT_H
8#define PXR_BASE_ARCH_EXPORT_H
9
139
140#include "pxr/base/arch/defines.h"
141
142#if defined(ARCH_OS_WINDOWS)
143# if defined(ARCH_COMPILER_GCC) && ARCH_COMPILER_GCC_MAJOR >= 4 || defined(ARCH_COMPILER_CLANG)
144# define ARCH_EXPORT __attribute__((dllexport))
145# define ARCH_IMPORT __attribute__((dllimport))
146# define ARCH_HIDDEN
147# define ARCH_EXPORT_TYPE
148# else
149# define ARCH_EXPORT __declspec(dllexport)
150# define ARCH_IMPORT __declspec(dllimport)
151# define ARCH_HIDDEN
152# define ARCH_EXPORT_TYPE
153# endif
154#elif defined(ARCH_COMPILER_GCC) && ARCH_COMPILER_GCC_MAJOR >= 4 || defined(ARCH_COMPILER_CLANG)
155# define ARCH_EXPORT __attribute__((visibility("default")))
156# define ARCH_IMPORT
157# define ARCH_HIDDEN __attribute__((visibility("hidden")))
158# if defined(ARCH_COMPILER_CLANG)
159# define ARCH_EXPORT_TYPE __attribute__((type_visibility("default")))
160# else
161# define ARCH_EXPORT_TYPE __attribute__((visibility("default")))
162# endif
163#else
164# define ARCH_EXPORT
165# define ARCH_IMPORT
166# define ARCH_HIDDEN
167# define ARCH_EXPORT_TYPE
168#endif
169#define ARCH_EXPORT_TEMPLATE(type, ...)
170#define ARCH_IMPORT_TEMPLATE(type, ...) extern template type ARCH_IMPORT __VA_ARGS__
171
172#endif // PXR_BASE_ARCH_EXPORT_H