mirror of https://github.com/xemu-project/xemu.git
meson: pick libfdt from common_ss when building target-specific files
Avoid having to list dependencies such as libfdt twice, both on common_ss and specific_ss. Instead, just take all the dependencies in common_ss and allow the target-specific libqemu-*.fa library to use them. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
6bd92a7c62
commit
727bb5b477
|
@ -1,5 +1,5 @@
|
||||||
arm_ss = ss.source_set()
|
arm_ss = ss.source_set()
|
||||||
arm_ss.add(files('boot.c'), fdt)
|
arm_ss.add(files('boot.c'))
|
||||||
arm_ss.add(when: 'CONFIG_ARM_VIRT', if_true: files('virt.c'))
|
arm_ss.add(when: 'CONFIG_ARM_VIRT', if_true: files('virt.c'))
|
||||||
arm_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-acpi-build.c'))
|
arm_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-acpi-build.c'))
|
||||||
arm_ss.add(when: 'CONFIG_DIGIC', if_true: files('digic_boards.c'))
|
arm_ss.add(when: 'CONFIG_DIGIC', if_true: files('digic_boards.c'))
|
||||||
|
|
|
@ -3,7 +3,7 @@ loongarch_ss.add(files(
|
||||||
'fw_cfg.c',
|
'fw_cfg.c',
|
||||||
'boot.c',
|
'boot.c',
|
||||||
))
|
))
|
||||||
loongarch_ss.add(when: 'CONFIG_LOONGARCH_VIRT', if_true: [files('virt.c'), fdt])
|
loongarch_ss.add(when: 'CONFIG_LOONGARCH_VIRT', if_true: files('virt.c'))
|
||||||
loongarch_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-build.c'))
|
loongarch_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi-build.c'))
|
||||||
|
|
||||||
hw_arch += {'loongarch': loongarch_ss}
|
hw_arch += {'loongarch': loongarch_ss}
|
||||||
|
|
|
@ -9,7 +9,7 @@ if 'CONFIG_TCG' in config_all_accel
|
||||||
mips_ss.add(when: 'CONFIG_JAZZ', if_true: files('jazz.c'))
|
mips_ss.add(when: 'CONFIG_JAZZ', if_true: files('jazz.c'))
|
||||||
mips_ss.add(when: 'CONFIG_MIPSSIM', if_true: files('mipssim.c'))
|
mips_ss.add(when: 'CONFIG_MIPSSIM', if_true: files('mipssim.c'))
|
||||||
mips_ss.add(when: 'CONFIG_FULOONG', if_true: files('fuloong2e.c'))
|
mips_ss.add(when: 'CONFIG_FULOONG', if_true: files('fuloong2e.c'))
|
||||||
mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: [files('boston.c'), fdt])
|
mips_ss.add(when: 'CONFIG_MIPS_BOSTON', if_true: files('boston.c'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
hw_arch += {'mips': mips_ss}
|
hw_arch += {'mips': mips_ss}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
openrisc_ss = ss.source_set()
|
openrisc_ss = ss.source_set()
|
||||||
openrisc_ss.add(files('cputimer.c'))
|
openrisc_ss.add(files('cputimer.c'))
|
||||||
openrisc_ss.add(files('boot.c'))
|
openrisc_ss.add(files('boot.c'))
|
||||||
openrisc_ss.add(when: 'CONFIG_OR1K_SIM', if_true: [files('openrisc_sim.c'), fdt])
|
openrisc_ss.add(when: 'CONFIG_OR1K_SIM', if_true: files('openrisc_sim.c'))
|
||||||
openrisc_ss.add(when: 'CONFIG_OR1K_VIRT', if_true: [files('virt.c'), fdt])
|
openrisc_ss.add(when: 'CONFIG_OR1K_VIRT', if_true: files('virt.c'))
|
||||||
|
|
||||||
hw_arch += {'openrisc': openrisc_ss}
|
hw_arch += {'openrisc': openrisc_ss}
|
||||||
|
|
|
@ -3,9 +3,7 @@ ppc_ss.add(files(
|
||||||
'ppc.c',
|
'ppc.c',
|
||||||
'ppc_booke.c',
|
'ppc_booke.c',
|
||||||
))
|
))
|
||||||
ppc_ss.add(when: 'CONFIG_FDT_PPC', if_true: [files(
|
ppc_ss.add(when: 'CONFIG_FDT_PPC', if_true: files('fdt.c'))
|
||||||
'fdt.c',
|
|
||||||
), fdt])
|
|
||||||
ppc_ss.add(when: 'CONFIG_FW_CFG_PPC', if_true: files('fw_cfg.c'))
|
ppc_ss.add(when: 'CONFIG_FW_CFG_PPC', if_true: files('fw_cfg.c'))
|
||||||
|
|
||||||
# IBM pSeries (sPAPR)
|
# IBM pSeries (sPAPR)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
riscv_ss = ss.source_set()
|
riscv_ss = ss.source_set()
|
||||||
riscv_ss.add(files('boot.c'), fdt)
|
riscv_ss.add(files('boot.c'))
|
||||||
riscv_ss.add(when: 'CONFIG_RISCV_NUMA', if_true: files('numa.c'))
|
riscv_ss.add(when: 'CONFIG_RISCV_NUMA', if_true: files('numa.c'))
|
||||||
riscv_ss.add(files('riscv_hart.c'))
|
riscv_ss.add(files('riscv_hart.c'))
|
||||||
riscv_ss.add(when: 'CONFIG_OPENTITAN', if_true: files('opentitan.c'))
|
riscv_ss.add(when: 'CONFIG_OPENTITAN', if_true: files('opentitan.c'))
|
||||||
|
|
14
meson.build
14
meson.build
|
@ -3867,15 +3867,23 @@ foreach target : target_dirs
|
||||||
|
|
||||||
target_common = common_ss.apply(config_target, strict: false)
|
target_common = common_ss.apply(config_target, strict: false)
|
||||||
objects = common_all.extract_objects(target_common.sources())
|
objects = common_all.extract_objects(target_common.sources())
|
||||||
deps = target_common.dependencies()
|
arch_deps += target_common.dependencies()
|
||||||
|
|
||||||
target_specific = specific_ss.apply(config_target, strict: false)
|
target_specific = specific_ss.apply(config_target, strict: false)
|
||||||
arch_srcs += target_specific.sources()
|
arch_srcs += target_specific.sources()
|
||||||
arch_deps += target_specific.dependencies()
|
arch_deps += target_specific.dependencies()
|
||||||
|
|
||||||
|
# allow using headers from the dependencies but do not include the sources,
|
||||||
|
# because this emulator only needs those in "objects". For external
|
||||||
|
# dependencies, the full dependency is included below in the executable.
|
||||||
|
lib_deps = []
|
||||||
|
foreach dep : arch_deps
|
||||||
|
lib_deps += dep.partial_dependency(compile_args: true, includes: true)
|
||||||
|
endforeach
|
||||||
|
|
||||||
lib = static_library('qemu-' + target,
|
lib = static_library('qemu-' + target,
|
||||||
sources: arch_srcs + genh,
|
sources: arch_srcs + genh,
|
||||||
dependencies: arch_deps,
|
dependencies: lib_deps,
|
||||||
objects: objects,
|
objects: objects,
|
||||||
include_directories: target_inc,
|
include_directories: target_inc,
|
||||||
c_args: c_args,
|
c_args: c_args,
|
||||||
|
@ -3923,7 +3931,7 @@ foreach target : target_dirs
|
||||||
emulator = executable(exe_name, exe['sources'],
|
emulator = executable(exe_name, exe['sources'],
|
||||||
install: true,
|
install: true,
|
||||||
c_args: c_args,
|
c_args: c_args,
|
||||||
dependencies: arch_deps + deps + exe['dependencies'],
|
dependencies: arch_deps + exe['dependencies'],
|
||||||
objects: lib.extract_all_objects(recursive: true),
|
objects: lib.extract_all_objects(recursive: true),
|
||||||
link_depends: [block_syms, qemu_syms],
|
link_depends: [block_syms, qemu_syms],
|
||||||
link_args: link_args,
|
link_args: link_args,
|
||||||
|
|
Loading…
Reference in New Issue