Skip to content

Commit 939f06b

Browse files
committed
Tool Directory
1 parent 5738845 commit 939f06b

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

cppython/plugins/conan/resolution.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import Any
44

55
from cppython.core.schema import CorePluginData
6-
from cppython.plugins.conan.schema import ConanData
6+
from cppython.plugins.conan.schema import ConanConfiguration, ConanData
77

88

99
def resolve_conan_data(data: dict[str, Any], core_data: CorePluginData) -> ConanData:
@@ -16,4 +16,13 @@ def resolve_conan_data(data: dict[str, Any], core_data: CorePluginData) -> Conan
1616
Returns:
1717
The resolved conan data
1818
"""
19-
return ConanData()
19+
parsed_data = ConanConfiguration(**data)
20+
root_directory = core_data.project_data.pyproject_file.parent.absolute()
21+
22+
modified_tool_directory = parsed_data.tool_directory
23+
24+
# Add the project location to all relative paths
25+
if not modified_tool_directory.is_absolute():
26+
modified_tool_directory = root_directory / modified_tool_directory
27+
28+
return ConanData(tool_directory=modified_tool_directory)

cppython/plugins/conan/schema.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
11
"""TODO"""
22

3+
from pathlib import Path
4+
from typing import Annotated
5+
6+
from pydantic import Field
7+
from pydantic.types import DirectoryPath
8+
39
from cppython.core.schema import CPPythonModel
410

511

612
class ConanData(CPPythonModel):
713
"""Resolved conan data"""
14+
15+
tool_directory: Annotated[DirectoryPath, Field()]
16+
17+
18+
class ConanConfiguration(CPPythonModel):
19+
"""Raw conan data"""
20+
21+
tool_directory: Annotated[Path, Field(default=Path(), description='The directory to place the configuration files')]

0 commit comments

Comments
 (0)