|
|
|
# Copyright 2017 The Meson development team
|
|
|
|
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
# Public symbols for compilers sub-package when using 'from . import compilers'
|
|
|
|
__all__ = [
|
|
|
|
'Compiler',
|
|
|
|
'RunResult',
|
|
|
|
|
|
|
|
'all_languages',
|
|
|
|
'base_options',
|
|
|
|
'clib_langs',
|
|
|
|
'clink_langs',
|
|
|
|
'c_suffixes',
|
|
|
|
'cpp_suffixes',
|
|
|
|
'get_base_compile_args',
|
|
|
|
'get_base_link_args',
|
|
|
|
'is_assembly',
|
|
|
|
'is_header',
|
|
|
|
'is_library',
|
|
|
|
'is_llvm_ir',
|
|
|
|
'is_object',
|
|
|
|
'is_source',
|
|
|
|
'is_known_suffix',
|
|
|
|
'lang_suffixes',
|
|
|
|
'LANGUAGES_USING_LDFLAGS',
|
|
|
|
'sort_clink',
|
|
|
|
'SUFFIX_TO_LANG',
|
|
|
|
|
|
|
|
'compiler_from_language',
|
|
|
|
'detect_compiler_for',
|
|
|
|
'detect_static_linker',
|
|
|
|
'detect_c_compiler',
|
|
|
|
'detect_cpp_compiler',
|
|
|
|
'detect_cuda_compiler',
|
|
|
|
'detect_fortran_compiler',
|
|
|
|
'detect_objc_compiler',
|
|
|
|
'detect_objcpp_compiler',
|
|
|
|
'detect_java_compiler',
|
|
|
|
'detect_cs_compiler',
|
|
|
|
'detect_vala_compiler',
|
|
|
|
'detect_rust_compiler',
|
|
|
|
'detect_d_compiler',
|
|
|
|
'detect_swift_compiler',
|
|
|
|
|
|
|
|
'AppleClangCCompiler',
|
|
|
|
'AppleClangCPPCompiler',
|
|
|
|
'AppleClangObjCCompiler',
|
|
|
|
'AppleClangObjCPPCompiler',
|
|
|
|
'ArmCCompiler',
|
|
|
|
'ArmCPPCompiler',
|
|
|
|
'ArmclangCCompiler',
|
|
|
|
'ArmclangCPPCompiler',
|
|
|
|
'CCompiler',
|
|
|
|
'ClangCCompiler',
|
|
|
|
'ClangCompiler',
|
|
|
|
'ClangCPPCompiler',
|
|
|
|
'ClangObjCCompiler',
|
|
|
|
'ClangObjCPPCompiler',
|
|
|
|
'ClangClCCompiler',
|
|
|
|
'ClangClCPPCompiler',
|
|
|
|
'CPPCompiler',
|
|
|
|
'DCompiler',
|
|
|
|
'DmdDCompiler',
|
|
|
|
'FortranCompiler',
|
|
|
|
'G95FortranCompiler',
|
|
|
|
'GnuCCompiler',
|
|
|
|
'ElbrusCCompiler',
|
|
|
|
'EmscriptenCCompiler',
|
|
|
|
'GnuCompiler',
|
|
|
|
'GnuLikeCompiler',
|
|
|
|
'GnuCPPCompiler',
|
|
|
|
'ElbrusCPPCompiler',
|
|
|
|
'EmscriptenCPPCompiler',
|
|
|
|
'GnuDCompiler',
|
|
|
|
'GnuFortranCompiler',
|
|
|
|
'ElbrusFortranCompiler',
|
|
|
|
'FlangFortranCompiler',
|
|
|
|
'GnuObjCCompiler',
|
|
|
|
'GnuObjCPPCompiler',
|
|
|
|
'IntelGnuLikeCompiler',
|
|
|
|
'IntelVisualStudioLikeCompiler',
|
|
|
|
'IntelCCompiler',
|
|
|
|
'IntelCPPCompiler',
|
|
|
|
'IntelClCCompiler',
|
|
|
|
'IntelClCPPCompiler',
|
|
|
|
'IntelFortranCompiler',
|
|
|
|
'IntelClFortranCompiler',
|
|
|
|
'JavaCompiler',
|
|
|
|
'LLVMDCompiler',
|
|
|
|
'MonoCompiler',
|
|
|
|
'CudaCompiler',
|
|
|
|
'VisualStudioCsCompiler',
|
|
|
|
'NAGFortranCompiler',
|
|
|
|
'ObjCCompiler',
|
|
|
|
'ObjCPPCompiler',
|
|
|
|
'Open64FortranCompiler',
|
|
|
|
'PathScaleFortranCompiler',
|
|
|
|
'NvidiaHPC_CCompiler',
|
|
|
|
'NvidiaHPC_CPPCompiler',
|
|
|
|
'NvidiaHPC_FortranCompiler',
|
|
|
|
'PGICCompiler',
|
|
|
|
'PGICPPCompiler',
|
|
|
|
'PGIFortranCompiler',
|
|
|
|
'RustCompiler',
|
|
|
|
'ClippyRustCompiler',
|
|
|
|
'CcrxCCompiler',
|
|
|
|
'CcrxCPPCompiler',
|
|
|
|
'Xc16CCompiler',
|
Add support for the CompCert C Compiler
* Add preliminary support for the CompCert C Compiler
The intention is to use this with the picolibc, so some GCC flags are
automatically filtered. Since CompCert uses GCC is for linking, those
GCC-linker flags which are used by picolibc, are automatically prefixed
with '-WUl', so that they're passed to GCC.
Squashed commit of the following:
commit 4e0ad66dca9de301d2e41e74aea4142afbd1da7d
Author: Sebastian Meyer <meyer@absint.com>
Date: Mon Aug 31 14:20:39 2020 +0200
remove '-fall' from default arguments, also filter -ftls-model=.*
commit 41afa3ccc62ae72824eb319cb8b34b7e6693cb67
Author: Sebastian Meyer <meyer@absint.com>
Date: Mon Aug 31 14:13:55 2020 +0200
use regex for filtering ccomp args
commit d68d242d0ad22f8bf53923ce849da9b86b696a75
Author: Sebastian Meyer <meyer@absint.com>
Date: Mon Aug 31 13:54:36 2020 +0200
filter some gcc arguments
commit 982a01756266bddbbd211c54e8dbfa2f43dec38f
Author: Sebastian Meyer <meyer@absint.com>
Date: Fri Aug 28 15:03:14 2020 +0200
fix ccomp meson configuration
commit dce0bea00b1caa094b1ed0c6c77cf6c12f0f58d9
Author: Sebastian Meyer <meyer@absint.com>
Date: Thu Aug 27 13:02:19 2020 +0200
add CompCert to meson (does not fully work, yet)
* remove unused import and s/cls/self/
fixes the two obvious LGTM warnings
* CompCert: Do not ignore unsupported GCC flags
Some are safe to ignore, however, as per
https://github.com/mesonbuild/meson/pull/7674, they should not be
ignored by meson itself. Instead the meson.build should take care to
select only those which are actually supported by the compiler.
* remove unused variable
* Only add arguments once.
* Apply suggestions from code review
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
* Remove erroneous ' ' from '-o {}'.format()
As noticed by @dcbaker
* added release note snippet for compcert
* properly split parameters
As suggested by @dcbaker, these parameters should be properly split into multiple strings.
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
* Update add_compcert_compiler.md
Added a sentence about the state of the implementation (experimental); use proper markdown
* properly separate arguments
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
4 years ago
|
|
|
'CompCertCCompiler',
|
|
|
|
'C2000CCompiler',
|
|
|
|
'C2000CPPCompiler',
|
|
|
|
'TICCompiler',
|
|
|
|
'TICPPCompiler',
|
|
|
|
'SunFortranCompiler',
|
|
|
|
'SwiftCompiler',
|
|
|
|
'ValaCompiler',
|
|
|
|
'VisualStudioLikeCompiler',
|
|
|
|
'VisualStudioCCompiler',
|
|
|
|
'VisualStudioCPPCompiler',
|
|
|
|
'CythonCompiler',
|
|
|
|
]
|
|
|
|
|
|
|
|
# Bring symbols from each module into compilers sub-package namespace
|
|
|
|
from .compilers import (
|
|
|
|
Compiler,
|
|
|
|
RunResult,
|
|
|
|
all_languages,
|
|
|
|
base_options,
|
|
|
|
clib_langs,
|
|
|
|
clink_langs,
|
|
|
|
c_suffixes,
|
|
|
|
cpp_suffixes,
|
|
|
|
get_base_compile_args,
|
|
|
|
get_base_link_args,
|
|
|
|
is_header,
|
|
|
|
is_source,
|
|
|
|
is_assembly,
|
|
|
|
is_llvm_ir,
|
|
|
|
is_object,
|
|
|
|
is_library,
|
|
|
|
is_known_suffix,
|
|
|
|
lang_suffixes,
|
|
|
|
LANGUAGES_USING_LDFLAGS,
|
|
|
|
sort_clink,
|
|
|
|
SUFFIX_TO_LANG,
|
|
|
|
)
|
|
|
|
from .detect import (
|
|
|
|
compiler_from_language,
|
|
|
|
detect_compiler_for,
|
|
|
|
detect_static_linker,
|
|
|
|
detect_c_compiler,
|
|
|
|
detect_cpp_compiler,
|
|
|
|
detect_cuda_compiler,
|
|
|
|
detect_objc_compiler,
|
|
|
|
detect_objcpp_compiler,
|
|
|
|
detect_fortran_compiler,
|
|
|
|
detect_java_compiler,
|
|
|
|
detect_cs_compiler,
|
|
|
|
detect_vala_compiler,
|
|
|
|
detect_rust_compiler,
|
|
|
|
detect_d_compiler,
|
|
|
|
detect_swift_compiler,
|
|
|
|
)
|
|
|
|
from .c import (
|
|
|
|
CCompiler,
|
|
|
|
AppleClangCCompiler,
|
|
|
|
ArmCCompiler,
|
|
|
|
ArmclangCCompiler,
|
|
|
|
ClangCCompiler,
|
|
|
|
ClangClCCompiler,
|
|
|
|
GnuCCompiler,
|
|
|
|
ElbrusCCompiler,
|
|
|
|
EmscriptenCCompiler,
|
|
|
|
IntelCCompiler,
|
|
|
|
IntelClCCompiler,
|
|
|
|
NvidiaHPC_CCompiler,
|
|
|
|
PGICCompiler,
|
|
|
|
CcrxCCompiler,
|
|
|
|
Xc16CCompiler,
|
Add support for the CompCert C Compiler
* Add preliminary support for the CompCert C Compiler
The intention is to use this with the picolibc, so some GCC flags are
automatically filtered. Since CompCert uses GCC is for linking, those
GCC-linker flags which are used by picolibc, are automatically prefixed
with '-WUl', so that they're passed to GCC.
Squashed commit of the following:
commit 4e0ad66dca9de301d2e41e74aea4142afbd1da7d
Author: Sebastian Meyer <meyer@absint.com>
Date: Mon Aug 31 14:20:39 2020 +0200
remove '-fall' from default arguments, also filter -ftls-model=.*
commit 41afa3ccc62ae72824eb319cb8b34b7e6693cb67
Author: Sebastian Meyer <meyer@absint.com>
Date: Mon Aug 31 14:13:55 2020 +0200
use regex for filtering ccomp args
commit d68d242d0ad22f8bf53923ce849da9b86b696a75
Author: Sebastian Meyer <meyer@absint.com>
Date: Mon Aug 31 13:54:36 2020 +0200
filter some gcc arguments
commit 982a01756266bddbbd211c54e8dbfa2f43dec38f
Author: Sebastian Meyer <meyer@absint.com>
Date: Fri Aug 28 15:03:14 2020 +0200
fix ccomp meson configuration
commit dce0bea00b1caa094b1ed0c6c77cf6c12f0f58d9
Author: Sebastian Meyer <meyer@absint.com>
Date: Thu Aug 27 13:02:19 2020 +0200
add CompCert to meson (does not fully work, yet)
* remove unused import and s/cls/self/
fixes the two obvious LGTM warnings
* CompCert: Do not ignore unsupported GCC flags
Some are safe to ignore, however, as per
https://github.com/mesonbuild/meson/pull/7674, they should not be
ignored by meson itself. Instead the meson.build should take care to
select only those which are actually supported by the compiler.
* remove unused variable
* Only add arguments once.
* Apply suggestions from code review
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
* Remove erroneous ' ' from '-o {}'.format()
As noticed by @dcbaker
* added release note snippet for compcert
* properly split parameters
As suggested by @dcbaker, these parameters should be properly split into multiple strings.
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
* Update add_compcert_compiler.md
Added a sentence about the state of the implementation (experimental); use proper markdown
* properly separate arguments
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
4 years ago
|
|
|
CompCertCCompiler,
|
|
|
|
C2000CCompiler,
|
|
|
|
TICCompiler,
|
|
|
|
VisualStudioCCompiler,
|
|
|
|
)
|
|
|
|
from .cpp import (
|
|
|
|
CPPCompiler,
|
|
|
|
AppleClangCPPCompiler,
|
|
|
|
ArmCPPCompiler,
|
|
|
|
ArmclangCPPCompiler,
|
|
|
|
ClangCPPCompiler,
|
|
|
|
ClangClCPPCompiler,
|
|
|
|
GnuCPPCompiler,
|
|
|
|
ElbrusCPPCompiler,
|
|
|
|
EmscriptenCPPCompiler,
|
|
|
|
IntelCPPCompiler,
|
|
|
|
IntelClCPPCompiler,
|
|
|
|
NvidiaHPC_CPPCompiler,
|
|
|
|
PGICPPCompiler,
|
|
|
|
CcrxCPPCompiler,
|
|
|
|
C2000CPPCompiler,
|
|
|
|
TICPPCompiler,
|
|
|
|
VisualStudioCPPCompiler,
|
|
|
|
)
|
|
|
|
from .cs import MonoCompiler, VisualStudioCsCompiler
|
|
|
|
from .d import (
|
|
|
|
DCompiler,
|
|
|
|
DmdDCompiler,
|
|
|
|
GnuDCompiler,
|
|
|
|
LLVMDCompiler,
|
|
|
|
)
|
|
|
|
from .cuda import CudaCompiler
|
|
|
|
from .fortran import (
|
|
|
|
FortranCompiler,
|
|
|
|
G95FortranCompiler,
|
|
|
|
GnuFortranCompiler,
|
|
|
|
ElbrusFortranCompiler,
|
|
|
|
FlangFortranCompiler,
|
|
|
|
IntelFortranCompiler,
|
|
|
|
IntelClFortranCompiler,
|
|
|
|
NAGFortranCompiler,
|
|
|
|
Open64FortranCompiler,
|
|
|
|
PathScaleFortranCompiler,
|
|
|
|
NvidiaHPC_FortranCompiler,
|
|
|
|
PGIFortranCompiler,
|
|
|
|
SunFortranCompiler,
|
|
|
|
)
|
|
|
|
from .java import JavaCompiler
|
|
|
|
from .objc import (
|
|
|
|
ObjCCompiler,
|
|
|
|
AppleClangObjCCompiler,
|
|
|
|
ClangObjCCompiler,
|
|
|
|
GnuObjCCompiler,
|
|
|
|
)
|
|
|
|
from .objcpp import (
|
|
|
|
ObjCPPCompiler,
|
|
|
|
AppleClangObjCPPCompiler,
|
|
|
|
ClangObjCPPCompiler,
|
|
|
|
GnuObjCPPCompiler,
|
|
|
|
)
|
|
|
|
from .rust import RustCompiler, ClippyRustCompiler
|
|
|
|
from .swift import SwiftCompiler
|
|
|
|
from .vala import ValaCompiler
|
|
|
|
from .mixins.visualstudio import VisualStudioLikeCompiler
|
|
|
|
from .mixins.gnu import GnuCompiler, GnuLikeCompiler
|
|
|
|
from .mixins.intel import IntelGnuLikeCompiler, IntelVisualStudioLikeCompiler
|
|
|
|
from .mixins.clang import ClangCompiler
|
|
|
|
from .cython import CythonCompiler
|