File: export.h

package info (click to toggle)
pytorch-text 0.14.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 11,560 kB
  • sloc: python: 14,197; cpp: 2,404; sh: 214; makefile: 20
file content (35 lines) | stat: -rw-r--r-- 1,165 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

// Define the visibility of symbols.
// The original logic and background can be found here.
// https://github.com/pytorch/pytorch/blob/bcc02769bef1d7b89bec724223284958b7c5b564/c10/macros/Export.h#L49-L55
//
// In the context of torchtext, the logic is simpler at the moment.
//
// The torchtext custom operations are implemented in
// `torchtext/lib/libtorchtext.[so|pyd]`. Some symbols are referred from
// `torchtext._torchtext`.
//
// In Windows, default visibility of dynamically library are hidden, while in
// Linux/macOS, they are visible.
//
// At the moment we do not expect torchtext libraries to be built/linked
// statically. We assume they are always shared.

#ifdef _WIN32
#define TORCHTEXT_EXPORT __declspec(dllexport)
#define TORCHTEXT_IMPORT __declspec(dllimport)
#else // _WIN32
#if defined(__GNUC__)
#define TORCHTEXT_EXPORT __attribute__((__visibility__("default")))
#else // defined(__GNUC__)
#define TORCHTEXT_EXPORT
#endif // defined(__GNUC__)
#define TORCHTEXT_IMPORT TORCHTEXT_EXPORT
#endif // _WIN32

#ifdef TORCHTEXT_BUILD_MAIN_LIB
#define TORCHTEXT_API TORCHTEXT_EXPORT
#else
#define TORCHTEXT_API TORCHTEXT_IMPORT
#endif