QDMI v1.3.0-dev
Quantum Device Management Interface
Loading...
Searching...
No Matches
export.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 - 2025 Munich Quantum Software Stack Project
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://github.com/Munich-Quantum-Software-Stack/QDMI/blob/develop/LICENSE.md
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
27#define QDMI_EXPORT
28#define QDMI_NO_EXPORT
29#else
30#ifndef QDMI_EXPORT
31#ifdef QDMI_device_EXPORTS
32/* We are building this library */
33#ifdef _WIN32
34#define QDMI_EXPORT __declspec(dllexport)
35#else
36#define QDMI_EXPORT __attribute__((visibility("default")))
37#endif
38#else
39/* We are using this library */
40#ifdef _WIN32
41#define QDMI_EXPORT __declspec(dllimport)
42#else
43#define QDMI_EXPORT __attribute__((visibility("default")))
44#endif
45#endif
46#endif
47
48#ifndef QDMI_NO_EXPORT
49#ifdef _WIN32
50#define QDMI_NO_EXPORT
51#else
52#define QDMI_NO_EXPORT __attribute__((visibility("hidden")))
53#endif
54#endif
55#endif
56
57#ifndef QDMI_DEPRECATED
58#ifdef _WIN32
59#define QDMI_DEPRECATED __declspec(deprecated)
60#else
61#define QDMI_DEPRECATED __attribute__((__deprecated__))
62#endif
63#endif
64
65#ifndef QDMI_DEPRECATED_EXPORT
66#define QDMI_DEPRECATED_EXPORT QDMI_EXPORT QDMI_DEPRECATED
67#endif
68
69#ifndef QDMI_DEPRECATED_NO_EXPORT
70#define QDMI_DEPRECATED_NO_EXPORT QDMI_NO_EXPORT QDMI_DEPRECATED
71#endif