@@ -76,6 +76,21 @@ def resolve_pep621(
7676 return pep621_data
7777
7878
79+ def _resolve_absolute_path (path : Path , root_directory : Path ) -> Path :
80+ """Convert a path to absolute, using root_directory as base for relative paths.
81+
82+ Args:
83+ path: The path to resolve
84+ root_directory: The base directory for relative paths
85+
86+ Returns:
87+ The absolute path
88+ """
89+ if path .is_absolute ():
90+ return path
91+ return root_directory / path
92+
93+
7994class PluginBuildData (CPPythonModel ):
8095 """Data needed to construct CoreData"""
8196
@@ -114,34 +129,20 @@ def resolve_cppython(
114129 """
115130 root_directory = project_data .project_root .absolute ()
116131
117- # Add the base path to all relative paths
132+ # Resolve configuration path
118133 modified_configuration_path = local_configuration .configuration_path
119-
120- # TODO: Grab configuration from the project, user, or system
121134 if modified_configuration_path is None :
122135 modified_configuration_path = root_directory / 'cppython.json'
136+ else :
137+ modified_configuration_path = _resolve_absolute_path (modified_configuration_path , root_directory )
123138
124- if not modified_configuration_path .is_absolute ():
125- modified_configuration_path = root_directory / modified_configuration_path
126-
127- modified_install_path = local_configuration .install_path
128-
129- if not modified_install_path .is_absolute ():
130- modified_install_path = root_directory / modified_install_path
131-
132- modified_tool_path = local_configuration .tool_path
133-
134- if not modified_tool_path .is_absolute ():
135- modified_tool_path = root_directory / modified_tool_path
136-
137- modified_build_path = local_configuration .build_path
138-
139- if not modified_build_path .is_absolute ():
140- modified_build_path = root_directory / modified_build_path
139+ # Resolve other paths
140+ modified_install_path = _resolve_absolute_path (local_configuration .install_path , root_directory )
141+ modified_tool_path = _resolve_absolute_path (local_configuration .tool_path , root_directory )
142+ modified_build_path = _resolve_absolute_path (local_configuration .build_path , root_directory )
141143
142144 modified_provider_name = plugin_build_data .provider_name
143145 modified_generator_name = plugin_build_data .generator_name
144-
145146 modified_scm_name = plugin_build_data .scm_name
146147
147148 # Extract provider and generator configuration data
0 commit comments