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.
73 lines
2.6 KiB
73 lines
2.6 KiB
5 years ago
|
project('introspection', ['c', 'cpp'], version: '1.2.3', default_options: ['cpp_std=c++11', 'buildtype=debug'])
|
||
|
|
||
|
dep1 = dependency('threads')
|
||
|
dep2 = dependency('zlib', required: false)
|
||
|
dep3 = dependency('bugDep1', required: get_option('test_opt1'))
|
||
|
|
||
|
b1 = get_option('test_opt1')
|
||
|
b2 = get_option('test_opt2')
|
||
|
test_bool = b1 or b2
|
||
|
test_bool = b1 and b2
|
||
|
test_bool = not test_bool
|
||
|
|
||
|
set_variable('list_test_plusassign', [])
|
||
|
list_test_plusassign += ['bugs everywhere']
|
||
4 years ago
|
dict_test = {list_test_plusassign[0]: 'even more bugs'}
|
||
5 years ago
|
|
||
5 years ago
|
if not true
|
||
5 years ago
|
vers_str = '<=99.9.9'
|
||
|
dependency('somethingthatdoesnotexist', required: true, version: '>=1.2.3')
|
||
|
dependency('look_i_have_a_fallback', version: ['>=1.0.0', vers_str], fallback: ['oh_no', 'the_subproject_does_not_exist'])
|
||
|
endif
|
||
|
|
||
|
subdir('sharedlib')
|
||
|
subdir('staticlib')
|
||
|
|
||
|
var1 = '1'
|
||
|
var2 = 2.to_string()
|
||
|
var3 = 'test3'
|
||
|
|
||
3 years ago
|
var4 = f'test @var1@ string' # TODO: Actually implement fstrings
|
||
|
|
||
4 years ago
|
cus1 = custom_target('custom target test 1', output: 'file2', input: 'cp.py',
|
||
|
command: [find_program('cp.py'), '@INPUT@', '@OUTPUT@'])
|
||
|
cus2 = custom_target('custom target test 2', output: 'file3', input: cus1,
|
||
|
command: [find_program('cp.py'), '@INPUT@', '@OUTPUT@'])
|
||
4 years ago
|
|
||
5 years ago
|
t1 = executable('test' + var1, ['t1.cpp'], link_with: [sharedlib], install: not false, build_by_default: get_option('test_opt2'))
|
||
5 years ago
|
t2 = executable('test@0@'.format('@0@'.format(var2)), sources: ['t2.cpp'], link_with: [staticlib])
|
||
|
t3 = executable(var3, 't3.cpp', link_with: [sharedlib, staticlib], dependencies: [dep1])
|
||
|
|
||
4 years ago
|
cus3 = custom_target('custom target test 3', output: 'file4', input: t3,
|
||
|
command: [find_program('cp.py'), '@INPUT@', '@OUTPUT@'])
|
||
|
|
||
5 years ago
|
### BEGIN: Test inspired by taisei: https://github.com/taisei-project/taisei/blob/master/meson.build#L293
|
||
|
systype = '@0@'.format(host_machine.system())
|
||
|
systype = '@0@, @1@, @2@'.format(systype, host_machine.cpu_family(), host_machine.cpu())
|
||
|
message(systype)
|
||
|
### END: Test inspired by taisei
|
||
|
|
||
|
# Minimal code version to produce bug #5376
|
||
|
# Code inspired by https://github.com/mesa3d/mesa/blob/974c4d679c23373dbed386c696e3e3bc1bfa23ae/meson.build#L1341-L1347
|
||
|
osmesa_lib_name = 'OSMesa'
|
||
|
osmesa_bits = '8'
|
||
|
osmesa_lib_name = osmesa_lib_name + osmesa_bits
|
||
|
message(osmesa_lib_name) # Infinite recursion gets triggered here when the parameter osmesa_lib_name is resolved
|
||
|
|
||
|
test('test case 1', t1)
|
||
4 years ago
|
test('test case 2', t2, depends: t3)
|
||
4 years ago
|
benchmark('benchmark 1', t3, args: [cus1, cus2, cus3])
|
||
5 years ago
|
|
||
|
### Stuff to test the AST JSON printer
|
||
|
foreach x : ['a', 'b', 'c']
|
||
|
if x == 'a'
|
||
|
message('a')
|
||
|
elif x == 'b'
|
||
|
message('a')
|
||
|
else
|
||
|
continue
|
||
|
endif
|
||
|
break
|
||
|
continue
|
||
|
endforeach
|