aboutsummaryrefslogtreecommitdiff
path: root/ninjabackend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-04-21 16:27:58 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-04-21 16:27:58 +0300
commitbf9b5d7b726c9388e5204fb44969fd11730944c6 (patch)
tree9391fbac79ad1e5dfd9059c9a8bcfce5e00e6db5 /ninjabackend.py
parenta92fcb711b5b56ee6858d73dc90eda0e1e5d91a4 (diff)
downloadmeson-bf9b5d7b726c9388e5204fb44969fd11730944c6.zip
meson-bf9b5d7b726c9388e5204fb44969fd11730944c6.tar.gz
meson-bf9b5d7b726c9388e5204fb44969fd11730944c6.tar.bz2
The first step in a major refactoring starts by adding a new layer of abstraction.
Diffstat (limited to 'ninjabackend.py')
-rw-r--r--ninjabackend.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/ninjabackend.py b/ninjabackend.py
index adfc59f..2c550fd 100644
--- a/ninjabackend.py
+++ b/ninjabackend.py
@@ -17,6 +17,7 @@ import environment, mesonlib
import build
import mlog
import dependencies
+from mesonlib import File
from meson_install import InstallData
from build import InvalidArguments
from coredata import MesonException
@@ -1107,10 +1108,15 @@ rule FORTRAN_DEP_HACK
rel_src = os.path.join(self.get_target_private_dir(target), src)
abs_src = os.path.join(self.environment.get_source_dir(), rel_src)
else:
- rel_src = os.path.join(self.build_to_src, target.get_source_subdir(), src)
+ if isinstance(src, File): # FIXME, accept only Files.
+ rel_src = src.rel_to_builddir(self.build_to_src)
+ else:
+ rel_src = os.path.join(self.build_to_src, target.get_source_subdir(), src)
abs_src = os.path.join(self.environment.get_build_dir(), rel_src)
if isinstance(src, RawFilename):
src_filename = src.fname
+ elif isinstance(src, File):
+ src_filename = src.fname
elif os.path.isabs(src):
src_filename = os.path.basename(src)
else: