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