aboutsummaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-04-25 22:13:15 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-04-25 22:13:15 +0300
commit77e9a245893909e33c753f472e8cee13174921c2 (patch)
treee1f9d25b997eca289f8350239f8cf2ac31fff376 /build.py
parentc06c9ea83e7584539e1a09ba3acd8035444d22c9 (diff)
downloadmeson-77e9a245893909e33c753f472e8cee13174921c2.zip
meson-77e9a245893909e33c753f472e8cee13174921c2.tar.gz
meson-77e9a245893909e33c753f472e8cee13174921c2.tar.bz2
Can specify extra files that show up in IDEs as parts of a target.
Diffstat (limited to 'build.py')
-rw-r--r--build.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/build.py b/build.py
index 3e7c251..2608582 100644
--- a/build.py
+++ b/build.py
@@ -125,9 +125,10 @@ class BuildTarget():
self.pch = {}
self.extra_args = {}
self.generated = []
+ self.extra_files = []
self.process_sourcelist(sources)
self.process_objectlist(objects)
- self.process_kwargs(kwargs)
+ self.process_kwargs(kwargs, environment)
if len(self.sources) == 0 and len(self.generated) == 0:
raise InvalidArguments('Build target %s has no sources.' % name)
@@ -205,7 +206,7 @@ class BuildTarget():
def get_custom_install_dir(self):
return self.custom_install_dir
- def process_kwargs(self, kwargs):
+ def process_kwargs(self, kwargs, environment):
self.copy_kwargs(kwargs)
kwargs.get('modules', [])
self.need_install = kwargs.get('install', self.need_install)
@@ -272,6 +273,16 @@ class BuildTarget():
raise InvalidArguments('Argument gui_app must be boolean.')
elif 'gui_app' in kwargs:
raise InvalidArguments('Argument gui_app can only be used on executables.')
+ extra_files = kwargs.get('extra_files', [])
+ if isinstance(extra_files, str):
+ extra_files = [extra_files]
+ for i in extra_files:
+ if not isinstance(i, str):
+ raise InvalidArguments('Arguments to extra_files must be strings.')
+ trial = os.path.join(environment.get_source_dir(), self.subdir, i)
+ if not(os.path.isfile(trial)):
+ raise InvalidArguments('Tried to add non-existing extra file %s.' % i)
+ self.extra_files = extra_files
def get_subdir(self):
return self.subdir