project('string arithmetic', meson_version: '>=0.62.0') assert('foo' + 'bar' == 'foobar') assert('foo' + 'bar' + 'baz' == 'foobarbaz') a = 'a' b = 'b' assert(a + b + 'c' == 'abc') # ------------------------------------------------------------------------------ # format strings: # ------------------------------------------------------------------------------ sub1 = 'the' sub2 = ' quick\n' sub3 = ' brown' sub4 = '\nfox' x = f'@sub1@@sub2@@sub3@@sub4@' assert(x == sub1 + sub2 + sub3 + sub4) assert(x == 'the quick\n brown\nfox') # ------------------------------------------------------------------------------ # multi-line format strings # ------------------------------------------------------------------------------ y_actual = f'''This is a multi-line comment with string substitution: "@sub1@@sub2@@sub3@@sub4@" And I can even substitute the entry multiple times! @sub1@ @sub2@ @sub3@ ''' y_expect = '''This is a multi-line comment with string substitution: "the quick brown fox" And I can even substitute the entry multiple times! the quick brown ''' message('actual=' + y_actual) message('expect=' + y_expect) assert(y_actual == y_expect)