On 05/01/21 15:37, Roman Bolshakov wrote:
Does it work if you do:
crypto_ss.add(authz, qom)
libcrypto = static_library('crypto', crypto_ss.sources() + genh,
dependencies: crypto_ss.dependencies(),
...)
crypto = declare_dependency(link_whole: libcrypto,
dependencies: crypto_ss.dependencies())
Ok, so the final attempt is a mix of the three :) Keep the link_whole
dependencies in the declare_dependency, and add the sourceset
dependencies there too.
diff --git a/meson.build b/meson.build
index e9bf290966..774df4db8e 100644
--- a/meson.build
+++ b/meson.build
@@ -1904,7 +1904,8 @@ libqom = static_library('qom', qom_ss.sources() +
genh,
dependencies: [qom_ss.dependencies()],
name_suffix: 'fa')
-qom = declare_dependency(link_whole: libqom)
+qom = declare_dependency(link_whole: libqom,
+ dependencies: [qom_ss.dependencies()])
authz_ss = authz_ss.apply(config_host, strict: false)
libauthz = static_library('authz', authz_ss.sources() + genh,
@@ -1913,7 +1914,7 @@ libauthz = static_library('authz',
authz_ss.sources() + genh,
build_by_default: false)
authz = declare_dependency(link_whole: libauthz,
- dependencies: qom)
+ dependencies: [authz_ss.dependencies(), qom])
crypto_ss = crypto_ss.apply(config_host, strict: false)
libcrypto = static_library('crypto', crypto_ss.sources() + genh,
@@ -1922,7 +1923,7 @@ libcrypto = static_library('crypto',
crypto_ss.sources() + genh,
build_by_default: false)
crypto = declare_dependency(link_whole: libcrypto,
- dependencies: [authz, qom])
+ dependencies: [crypto_ss.dependencies(),
authz, qom])
io_ss = io_ss.apply(config_host, strict: false)
libio = static_library('io', io_ss.sources() + genh,
@@ -1931,13 +1932,14 @@ libio = static_library('io', io_ss.sources() + genh,
name_suffix: 'fa',
build_by_default: false)
-io = declare_dependency(link_whole: libio, dependencies: [crypto, qom])
+io = declare_dependency(link_whole: libio,
+ dependencies: [io_ss.dependencies(), crypto, qom])
libmigration = static_library('migration', sources: migration_files +
genh,
name_suffix: 'fa',
build_by_default: false)
migration = declare_dependency(link_with: libmigration,
- dependencies: [zlib, qom, io])
+ dependencies: [qom, io])
softmmu_ss.add(migration)
block_ss = block_ss.apply(config_host, strict: false)
@@ -1949,7 +1951,7 @@ libblock = static_library('block',
block_ss.sources() + genh,
block = declare_dependency(link_whole: [libblock],
link_args: '@block.syms',
- dependencies: [crypto, io])
+ dependencies: [block_ss.dependencies(),
crypto, io])
blockdev_ss = blockdev_ss.apply(config_host, strict: false)
libblockdev = static_library('blockdev', blockdev_ss.sources() + genh,
@@ -1958,7 +1960,7 @@ libblockdev = static_library('blockdev',
blockdev_ss.sources() + genh,
build_by_default: false)
blockdev = declare_dependency(link_whole: [libblockdev],
- dependencies: [block])
+ dependencies:
[blockdev_ss.dependencies(), block])
qmp_ss = qmp_ss.apply(config_host, strict: false)
libqmp = static_library('qmp', qmp_ss.sources() + genh,
@@ -1966,7 +1968,8 @@ libqmp = static_library('qmp', qmp_ss.sources() +
genh,
name_suffix: 'fa',
build_by_default: false)
-qmp = declare_dependency(link_whole: [libqmp])
+qmp = declare_dependency(link_whole: [libqmp],
+ dependencies: qmp_ss.dependencies())
libchardev = static_library('chardev', chardev_ss.sources() + genh,
name_suffix: 'fa',
diff --git a/migration/meson.build b/migration/meson.build
index 9645f44005..e1f237b5db 100644
--- a/migration/meson.build
+++ b/migration/meson.build
@@ -9,6 +9,7 @@ migration_files = files(
)
softmmu_ss.add(migration_files)
+softmmu_ss.add(zlib)
softmmu_ss.add(files(
'block-dirty-bitmap.c',
'channel.c',