Simply calling str(val) doesn't work, because if the value happens to
be a SCons.Util.CLVar, it may contain not just plain strings, but also
tuples appended by SCons.Environment.ParseFlags.
For example "-isysroot /foo" becomes CLVar: [("-isysroot", "/foo")]
CLVar.__str__ supports only string elements, nothing else.