summaryrefslogtreecommitdiff
path: root/mesonbuild/modules/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/modules/__init__.py')
-rw-r--r--mesonbuild/modules/__init__.py54
1 files changed, 27 insertions, 27 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index ddb5e3e6c..c0970294c 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -56,6 +56,33 @@ class ModuleState:
self.target_machine = interpreter.builtin['target_machine'].held_object
self.current_node = interpreter.current_node
+ def get_include_args(self, include_dirs, prefix='-I'):
+ if not include_dirs:
+ return []
+
+ srcdir = self.environment.get_source_dir()
+ builddir = self.environment.get_build_dir()
+
+ dirs_str = []
+ for dirs in unholder(include_dirs):
+ if isinstance(dirs, str):
+ dirs_str += [f'{prefix}{dirs}']
+ continue
+
+ # Should be build.IncludeDirs object.
+ basedir = dirs.get_curdir()
+ for d in dirs.get_incdirs():
+ expdir = os.path.join(basedir, d)
+ srctreedir = os.path.join(srcdir, expdir)
+ buildtreedir = os.path.join(builddir, expdir)
+ dirs_str += [f'{prefix}{buildtreedir}',
+ f'{prefix}{srctreedir}']
+ for d in dirs.get_extra_build_dirs():
+ dirs_str += [f'{prefix}{d}']
+
+ return dirs_str
+
+
class ModuleObject:
"""Base class for all objects returned by modules
"""
@@ -71,33 +98,6 @@ class ModuleObject:
class ExtensionModule(ModuleObject):
pass
-def get_include_args(include_dirs, prefix='-I'):
- '''
- Expand include arguments to refer to the source and build dirs
- by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution
- '''
- if not include_dirs:
- return []
-
- dirs_str = []
- for dirs in unholder(include_dirs):
- if isinstance(dirs, str):
- dirs_str += [f'{prefix}{dirs}']
- continue
-
- # Should be build.IncludeDirs object.
- basedir = dirs.get_curdir()
- for d in dirs.get_incdirs():
- expdir = os.path.join(basedir, d)
- srctreedir = os.path.join('@SOURCE_ROOT@', expdir)
- buildtreedir = os.path.join('@BUILD_ROOT@', expdir)
- dirs_str += [f'{prefix}{buildtreedir}',
- f'{prefix}{srctreedir}']
- for d in dirs.get_extra_build_dirs():
- dirs_str += [f'{prefix}{d}']
-
- return dirs_str
-
def is_module_library(fname):
'''
Check if the file is a library-like file generated by a module-specific