diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-06 18:40:32 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-01-06 18:40:32 +0200 |
commit | b9f3ab1c4865f9cba3923b661d999ad75d60d3ee (patch) | |
tree | b8c3a5cc3d4c502a5900bf86cd28777de40251c7 | |
parent | 216a8ca1ea84165adc8088129c6171f5264ba534 (diff) | |
download | meson-b9f3ab1c4865f9cba3923b661d999ad75d60d3ee.zip meson-b9f3ab1c4865f9cba3923b661d999ad75d60d3ee.tar.gz meson-b9f3ab1c4865f9cba3923b661d999ad75d60d3ee.tar.bz2 |
Can link against shared libraries.
-rwxr-xr-x | shellgenerator.py | 8 | ||||
-rw-r--r-- | test cases/6 linkshared/builder.txt | 5 | ||||
-rw-r--r-- | test cases/6 linkshared/libfile.c | 3 | ||||
-rw-r--r-- | test cases/6 linkshared/main.c | 5 |
4 files changed, 17 insertions, 4 deletions
diff --git a/shellgenerator.py b/shellgenerator.py index f115fbe..2f04ecd 100755 --- a/shellgenerator.py +++ b/shellgenerator.py @@ -70,13 +70,13 @@ class ShellGenerator(): outfile.write('\necho Compiling \\"%s\\"\n' % src) outfile.write(' '.join(quoted) + ' || exit\n') return abs_obj - + def build_target_link_arguments(self, deps): args = [] for d in deps: - if not isinstance(d, interpreter.StaticLibrary): - print(d) - raise RuntimeError('Only static libraries supported ATM.') + if not isinstance(d, interpreter.StaticLibrary) and\ + not isinstance(d, interpreter.SharedLibrary): + raise RuntimeError('Tried to link with a non-library target "%s".' % d.get_basename()) args.append(self.get_target_filename(d)) return args diff --git a/test cases/6 linkshared/builder.txt b/test cases/6 linkshared/builder.txt new file mode 100644 index 0000000..fbbac85 --- /dev/null +++ b/test cases/6 linkshared/builder.txt @@ -0,0 +1,5 @@ +project('shared library linking test') +language('c') +lib = shared_library('mylib', 'libfile.c') +exe = executable('prog', 'main.c') +exe.link(lib) diff --git a/test cases/6 linkshared/libfile.c b/test cases/6 linkshared/libfile.c new file mode 100644 index 0000000..6f1c172 --- /dev/null +++ b/test cases/6 linkshared/libfile.c @@ -0,0 +1,3 @@ +int func() { + return 0; +} diff --git a/test cases/6 linkshared/main.c b/test cases/6 linkshared/main.c new file mode 100644 index 0000000..8aadb0c --- /dev/null +++ b/test cases/6 linkshared/main.c @@ -0,0 +1,5 @@ +int func(); + +int main(int argc, char **arg) { + return func(); +} |