1# Copyright 2017 The Meson development team
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# Public symbols for compilers sub-package when using 'from . import compilers'
16__all__ = [
17    'Compiler',
18    'RunResult',
19
20    'all_languages',
21    'base_options',
22    'clib_langs',
23    'clink_langs',
24    'c_suffixes',
25    'cpp_suffixes',
26    'get_base_compile_args',
27    'get_base_link_args',
28    'is_assembly',
29    'is_header',
30    'is_library',
31    'is_llvm_ir',
32    'is_object',
33    'is_source',
34    'is_known_suffix',
35    'lang_suffixes',
36    'LANGUAGES_USING_LDFLAGS',
37    'sort_clink',
38
39    'compiler_from_language',
40    'detect_compiler_for',
41    'detect_static_linker',
42    'detect_c_compiler',
43    'detect_cpp_compiler',
44    'detect_cuda_compiler',
45    'detect_fortran_compiler',
46    'detect_objc_compiler',
47    'detect_objcpp_compiler',
48    'detect_java_compiler',
49    'detect_cs_compiler',
50    'detect_vala_compiler',
51    'detect_rust_compiler',
52    'detect_d_compiler',
53    'detect_swift_compiler',
54
55    'AppleClangCCompiler',
56    'AppleClangCPPCompiler',
57    'AppleClangObjCCompiler',
58    'AppleClangObjCPPCompiler',
59    'ArmCCompiler',
60    'ArmCPPCompiler',
61    'ArmclangCCompiler',
62    'ArmclangCPPCompiler',
63    'CCompiler',
64    'ClangCCompiler',
65    'ClangCompiler',
66    'ClangCPPCompiler',
67    'ClangObjCCompiler',
68    'ClangObjCPPCompiler',
69    'ClangClCCompiler',
70    'ClangClCPPCompiler',
71    'CPPCompiler',
72    'DCompiler',
73    'DmdDCompiler',
74    'FortranCompiler',
75    'G95FortranCompiler',
76    'GnuCCompiler',
77    'ElbrusCCompiler',
78    'EmscriptenCCompiler',
79    'GnuCompiler',
80    'GnuLikeCompiler',
81    'GnuCPPCompiler',
82    'ElbrusCPPCompiler',
83    'EmscriptenCPPCompiler',
84    'GnuDCompiler',
85    'GnuFortranCompiler',
86    'ElbrusFortranCompiler',
87    'FlangFortranCompiler',
88    'GnuObjCCompiler',
89    'GnuObjCPPCompiler',
90    'IntelGnuLikeCompiler',
91    'IntelVisualStudioLikeCompiler',
92    'IntelCCompiler',
93    'IntelCPPCompiler',
94    'IntelClCCompiler',
95    'IntelClCPPCompiler',
96    'IntelFortranCompiler',
97    'IntelClFortranCompiler',
98    'JavaCompiler',
99    'LLVMDCompiler',
100    'MonoCompiler',
101    'CudaCompiler',
102    'VisualStudioCsCompiler',
103    'NAGFortranCompiler',
104    'ObjCCompiler',
105    'ObjCPPCompiler',
106    'Open64FortranCompiler',
107    'PathScaleFortranCompiler',
108    'NvidiaHPC_CCompiler',
109    'NvidiaHPC_CPPCompiler',
110    'NvidiaHPC_FortranCompiler',
111    'PGICCompiler',
112    'PGICPPCompiler',
113    'PGIFortranCompiler',
114    'RustCompiler',
115    'ClippyRustCompiler',
116    'CcrxCCompiler',
117    'CcrxCPPCompiler',
118    'Xc16CCompiler',
119    'CompCertCCompiler',
120    'C2000CCompiler',
121    'C2000CPPCompiler',
122    'SunFortranCompiler',
123    'SwiftCompiler',
124    'ValaCompiler',
125    'VisualStudioLikeCompiler',
126    'VisualStudioCCompiler',
127    'VisualStudioCPPCompiler',
128    'CythonCompiler',
129]
130
131# Bring symbols from each module into compilers sub-package namespace
132from .compilers import (
133    Compiler,
134    RunResult,
135    all_languages,
136    base_options,
137    clib_langs,
138    clink_langs,
139    c_suffixes,
140    cpp_suffixes,
141    get_base_compile_args,
142    get_base_link_args,
143    is_header,
144    is_source,
145    is_assembly,
146    is_llvm_ir,
147    is_object,
148    is_library,
149    is_known_suffix,
150    lang_suffixes,
151    LANGUAGES_USING_LDFLAGS,
152    sort_clink,
153)
154from .detect import (
155    compiler_from_language,
156    detect_compiler_for,
157    detect_static_linker,
158    detect_c_compiler,
159    detect_cpp_compiler,
160    detect_cuda_compiler,
161    detect_objc_compiler,
162    detect_objcpp_compiler,
163    detect_fortran_compiler,
164    detect_java_compiler,
165    detect_cs_compiler,
166    detect_vala_compiler,
167    detect_rust_compiler,
168    detect_d_compiler,
169    detect_swift_compiler,
170)
171from .c import (
172    CCompiler,
173    AppleClangCCompiler,
174    ArmCCompiler,
175    ArmclangCCompiler,
176    ClangCCompiler,
177    ClangClCCompiler,
178    GnuCCompiler,
179    ElbrusCCompiler,
180    EmscriptenCCompiler,
181    IntelCCompiler,
182    IntelClCCompiler,
183    NvidiaHPC_CCompiler,
184    PGICCompiler,
185    CcrxCCompiler,
186    Xc16CCompiler,
187    CompCertCCompiler,
188    C2000CCompiler,
189    VisualStudioCCompiler,
190)
191from .cpp import (
192    CPPCompiler,
193    AppleClangCPPCompiler,
194    ArmCPPCompiler,
195    ArmclangCPPCompiler,
196    ClangCPPCompiler,
197    ClangClCPPCompiler,
198    GnuCPPCompiler,
199    ElbrusCPPCompiler,
200    EmscriptenCPPCompiler,
201    IntelCPPCompiler,
202    IntelClCPPCompiler,
203    NvidiaHPC_CPPCompiler,
204    PGICPPCompiler,
205    CcrxCPPCompiler,
206    C2000CPPCompiler,
207    VisualStudioCPPCompiler,
208)
209from .cs import MonoCompiler, VisualStudioCsCompiler
210from .d import (
211    DCompiler,
212    DmdDCompiler,
213    GnuDCompiler,
214    LLVMDCompiler,
215)
216from .cuda import CudaCompiler
217from .fortran import (
218    FortranCompiler,
219    G95FortranCompiler,
220    GnuFortranCompiler,
221    ElbrusFortranCompiler,
222    FlangFortranCompiler,
223    IntelFortranCompiler,
224    IntelClFortranCompiler,
225    NAGFortranCompiler,
226    Open64FortranCompiler,
227    PathScaleFortranCompiler,
228    NvidiaHPC_FortranCompiler,
229    PGIFortranCompiler,
230    SunFortranCompiler,
231)
232from .java import JavaCompiler
233from .objc import (
234    ObjCCompiler,
235    AppleClangObjCCompiler,
236    ClangObjCCompiler,
237    GnuObjCCompiler,
238)
239from .objcpp import (
240    ObjCPPCompiler,
241    AppleClangObjCPPCompiler,
242    ClangObjCPPCompiler,
243    GnuObjCPPCompiler,
244)
245from .rust import RustCompiler, ClippyRustCompiler
246from .swift import SwiftCompiler
247from .vala import ValaCompiler
248from .mixins.visualstudio import VisualStudioLikeCompiler
249from .mixins.gnu import GnuCompiler, GnuLikeCompiler
250from .mixins.intel import IntelGnuLikeCompiler, IntelVisualStudioLikeCompiler
251from .mixins.clang import ClangCompiler
252from .cython import CythonCompiler
253