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.
70 lines
1.8 KiB
70 lines
1.8 KiB
7 years ago
|
project('winmain', 'c')
|
||
|
|
||
|
# MinGW windres has a bug due to which it doesn't parse args with space properly:
|
||
|
# https://github.com/mesonbuild/meson/pull/1346
|
||
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=4933
|
||
|
if meson.get_compiler('c').get_id() == 'gcc' and host_machine.system() == 'windows'
|
||
|
# Construct build_to_src and skip this test if it has spaces
|
||
|
# because then the -I flag to windres will also have spaces
|
||
|
# and we know the test will fail
|
||
|
src_parts = meson.source_root().split('/')
|
||
|
build_parts = meson.build_root().split('/')
|
||
|
|
||
|
# Get the common path (which might just be '/' or 'C:/')
|
||
|
common = []
|
||
|
done = false
|
||
|
count = 0
|
||
|
if src_parts.length() > build_parts.length()
|
||
|
parts = build_parts
|
||
|
other = src_parts
|
||
|
else
|
||
|
parts = src_parts
|
||
|
other = build_parts
|
||
|
endif
|
||
|
foreach part : parts
|
||
|
if not done and part == other.get(count)
|
||
|
common += [part]
|
||
|
else
|
||
|
done = true
|
||
|
endif
|
||
|
count += 1
|
||
|
endforeach
|
||
|
|
||
|
# Create path components to go down from the build root to the common path
|
||
|
count = 0
|
||
|
rel = build_parts
|
||
|
foreach build : build_parts
|
||
|
if count < build_parts.length() - common.length()
|
||
|
rel += ['..']
|
||
|
endif
|
||
|
count += 1
|
||
|
endforeach
|
||
|
|
||
|
# Create path components to go up from the common path to the build root
|
||
|
count = 0
|
||
|
foreach src : src_parts
|
||
|
if count >= common.length()
|
||
|
rel += [src]
|
||
|
endif
|
||
|
count += 1
|
||
|
endforeach
|
||
|
|
||
|
build_to_src = '/'.join(rel)
|
||
|
|
||
|
if build_to_src.contains(' ')
|
||
|
message('build_to_src is: ' + build_to_src)
|
||
|
error('MESON_SKIP_TEST build_to_src has spaces')
|
||
|
endif
|
||
|
# Welcome to the end of this conditional.
|
||
|
# We hope you never have to implement something like this.
|
||
|
endif
|
||
|
|
||
|
subdir('inc')
|
||
|
subdir('res')
|
||
|
|
||
|
exe = executable('prog', 'prog.c',
|
||
|
res,
|
||
|
gui_app : true)
|
||
|
|
||
|
test('winmain', exe)
|