QDMI v1.4.0-dev
Quantum Device Management Interface
Loading...
Searching...
No Matches
export.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 - 2026 QDMI Maintainers
3 * All rights reserved.
4 *
5 * Licensed under the Apache License v2.0 with LLVM Exceptions (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://llvm.org/LICENSE.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 *
17 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
18 */
19
23
24#pragma once
25
26#ifdef QDMI_STATIC_DEFINE
29#define QDMI_EXPORT
31#define QDMI_DRIVER_EXPORT
34#define QDMI_NO_EXPORT
35#else
36#ifndef QDMI_EXPORT
37#ifdef QDMI_device_EXPORTS
38/* We are building this library */
39#ifdef _WIN32
41#define QDMI_EXPORT __declspec(dllexport)
42#else
44#define QDMI_EXPORT __attribute__((visibility("default")))
45#endif
46#else
47/* We are using this library */
48#ifdef _WIN32
50#define QDMI_EXPORT __declspec(dllimport)
51#else
53#define QDMI_EXPORT __attribute__((visibility("default")))
54#endif
55#endif
56#endif
57
58#ifndef QDMI_DRIVER_EXPORT
59#ifdef QDMI_driver_EXPORTS
60#ifdef _WIN32
62#define QDMI_DRIVER_EXPORT __declspec(dllexport)
63#else
65#define QDMI_DRIVER_EXPORT __attribute__((visibility("default")))
66#endif
67#else
68#ifdef _WIN32
70#define QDMI_DRIVER_EXPORT __declspec(dllimport)
71#else
73#define QDMI_DRIVER_EXPORT __attribute__((visibility("default")))
74#endif
75#endif
76#endif
77
78#ifndef QDMI_NO_EXPORT
79#ifdef _WIN32
81#define QDMI_NO_EXPORT
82#else
84#define QDMI_NO_EXPORT __attribute__((visibility("hidden")))
85#endif
86#endif
87#endif
88
89#ifndef QDMI_DEPRECATED
90#ifdef _WIN32
92#define QDMI_DEPRECATED __declspec(deprecated)
93#else
95#define QDMI_DEPRECATED __attribute__((__deprecated__))
96#endif
97#endif
98
99#ifndef QDMI_DEPRECATED_EXPORT
101#define QDMI_DEPRECATED_EXPORT QDMI_EXPORT QDMI_DEPRECATED
102#endif
103
104#ifndef QDMI_DEPRECATED_NO_EXPORT
106#define QDMI_DEPRECATED_NO_EXPORT QDMI_NO_EXPORT QDMI_DEPRECATED
107#endif