Legion Runtime
Loading...
Searching...
No Matches
legion.h
Go to the documentation of this file.
1/* Copyright 2026 Stanford University, NVIDIA Corporation
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16// decide whether we want C and/or C++ bindings (default matches host language)
17//
18// each set of bindings has its own include-once ifdef armor, allowing the
19// second set of bindings to be loaded even if the first already has been
20#if !defined(LEGION_ENABLE_C_BINDINGS) && !defined(LEGION_DISABLE_C_BINDINGS)
21 #ifndef __cplusplus
22 #define LEGION_ENABLE_C_BINDINGS
23 #endif
24#endif
25#if !defined(LEGION_ENABLE_CXX_BINDINGS) && !defined(LEGION_DISABLE_CXX_BINDINGS)
26 #ifdef __cplusplus
27 #define LEGION_ENABLE_CXX_BINDINGS
28 #endif
29#endif
30
31#ifdef LEGION_ENABLE_C_BINDINGS
32#include "legion/bindings/c_bindings.h"
33#endif
34
35#ifdef LEGION_ENABLE_CXX_BINDINGS
36#ifndef __LEGION_H__
37#define __LEGION_H__
38
52#if __cplusplus < 201703L
53#error "Legion requires C++17 as the minimum standard version"
54#endif
55
56#include "legion/api/config.h"
57#include "legion/api/accessors.h"
58#include "legion/api/argument_map.h"
59#include "legion/api/buffers.h"
60#include "legion/api/constraints.h"
61#include "legion/api/data.h"
62#include "legion/api/exception.h"
63#include "legion/api/functors.h"
64#include "legion/api/future.h"
65#include "legion/api/future_map.h"
66#include "legion/api/geometry.h"
67#include "legion/api/interop.h"
68#include "legion/api/launchers.h"
69#include "legion/api/mapping.h"
70#include "legion/api/output_region.h"
71#include "legion/api/physical_region.h"
72#include "legion/api/predicate.h"
73#include "legion/api/redop.h"
74#include "legion/api/registrars.h"
75#include "legion/api/requirements.h"
76#include "legion/api/runtime.h"
77#include "legion/api/sync.h"
78#include "legion/api/transforms.h"
79#include "legion/api/values.h"
80
81#endif // __LEGION_H__
82#endif // defined LEGION_ENABLE_CXX_BINDINGS