Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 1 | if not get_option('tcg').allowed() |
| 2 | subdir_done() |
| 3 | endif |
| 4 | |
Richard Henderson | 104cc2c | 2021-03-08 12:04:33 -0800 | [diff] [blame] | 5 | tcg_ss = ss.source_set() |
| 6 | |
| 7 | tcg_ss.add(files( |
| 8 | 'optimize.c', |
Richard Henderson | 5ff7258 | 2021-03-09 16:24:14 -0600 | [diff] [blame] | 9 | 'region.c', |
Richard Henderson | 104cc2c | 2021-03-08 12:04:33 -0800 | [diff] [blame] | 10 | 'tcg.c', |
| 11 | 'tcg-common.c', |
| 12 | 'tcg-op.c', |
Richard Henderson | a1429ca | 2023-05-14 23:13:46 -0700 | [diff] [blame] | 13 | 'tcg-op-ldst.c', |
Richard Henderson | 104cc2c | 2021-03-08 12:04:33 -0800 | [diff] [blame] | 14 | 'tcg-op-gvec.c', |
| 15 | 'tcg-op-vec.c', |
| 16 | )) |
Richard Henderson | 22f1557 | 2021-03-18 12:46:44 -0600 | [diff] [blame] | 17 | |
| 18 | if get_option('tcg_interpreter') |
| 19 | libffi = dependency('libffi', version: '>=3.0', required: true, |
Paolo Bonzini | 063d511 | 2022-07-14 14:56:58 +0200 | [diff] [blame] | 20 | method: 'pkg-config') |
Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 21 | tcg_ss.add(libffi) |
| 22 | tcg_ss.add(files('tci.c')) |
Richard Henderson | 22f1557 | 2021-03-18 12:46:44 -0600 | [diff] [blame] | 23 | endif |
Richard Henderson | 104cc2c | 2021-03-08 12:04:33 -0800 | [diff] [blame] | 24 | |
Paolo Bonzini | 1f2146f | 2023-08-30 11:39:45 +0200 | [diff] [blame] | 25 | tcg_ss = tcg_ss.apply(config_targetos, strict: false) |
Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 26 | |
| 27 | libtcg_user = static_library('tcg_user', |
| 28 | tcg_ss.sources() + genh, |
| 29 | name_suffix: 'fa', |
| 30 | c_args: '-DCONFIG_USER_ONLY', |
Paolo Bonzini | 4c545a0 | 2023-09-27 15:48:31 +0200 | [diff] [blame] | 31 | build_by_default: false) |
Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 32 | |
| 33 | tcg_user = declare_dependency(link_with: libtcg_user, |
| 34 | dependencies: tcg_ss.dependencies()) |
| 35 | user_ss.add(tcg_user) |
| 36 | |
Philippe Mathieu-Daudé | 7893e42 | 2023-10-04 11:06:20 +0200 | [diff] [blame] | 37 | libtcg_system = static_library('tcg_system', |
Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 38 | tcg_ss.sources() + genh, |
| 39 | name_suffix: 'fa', |
| 40 | c_args: '-DCONFIG_SOFTMMU', |
Paolo Bonzini | 4c545a0 | 2023-09-27 15:48:31 +0200 | [diff] [blame] | 41 | build_by_default: false) |
Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 42 | |
Philippe Mathieu-Daudé | 7893e42 | 2023-10-04 11:06:20 +0200 | [diff] [blame] | 43 | tcg_system = declare_dependency(link_with: libtcg_system, |
Richard Henderson | 514fea9 | 2023-05-22 23:22:36 -0700 | [diff] [blame] | 44 | dependencies: tcg_ss.dependencies()) |
Philippe Mathieu-Daudé | 7893e42 | 2023-10-04 11:06:20 +0200 | [diff] [blame] | 45 | system_ss.add(tcg_system) |