Build a common static library for a few softmmu files. Signed-off-by: Anton Johansson <a...@rev.ng> --- accel/tcg/meson.build | 57 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 12 deletions(-)
diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index 8783edd06e..420050bdbf 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -1,28 +1,61 @@ -tcg_ss = ss.source_set() +tcg_specific_ss = ss.source_set() +tcg_user_ss = ss.source_set() common_ss.add(when: 'CONFIG_TCG', if_true: files( 'cpu-exec-common.c', )) -tcg_ss.add(files( - 'tcg-all.c', +common_ss.add(when: libdw, if_true: files('debuginfo.c')) + +tcg_specific_ss.add(files( 'cpu-exec.c', + 'translator.c', +)) + +tcg_user_ss.add(files( + 'user-exec.c', + 'translate-all.c', 'tb-maint.c', 'tcg-runtime-gvec.c', 'tcg-runtime.c', - 'translate-all.c', - 'translator.c', + 'tcg-all.c', )) -tcg_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c')) -tcg_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_false: files('user-exec-stub.c')) if get_option('plugins') - tcg_ss.add(files('plugin-gen.c')) + tcg_user_ss.add(files('plugin-gen.c')) endif -tcg_ss.add(when: libdw, if_true: files('debuginfo.c')) -tcg_ss.add(when: 'CONFIG_LINUX', if_true: files('perf.c')) -specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_ss) +tcg_specific_ss.add_all(when: 'CONFIG_USER_ONLY', if_true: tcg_user_ss) +tcg_specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_false: files( + 'user-exec-stub.c' +)) +tcg_specific_ss.add(when: 'CONFIG_LINUX', if_true: files('perf.c')) +specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_specific_ss) -specific_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files( +have_tcg = get_option('tcg').allowed() +tcg_softmmu_ss = ss.source_set() +tcg_softmmu_ss.add(files( 'cputlb.c', + 'translate-all.c', + 'tb-maint.c', + 'tcg-runtime-gvec.c', + 'tcg-runtime.c', + 'tcg-all.c', )) +if get_option('plugins') + tcg_softmmu_ss.add(files('plugin-gen.c')) +endif +tcg_softmmu_ss = tcg_softmmu_ss.apply(config_targetos, strict: false) + +libacceltcg_softmmu = static_library('acceltcg_softmmu', + tcg_softmmu_ss.sources() + genh, + name_suffix: 'fa', + c_args: '-DCONFIG_SOFTMMU', + build_by_default: have_system and + have_tcg) + +if not get_option('tcg').allowed() + subdir_done() +endif +tcg_softmmu = declare_dependency(link_with: libacceltcg_softmmu, + dependencies: tcg_softmmu_ss.dependencies()) +system_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: tcg_softmmu) system_ss.add(when: ['CONFIG_TCG'], if_true: files( 'icount-common.c', -- 2.43.0