def generate(self, state, args, kwargs): if len(args) > 0: raise coredata.MesonException('Pkgconfig_gen takes no positional arguments.') libs = kwargs.get('libraries', []) if not isinstance(libs, list): libs = [libs] processed_libs = [] for l in libs: if hasattr(l, 'held_object'): l = l.held_object if not (isinstance(l, build.SharedLibrary) or isinstance(l, build.StaticLibrary)): raise coredata.MesonException('Library argument not a library object.') processed_libs.append(l) libs = processed_libs subdirs = mesonlib.stringlistify(kwargs.get('subdirs', ['.'])) version = kwargs.get('version', '') if not isinstance(version, str): raise coredata.MesonException('Version must be a string.') name = kwargs.get('name', None) if not isinstance(name, str): raise coredata.MesonException('Name not specified.') filebase = kwargs.get('filebase', name) if not isinstance(filebase, str): raise coredata.MesonException('Filebase must be a string.') description = kwargs.get('description', None) if not isinstance(description, str): raise coredata.MesonException('Description is not a string.') pcfile = filebase + '.pc' pkgroot = os.path.join(state.environment.coredata.get_builtin_option('libdir'), 'pkgconfig') self.generate_pkgconfig_file(state, libs, subdirs, name, description, version, filebase) return build.Data(False, state.environment.get_scratch_dir(), [pcfile], pkgroot)
def compile_resources(self, state, args, kwargs): comp = self.detect_compiler(state.compilers) extra_args = mesonlib.stringlistify(kwargs.get('args', [])) if comp.id == 'msvc': rescomp = dependencies.ExternalProgram('rc', silent=True) res_args = extra_args + ['/nologo', '/fo@OUTPUT@', '@INPUT@'] suffix = 'res' else: rescomp = dependencies.ExternalProgram('windres', silent=True) res_args = extra_args + ['@INPUT@', '@OUTPUT@'] suffix = 'o' res_files = mesonlib.stringlistify(args) res_kwargs = {'output': '@BASENAME@.' + suffix, 'arguments': res_args} res_gen = build.Generator([rescomp], res_kwargs) res_output = build.GeneratedList(res_gen) [res_output.add_file(os.path.join(state.subdir, a)) for a in res_files] return res_output
def compile_resources(self, state, args, kwargs): comp = self.detect_compiler(state.compilers) extra_args = mesonlib.stringlistify(kwargs.get('args', [])) if comp.id == 'msvc': rescomp = dependencies.ExternalProgram('rc', silent=True) res_args = extra_args + ['/nologo', '/fo@OUTPUT@', '@INPUT@'] suffix = 'res' else: rescomp = dependencies.ExternalProgram('windres', silent=True) res_args = extra_args + ['@INPUT@', '@OUTPUT@'] suffix = 'o' res_files = mesonlib.stringlistify(args) res_kwargs = {'output' : '@BASENAME@.' + suffix, 'arguments': res_args} res_gen = build.Generator([rescomp], res_kwargs) res_output = build.GeneratedList(res_gen) [res_output.add_file(os.path.join(state.subdir, a)) for a in res_files] return res_output