diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-26 01:12:39 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-26 01:12:39 +0200 |
commit | 2af66e54781c2592f22c99b1d72d35a7b758a32f (patch) | |
tree | 4cab11b2ea1b8908c68ac0989fe1a4f7acd6ee67 | |
parent | 5c0d1cc7c02ac82258f2cac8c8e06a8a7324e724 (diff) | |
download | meson-2af66e54781c2592f22c99b1d72d35a7b758a32f.zip meson-2af66e54781c2592f22c99b1d72d35a7b758a32f.tar.gz meson-2af66e54781c2592f22c99b1d72d35a7b758a32f.tar.bz2 |
Filter header files from built sources.
-rwxr-xr-x | environment.py | 6 | ||||
-rwxr-xr-x | interpreter.py | 8 | ||||
-rw-r--r-- | test cases/22 header in file list/builder.txt | 4 | ||||
-rw-r--r-- | test cases/22 header in file list/header.h | 1 | ||||
-rw-r--r-- | test cases/22 header in file list/prog.c | 1 |
5 files changed, 18 insertions, 2 deletions
diff --git a/environment.py b/environment.py index 49c3a3e..d6ad403 100755 --- a/environment.py +++ b/environment.py @@ -152,6 +152,8 @@ class ArLinker(): def get_output_flags(self): return [] +header_suffixes = ['h', 'hh', 'hpp', 'hxx', 'H'] + class Environment(): def __init__(self, source_dir, build_dir, options): self.source_dir = source_dir @@ -176,6 +178,10 @@ class Environment(): if evar in os.environ: return os.environ[evar].split() return self.default_c + + def is_header(self, fname): + suffix = fname.split('.')[-1] + return suffix in header_suffixes def detect_c_compiler(self): exelist = self.get_c_compiler_exelist() diff --git a/interpreter.py b/interpreter.py index e71f76a..13d3c8f 100755 --- a/interpreter.py +++ b/interpreter.py @@ -442,8 +442,12 @@ class Interpreter(): for a in args: if not isinstance(a, str): raise InvalidArguments('Line %d: Argument %s is not a string.' % (node.lineno(), str(a))) - name= args[0] - sources = args[1:] + name = args[0] + sources = [] + for s in args[1:]: + print(s) + if not self.environment.is_header(s): + sources.append(s) if len(sources) == 0: raise InvalidArguments('Line %d: target has no source files.' % node.lineno()) if name in self.build.targets: diff --git a/test cases/22 header in file list/builder.txt b/test cases/22 header in file list/builder.txt new file mode 100644 index 0000000..09c302c --- /dev/null +++ b/test cases/22 header in file list/builder.txt @@ -0,0 +1,4 @@ +project('header in file list', 'c') + +exe = executable('prog', 'prog.c', 'header.h') +add_test('basic', exe) diff --git a/test cases/22 header in file list/header.h b/test cases/22 header in file list/header.h new file mode 100644 index 0000000..354499a --- /dev/null +++ b/test cases/22 header in file list/header.h @@ -0,0 +1 @@ +#include<stdio.h> diff --git a/test cases/22 header in file list/prog.c b/test cases/22 header in file list/prog.c new file mode 100644 index 0000000..0314ff1 --- /dev/null +++ b/test cases/22 header in file list/prog.c @@ -0,0 +1 @@ +int main(int argc, char **argv) { return 0; } |