12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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)
|