summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihailJP <mihailjp@gmail.com>2024-11-09 22:12:38 +0900
committerEli Schwartz <eschwartz93@gmail.com>2024-11-19 10:55:34 -0500
commitfb2c3b348cd468db2a520c33d3ac4c6d07ea0407 (patch)
tree13dee44ee99e61b50c2e0b91c87babc526fbd775
parent33376efc4c1daf53c5509ea5fa7611b18d10416a (diff)
downloadmeson-fb2c3b348cd468db2a520c33d3ac4c6d07ea0407.tar.gz
make external_project work again on MinGW
On Python 3.12, self.prefix.relative_to(self.prefix.drive) no longer works and raises error like: ``` ValueError: 'C:/msys64/mingw64' is not in the subpath of 'C:' ```
-rw-r--r--mesonbuild/modules/external_project.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/mesonbuild/modules/external_project.py b/mesonbuild/modules/external_project.py
index 9e283e026..57a1819a3 100644
--- a/mesonbuild/modules/external_project.py
+++ b/mesonbuild/modules/external_project.py
@@ -19,7 +19,7 @@ from ..interpreterbase import FeatureNew
from ..interpreter.type_checking import ENV_KW, DEPENDS_KW
from ..interpreterbase.decorators import ContainerTypeInfo, KwargInfo, typed_kwargs, typed_pos_args
from ..mesonlib import (EnvironmentException, MesonException, Popen_safe, MachineChoice,
- get_variable_regex, do_replacement, join_args)
+ get_variable_regex, do_replacement, join_args, relpath)
from ..options import OptionKey
if T.TYPE_CHECKING:
@@ -93,10 +93,10 @@ class ExternalProject(NewExtensionModule):
# will install files into "c:/bar/c:/foo" which is an invalid path.
# Work around that issue by removing the drive from prefix.
if self.prefix.drive:
- self.prefix = self.prefix.relative_to(self.prefix.drive)
+ self.prefix = Path(relpath(self.prefix, self.prefix.drive))
# self.prefix is an absolute path, so we cannot append it to another path.
- self.rel_prefix = self.prefix.relative_to(self.prefix.root)
+ self.rel_prefix = Path(relpath(self.prefix, self.prefix.root))
self._configure(state)