@@ -58,7 +58,8 @@ class DependencyFactory:
5858 :param extra_kwargs: Additional keyword arguments to add when creating the
5959 DependencyCandidate
6060 :param pkgconfig: A custom PackageConfig lookup to use
61- :param cmake: A custom CMake lookup to use
61+ :param cmake_name: A name to use in a cmake class. Exclusive with :param:`cmake`
62+ :param cmake: A custom CMake lookup to use. Exclusive with :param:`cmake_name`
6263 :param framework: A custom AppleFramework lookup to use
6364 :param configtool: A custom ConfigTool lookup to use. If
6465 DependencyMethods.CONFIG_TOOL is in the `:param:methods` argument,
@@ -73,8 +74,9 @@ class DependencyFactory:
7374
7475 def __init__ (self , name : str , methods : T .List [DependencyMethods ], * ,
7576 extra_kwargs : T .Optional [DependencyObjectKWs ] = None ,
77+ cmake_name : T .Optional [str ] = None ,
7678 pkgconfig : T .Union [DependencyCandidate [PkgConfigDependency ], T .Type [PkgConfigDependency ], None ] = PkgConfigDependency ,
77- cmake : T .Union [DependencyCandidate [CMakeDependency ], T .Type [CMakeDependency ], None ] = CMakeDependency ,
79+ cmake : T .Union [DependencyCandidate [CMakeDependency ], T .Type [CMakeDependency ], None ] = None ,
7880 framework : T .Union [DependencyCandidate [ExtraFrameworkDependency ], T .Type [ExtraFrameworkDependency ], None ] = ExtraFrameworkDependency ,
7981 configtool : T .Union [DependencyCandidate [ConfigToolDependency ], T .Type [ConfigToolDependency ], None ] = None ,
8082 builtin : T .Union [DependencyCandidate [BuiltinDependency ], T .Type [BuiltinDependency ], None ] = None ,
@@ -87,6 +89,14 @@ def __init__(self, name: str, methods: T.List[DependencyMethods], *,
8789 if DependencyMethods .SYSTEM in methods and not system :
8890 raise DependencyException ('A system dependency must have a custom class' )
8991
92+ if cmake_name is not None and cmake is not None :
93+ raise DependencyException ('A most one of `cmake_name` and `cmake` can be provided' )
94+
95+ if cmake_name is not None :
96+ cmake = DependencyCandidate .from_dependency (cmake_name , CMakeDependency )
97+ if cmake is None :
98+ cmake = CMakeDependency
99+
90100 def make (arg : T .Union [DependencyCandidate [DepType ], T .Type [DepType ], None ]) -> T .Optional [DependencyCandidate [DepType ]]:
91101 if arg is None or isinstance (arg , DependencyCandidate ):
92102 return arg
0 commit comments