@ -1,5 +1,64 @@
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'
# 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' )