cppython
Advanced tools
@@ -9,2 +9,3 @@ """Conan Provider Plugin | ||
| import os | ||
| import shutil | ||
| from logging import Logger, getLogger | ||
@@ -49,4 +50,3 @@ from pathlib import Path | ||
| # Initialize cmake_binary with system default. It may be overridden during sync. | ||
| self._cmake_binary = 'cmake' | ||
| self._cmake_binary: str | None = None | ||
@@ -179,3 +179,3 @@ @staticmethod | ||
| # Add cmake binary configuration if specified | ||
| if self._cmake_binary and self._cmake_binary != 'cmake': | ||
| if self._cmake_binary: | ||
| # Quote the path if it contains spaces | ||
@@ -245,2 +245,19 @@ cmake_path = f'"{self._cmake_binary}"' if ' ' in self._cmake_binary else self._cmake_binary | ||
| @staticmethod | ||
| def _resolve_cmake_binary(cmake_path: Path | str | None) -> str | None: | ||
| """Resolve the cmake binary path. | ||
| If an explicit path is provided, use it. Otherwise, try to find cmake | ||
| in the current Python environment (venv) to ensure we use the same | ||
| cmake version for all operations including dependency builds. | ||
| Args: | ||
| cmake_path: Explicit cmake path, or None to auto-detect | ||
| Returns: | ||
| Resolved cmake path as string, or None if not found | ||
| """ | ||
| resolved = cmake_path or shutil.which('cmake') | ||
| return str(Path(resolved).resolve()) if resolved else None | ||
| def _sync_with_cmake(self, consumer: SyncConsumer) -> CMakeSyncData: | ||
@@ -257,6 +274,3 @@ """Synchronize with CMake generator and create sync data. | ||
| if isinstance(consumer, CMakeGenerator) and not os.environ.get('CMAKE_BINARY'): | ||
| # Only override if not already set from environment variable | ||
| # Convert Path to string, or use 'cmake' if None | ||
| cmake_path = consumer.data.cmake_binary | ||
| self._cmake_binary = str(cmake_path) if cmake_path else 'cmake' | ||
| self._cmake_binary = self._resolve_cmake_binary(consumer.data.cmake_binary) | ||
@@ -309,3 +323,3 @@ return self._create_cmake_sync_data() | ||
| # Add cmake binary configuration if specified | ||
| if self._cmake_binary and self._cmake_binary != 'cmake': | ||
| if self._cmake_binary: | ||
| # Quote the path if it contains spaces | ||
@@ -312,0 +326,0 @@ cmake_path = f'"{self._cmake_binary}"' if ' ' in self._cmake_binary else self._cmake_binary |
+1
-1
| Metadata-Version: 2.1 | ||
| Name: cppython | ||
| Version: 0.9.13 | ||
| Version: 0.9.14.dev1 | ||
| Summary: A Python management solution for C++ dependencies | ||
@@ -5,0 +5,0 @@ Author-Email: Synodic Software <contact@synodic.software> |
+1
-1
@@ -17,3 +17,3 @@ [project] | ||
| ] | ||
| version = "0.9.13" | ||
| version = "0.9.14.dev1" | ||
@@ -20,0 +20,0 @@ [project.license] |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
327690
0.11%7227
0.14%