From 78f1ef85fd6bf663b7a7d9d06f731f7ce9a6f629 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 8 Jul 2018 10:58:07 -0700 Subject: Add missing method on external library object: type_name() (#3845) For some reason this was missing, but it should've always existed since cc.find_library() returns an object that is internally an ExternalDependency instance. --- docs/markdown/Reference-manual.md | 3 +++ mesonbuild/dependencies/base.py | 2 +- mesonbuild/interpreter.py | 6 ++++++ test cases/common/146 C and CPP link/meson.build | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md index df8531c41..e3ae111dc 100644 --- a/docs/markdown/Reference-manual.md +++ b/docs/markdown/Reference-manual.md @@ -2045,6 +2045,9 @@ library. This object has the following methods: - `found` which returns whether the library was found. + - `type_name()` (*added 0.48.0*) which returns a string describing + the type of the dependency, which will be `library` in this case. + - `partial_dependency(compile_args : false, link_args : false, links : false, includes : false, source : false)` (*added 0.46.0*) returns a new dependency object with the same name, version, found status, diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 63b817a50..0fe702f38 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -995,7 +995,7 @@ class NonExistingExternalProgram(ExternalProgram): class ExternalLibrary(ExternalDependency): def __init__(self, name, link_args, environment, language, silent=False): - super().__init__('external', environment, language, {}) + super().__init__('library', environment, language, {}) self.name = name self.language = language self.is_found = False diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 833e982ef..2c54eaeca 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -483,12 +483,18 @@ class ExternalLibraryHolder(InterpreterObject, ObjectHolder): InterpreterObject.__init__(self) ObjectHolder.__init__(self, el, pv) self.methods.update({'found': self.found_method, + 'type_name': self.type_name_method, 'partial_dependency': self.partial_dependency_method, }) def found(self): return self.held_object.found() + @noPosargs + @permittedKwargs({}) + def type_name_method(self, args, kwargs): + return self.held_object.type_name + @noPosargs @permittedKwargs({}) def found_method(self, args, kwargs): diff --git a/test cases/common/146 C and CPP link/meson.build b/test cases/common/146 C and CPP link/meson.build index 2dd336451..55c1b87a5 100644 --- a/test cases/common/146 C and CPP link/meson.build +++ b/test cases/common/146 C and CPP link/meson.build @@ -44,6 +44,8 @@ configure_file( command : stlib_cmd) libstcppext = cxx.find_library('stcppext', dirs : meson.current_build_dir()) +lib_type_name = libstcppext.type_name() +assert(lib_type_name == 'library', 'type name is ' + lib_type_name) libfooext = shared_library( 'fooext', -- cgit v1.2.3