File: meson.build

package info (click to toggle)
numpy 1%3A2.2.4%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 83,420 kB
  • sloc: python: 248,499; asm: 232,365; ansic: 216,874; cpp: 135,657; f90: 1,540; sh: 938; fortran: 558; makefile: 409; sed: 139; xml: 109; java: 92; perl: 79; cs: 54; javascript: 53; objc: 29; lex: 13; yacc: 9
file content (23 lines) | stat: -rw-r--r-- 1,183 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Test that declare_dependency(objects: ...) fixes issues with duplicated
# objects in the final link line, thanks to deduplication of dependencies.
# The commented declare_dependency() invocation using link_whole instead
# fails thusly:
#
#     ar csrDT libbar.a libfoo.a.p/foo.c.o libbar.a.p/bar.c.o
#     ar csrDT libfoo.a libfoo.a.p/foo.c.o
#     cc  -o prog prog.p/prog.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--whole-archive -Wl,--start-group libfoo.a libbar.a -Wl,--end-group -Wl,--no-whole-archive
#     /usr/bin/ld: libfoo.a.p/foo.c.o: in function `foo':
#     ../foo.c:3: multiple definition of `foo'; libfoo.a.p/foo.c.o:../foo.c:3: first defined here

project('Transitive declare_dependency(objects)', 'c')

libfoo = static_library('foo', 'foo.c')
#foo = declare_dependency(link_whole: libfoo)
foo = declare_dependency(objects: libfoo.extract_all_objects(recursive: true))

libbar = static_library('bar', 'bar.c', dependencies: foo)

#bar = declare_dependency(link_whole: libbar, dependencies: foo)
bar = declare_dependency(objects: libbar.extract_all_objects(recursive: true), dependencies: foo)

executable('prog', sources: files('prog.c'), dependencies: [foo, bar])