Skip to content
  • Nirbheek Chauhan's avatar
    cerbero/build: Workaround MSYS trying to be too smart · fbaf3bc4
    Nirbheek Chauhan authored
    Finally figured out the actual issue that I was trying to solve in
    f38df32d and 78f06dd4. Paths like `c:/foobar` (lowercase drive
    letter) are considered to be a POSIX path list, so `c:/foobar/`
    becomes `c;C:\foobar`:
    
    http://mingw.org/wiki/Posix_path_conversion
    
    This will happen anytime we try to pass a path as a command-line
    argument. We used to work-around this by using `to_unixpath()`,
    but that's just sinking deeper into dependence on broken shell
    behaviour. This happens now because we're passing includes in CFLAGS,
    CXXFLAGS, CPPFLAGS, etc.
    
    So let's just bypass the shell entirely by constructing a list. As
    a side-effect, this is another step towards being able to run Cerbero
    from a directory with spaces in it.
    
    For now, we'll convert `config_sh` to a list when not using an
    Autotools configure. Luckily, we don't need to pass any paths as
    arguments to it anyway. When running other stages, we now always use
    a list instead of a string. Hopefully the fallout is small and obvious
    for people using forks of Cerbero.
    fbaf3bc4