The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.0 KiB
26 lines
1.0 KiB
# example here is inspired by Nvidia's blog post: |
|
# https://developer.nvidia.com/blog/separate-compilation-linking-cuda-device-code/ |
|
# code: |
|
# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#examples |
|
|
|
project('device linking', ['cpp'], version : '1.0.0') |
|
|
|
# test that optional initialization of cuda works to disable thin archives |
|
add_languages('cuda') |
|
|
|
nvcc = meson.get_compiler('cuda') |
|
cuda = import('unstable-cuda') |
|
|
|
arch_flags = cuda.nvcc_arch_flags(nvcc.version(), 'Common') |
|
|
|
message('NVCC version: ' + nvcc.version()) |
|
message('NVCC flags: ' + ' '.join(arch_flags)) |
|
|
|
# test device linking with -dc (which is equivalent to `--relocatable-device-code true`) |
|
lib = static_library('devicefuncs', ['b.cu'], cuda_args : ['-dc'] + arch_flags) |
|
exe = executable('app', 'main.cu', cuda_args : ['-dc'] + arch_flags, link_with : lib, link_args : arch_flags) |
|
|
|
# if we don't have a CUDA-capable GPU available, avoid creating the test |
|
if run_command('__nvcc_device_query', check : false).returncode() == 0 |
|
test('cudatest', exe) |
|
endif
|
|
|