aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-01-23 14:47:06 +0200
committerGitHub <noreply@github.com>2019-01-23 14:47:06 +0200
commit379b42c5b18cd94feded28791a5189ee253ba04e (patch)
tree32276f56c794a215bf7768b541e7fb5279e326a7 /mesonbuild/compilers/compilers.py
parentf72522e8890bb44283da970bf8e4545830ae81a6 (diff)
parent43147c2594f2d8d802113d1cb2bc5bb9c72d3b96 (diff)
downloadmeson-379b42c5b18cd94feded28791a5189ee253ba04e.zip
meson-379b42c5b18cd94feded28791a5189ee253ba04e.tar.gz
meson-379b42c5b18cd94feded28791a5189ee253ba04e.tar.bz2
Merge pull request #3919 from mesonbuild/cudarebase
Add Cuda support
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 016e704..b1f3cc2 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -37,6 +37,7 @@ lib_suffixes = ('a', 'lib', 'dll', 'dylib', 'so')
lang_suffixes = {
'c': ('c',),
'cpp': ('cpp', 'cc', 'cxx', 'c++', 'hh', 'hpp', 'ipp', 'hxx'),
+ 'cuda': ('cu',),
# f90, f95, f03, f08 are for free-form fortran ('f90' recommended)
# f, for, ftn, fpp are for fixed-form fortran ('f' or 'for' recommended)
'fortran': ('f90', 'f95', 'f03', 'f08', 'f', 'for', 'ftn', 'fpp'),
@@ -58,7 +59,7 @@ clib_langs = ('objcpp', 'cpp', 'objc', 'c', 'fortran',)
# List of languages that can be linked with C code directly by the linker
# used in build.py:process_compilers() and build.py:get_dynamic_linker()
# XXX: Add Rust to this?
-clink_langs = ('d',) + clib_langs
+clink_langs = ('d', 'cuda') + clib_langs
clink_suffixes = ()
for _l in clink_langs + ('vala',):
clink_suffixes += lang_suffixes[_l]
@@ -69,6 +70,7 @@ soregex = re.compile(r'.*\.so(\.[0-9]+)?(\.[0-9]+)?(\.[0-9]+)?$')
# Environment variables that each lang uses.
cflags_mapping = {'c': 'CFLAGS',
'cpp': 'CXXFLAGS',
+ 'cuda': 'CUFLAGS',
'objc': 'OBJCFLAGS',
'objcpp': 'OBJCXXFLAGS',
'fortran': 'FFLAGS',
@@ -143,6 +145,13 @@ armclang_buildtype_args = {'plain': [],
'custom': [],
}
+cuda_buildtype_args = {'plain': [],
+ 'debug': [],
+ 'debugoptimized': [],
+ 'release': [],
+ 'minsize': [],
+ }
+
arm_buildtype_args = {'plain': [],
'debug': ['-O0', '--debug'],
'debugoptimized': ['-O1', '--debug'],
@@ -345,6 +354,17 @@ msvc_optimization_args = {'0': [],
's': ['/O1'], # Implies /Os.
}
+cuda_optimization_args = {'0': [],
+ 'g': ['-O0'],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3', '-Otime'],
+ 's': ['-O3', '-Ospace']
+ }
+
+cuda_debug_args = {False: [],
+ True: ['-g']}
+
clike_debug_args = {False: [],
True: ['-g']}