aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake/interpreter.py
diff options
context:
space:
mode:
authorSebastian Würl <s.wuerl@mailbox.org>2020-08-30 18:22:45 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2020-08-30 23:53:00 +0200
commit8e004afc90ee82c7e51817d8a7046a894eb90485 (patch)
tree43897649fdc7c92d610299f5367f21965d9a63b5 /mesonbuild/cmake/interpreter.py
parentac8cc2106f319fc93a5e38ffb88a70be09e9ee3e (diff)
downloadmeson-8e004afc90ee82c7e51817d8a7046a894eb90485.zip
meson-8e004afc90ee82c7e51817d8a7046a894eb90485.tar.gz
meson-8e004afc90ee82c7e51817d8a7046a894eb90485.tar.bz2
CMake module: Allow paths of generated CMake sources for include directories
Diffstat (limited to 'mesonbuild/cmake/interpreter.py')
-rw-r--r--mesonbuild/cmake/interpreter.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py
index c2affd0..8a7122d 100644
--- a/mesonbuild/cmake/interpreter.py
+++ b/mesonbuild/cmake/interpreter.py
@@ -432,9 +432,17 @@ class ConverterTarget:
if not os.path.isabs(x):
x = os.path.normpath(os.path.join(self.src_dir, x))
if not os.path.exists(x) and not any([x.endswith(y) for y in obj_suffixes]) and not is_generated:
- mlog.warning('CMake: path', mlog.bold(x), 'does not exist.')
- mlog.warning(' --> Ignoring. This can lead to build errors.')
- return None
+ if (
+ any([os.path.commonpath([x, y]) == x for y in self.generated])
+ and os.path.isabs(x)
+ and os.path.commonpath([x, self.env.get_build_dir()]) == self.env.get_build_dir()
+ ):
+ os.makedirs(x)
+ return os.path.relpath(x, os.path.join(self.env.get_build_dir(), subdir))
+ else:
+ mlog.warning('CMake: path', mlog.bold(x), 'does not exist.')
+ mlog.warning(' --> Ignoring. This can lead to build errors.')
+ return None
if Path(x) in trace.explicit_headers:
return None
if (