def determine_filenames(self, is_cross, env):
    '\n        See https://github.com/mesonbuild/meson/pull/417 for details.\n\n        First we determine the filename template (self.filename_tpl), then we\n        set the output filename (self.filename).\n\n        The template is needed while creating aliases (self.get_aliases),\n        which are needed while generating .so shared libraries for Linux.\n\n        Besides this, there\'s also the import library name, which is only used\n        on Windows since on that platform the linker uses a separate library\n        called the "import library" during linking instead of the shared\n        library (DLL). The toolchain will output an import library in one of\n        two formats: GCC or Visual Studio.\n\n        When we\'re building with Visual Studio, the import library that will be\n        generated by the toolchain is self.vs_import_filename, and with\n        MinGW/GCC, it\'s self.gcc_import_filename. self.import_filename will\n        always contain the import library name this target will generate.\n        '
    prefix = ''
    suffix = ''
    self.filename_tpl = self.basic_filename_tpl
    if ('cs' in self.compilers):
        prefix = ''
        suffix = 'dll'
        self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_windows(is_cross, env):
        suffix = 'dll'
        self.vs_import_filename = '{0}{1}.lib'.format((self.prefix if (self.prefix is not None) else ''), self.name)
        self.gcc_import_filename = '{0}{1}.dll.a'.format((self.prefix if (self.prefix is not None) else 'lib'), self.name)
        if self.get_using_msvc():
            prefix = ''
            self.import_filename = self.vs_import_filename
        else:
            prefix = 'lib'
            self.import_filename = self.gcc_import_filename
        if self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}-{0.soversion}.{0.suffix}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_cygwin(is_cross, env):
        suffix = 'dll'
        self.gcc_import_filename = '{0}{1}.dll.a'.format((self.prefix if (self.prefix is not None) else 'lib'), self.name)
        prefix = 'cyg'
        self.import_filename = self.gcc_import_filename
        if self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}-{0.soversion}.{0.suffix}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_darwin(is_cross, env):
        prefix = 'lib'
        suffix = 'dylib'
        if self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}.{0.soversion}.{0.suffix}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_android(is_cross, env):
        prefix = 'lib'
        suffix = 'so'
        self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    else:
        prefix = 'lib'
        suffix = 'so'
        if self.ltversion:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}.{0.ltversion}'
        elif self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}.{0.soversion}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    if (self.prefix is None):
        self.prefix = prefix
    if (self.suffix is None):
        self.suffix = suffix
    self.filename = self.filename_tpl.format(self)
    self.outputs = [self.filename]
See https://github.com/mesonbuild/meson/pull/417 for details.

First we determine the filename template (self.filename_tpl), then we
set the output filename (self.filename).

The template is needed while creating aliases (self.get_aliases),
which are needed while generating .so shared libraries for Linux.

Besides this, there's also the import library name, which is only used
on Windows since on that platform the linker uses a separate library
called the "import library" during linking instead of the shared
library (DLL). The toolchain will output an import library in one of
two formats: GCC or Visual Studio.

When we're building with Visual Studio, the import library that will be
generated by the toolchain is self.vs_import_filename, and with
MinGW/GCC, it's self.gcc_import_filename. self.import_filename will
always contain the import library name this target will generate.
def determine_filenames(self, is_cross, env):
    '\n        See https://github.com/mesonbuild/meson/pull/417 for details.\n\n        First we determine the filename template (self.filename_tpl), then we\n        set the output filename (self.filename).\n\n        The template is needed while creating aliases (self.get_aliases),\n        which are needed while generating .so shared libraries for Linux.\n\n        Besides this, there\'s also the import library name, which is only used\n        on Windows since on that platform the linker uses a separate library\n        called the "import library" during linking instead of the shared\n        library (DLL). The toolchain will output an import library in one of\n        two formats: GCC or Visual Studio.\n\n        When we\'re building with Visual Studio, the import library that will be\n        generated by the toolchain is self.vs_import_filename, and with\n        MinGW/GCC, it\'s self.gcc_import_filename. self.import_filename will\n        always contain the import library name this target will generate.\n        '
    prefix = 
    suffix = 
    self.filename_tpl = self.basic_filename_tpl
    if ('cs' in self.compilers):
        prefix = 
        suffix = 'dll'
        self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_windows(is_cross, env):
        suffix = 'dll'
        self.vs_import_filename = '{0}{1}.lib'.format((self.prefix if (self.prefix is not None) else ), self.name)
        self.gcc_import_filename = '{0}{1}.dll.a'.format((self.prefix if (self.prefix is not None) else 'lib'), self.name)
        if self.get_using_msvc():
            prefix = 
            self.import_filename = self.vs_import_filename
        else:
            prefix = 'lib'
            self.import_filename = self.gcc_import_filename
        if self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}-{0.soversion}.{0.suffix}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_cygwin(is_cross, env):
        suffix = 'dll'
        self.gcc_import_filename = '{0}{1}.dll.a'.format((self.prefix if (self.prefix is not None) else 'lib'), self.name)
        prefix = 'cyg'
        self.import_filename = self.gcc_import_filename
        if self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}-{0.soversion}.{0.suffix}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_darwin(is_cross, env):
        prefix = 'lib'
        suffix = 'dylib'
        if self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}.{0.soversion}.{0.suffix}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    elif for_android(is_cross, env):
        prefix = 'lib'
        suffix = 'so'
        self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    else:
        prefix = 'lib'
        suffix = 'so'
        if self.ltversion:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}.{0.ltversion}'
        elif self.soversion:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}.{0.soversion}'
        else:
            self.filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
    if (self.prefix is None):
        self.prefix = prefix
    if (self.suffix is None):
        self.suffix = suffix
    self.filename = self.filename_tpl.format(self)
    self.outputs = [self.filename]