diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2019-09-09 16:00:56 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-09-09 16:06:18 -0700 |
commit | afc6c935f1b52ca74d96f1ea2cbfb3e47ffb7fd4 (patch) | |
tree | a334d18490575c1855612fcd5c46481e983653d1 | |
parent | c558647fdf38f6d881ca924f5930c05c015561c9 (diff) | |
download | pixman-afc6c935f1b52ca74d96f1ea2cbfb3e47ffb7fd4.tar.gz |
meson: don't use link_with for library()
Meson doesn't do the expected thing when library() creates a static
library. Instead of combining the libraries together into a single
archive it effectively discards them, resulting in missing symbols.
To work around this we manually unpack the archives and shove the .o
files into the final library. This doesn't affect the shared library at
all, but makes the static library have the necessary symbols
Fixes #33
-rw-r--r-- | pixman/meson.build | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/pixman/meson.build b/pixman/meson.build index 7b66827..31be9d2 100644 --- a/pixman/meson.build +++ b/pixman/meson.build @@ -97,10 +97,17 @@ pixman_files = files( 'pixman-utils.c', ) +# We cannot use 'link_with' or 'link_whole' because meson wont do the right +# thing for static archives. +_obs = [] +foreach l : pixman_simd_libs + _obs += l.extract_all_objects() +endforeach + libpixman = library( 'pixman-1', [pixman_files, config_h, version_h], - link_with : [pixman_simd_libs], + objects: _obs, dependencies : [dep_m, dep_threads], version : meson.project_version(), install : true, |