parent
44a340a4fe
commit
623a8010e6
4 changed files with 55 additions and 0 deletions
@ -0,0 +1,5 @@ |
||||
int func_in_foo(); |
||||
|
||||
int main(int argc, char **argv) { |
||||
return func_in_foo(); |
||||
} |
@ -0,0 +1,3 @@ |
||||
int func_in_foo() { |
||||
return 0; |
||||
} |
@ -0,0 +1,24 @@ |
||||
#!/usr/bin/env python3 |
||||
|
||||
# Mimic a binary that generates a static library |
||||
|
||||
import os |
||||
import subprocess |
||||
import sys |
||||
|
||||
if __name__ == '__main__': |
||||
if len(sys.argv) != 4: |
||||
print(sys.argv[0], 'compiler input_file output_file') |
||||
sys.exit(1) |
||||
compiler = sys.argv[1] |
||||
ifile = sys.argv[2] |
||||
ofile = sys.argv[3] |
||||
tmp = ifile + '.o' |
||||
if compiler.endswith('cl'): |
||||
subprocess.check_call([compiler, '/nologo', '/MDd', '/Fo' + tmp, '/c', ifile]) |
||||
subprocess.check_call(['lib', '/nologo', '/OUT:' + ofile, tmp]) |
||||
else: |
||||
subprocess.check_call([compiler, '-c', ifile, '-o', tmp]) |
||||
subprocess.check_call(['ar', 'csr', ofile, tmp]) |
||||
|
||||
os.unlink(tmp) |
@ -0,0 +1,23 @@ |
||||
project('link_with custom target', ['c']) |
||||
|
||||
# |
||||
# libraries created by a custom_target currently can be used in sources: (see |
||||
# common/100 manygen/ for an example of that), but not in link_with: |
||||
# |
||||
|
||||
lib_generator = find_program('lib_generator.py') |
||||
|
||||
cc = meson.get_compiler('c').cmd_array().get(-1) |
||||
|
||||
libfoo_target = custom_target( |
||||
'libfoo', |
||||
input: ['foo.c'], |
||||
output: ['libfoo.a'], |
||||
command: [lib_generator, cc, '@INPUT@', '@OUTPUT@'] |
||||
) |
||||
|
||||
libfoo = declare_dependency( |
||||
link_with: libfoo_target, |
||||
) |
||||
|
||||
executable('demo', ['demo.c'], dependencies: [libfoo]) |
Loading…
Reference in new issue