Fix unity builds (#12452)
* unity builds: correct integer ceiling division * edge case failure with unity builds: - static archive bar that gets installed, that links with another static archive foo that does not get installed - the number of files in static archive foo is divisible by unity_size would yield an error with ninja: ninja: error: 'subprojects/foo/src/libfoo.a.p/meson-generated_foo-unity1.cpp.o', needed by 'src/libbar.a', missing and no known rule to make it * unity builds: test for build failure when #files is divisible by unity_sizepull/11343/merge
parent
2b49408395
commit
8928669a69
6 changed files with 31 additions and 1 deletions
@ -0,0 +1,13 @@ |
||||
project('unity', 'c', |
||||
default_options : [ |
||||
'unity_size=2']) |
||||
|
||||
if get_option('unity') != 'on' |
||||
error('MESON_SKIP_TEST: unity builds not enabled') |
||||
endif |
||||
|
||||
slib_notinstalled = static_library('slib_notinstalled', |
||||
# test depends on the number of files being divisible by unity_size |
||||
['slib1.c', 'slib2.c']) |
||||
|
||||
slib_installed = static_library('slib_installed', ['slib1.c', 'slib2.c'], link_with : slib_notinstalled, install : true) |
@ -0,0 +1,6 @@ |
||||
int func1(void); |
||||
int func2(void); |
||||
|
||||
int static_lib_func(void) { |
||||
return func1() + func2(); |
||||
} |
@ -0,0 +1,3 @@ |
||||
int func1(void) { |
||||
return 1; |
||||
} |
@ -0,0 +1,3 @@ |
||||
int func2(void) { |
||||
return 2; |
||||
} |
@ -0,0 +1,5 @@ |
||||
{ |
||||
"installed": [ |
||||
{"type": "file", "file": "usr/lib/libslib_installed.a"} |
||||
] |
||||
} |
Loading…
Reference in new issue