15e5733e5SMarc-André Lureaublock_ss.add(genh) 25e5733e5SMarc-André Lureaublock_ss.add(files( 35e5733e5SMarc-André Lureau 'accounting.c', 45e5733e5SMarc-André Lureau 'aio_task.c', 55e5733e5SMarc-André Lureau 'amend.c', 65e5733e5SMarc-André Lureau 'backup.c', 75e5733e5SMarc-André Lureau 'blkdebug.c', 85e5733e5SMarc-André Lureau 'blklogwrites.c', 95e5733e5SMarc-André Lureau 'blkverify.c', 105e5733e5SMarc-André Lureau 'block-backend.c', 115e5733e5SMarc-André Lureau 'block-copy.c', 125e5733e5SMarc-André Lureau 'commit.c', 139e03a5e1SKevin Wolf 'copy-before-write.c', 145e5733e5SMarc-André Lureau 'copy-on-read.c', 155e5733e5SMarc-André Lureau 'create.c', 165e5733e5SMarc-André Lureau 'crypto.c', 175e5733e5SMarc-André Lureau 'dirty-bitmap.c', 185e5733e5SMarc-André Lureau 'filter-compress.c', 199e03a5e1SKevin Wolf 'graph-lock.c', 205e5733e5SMarc-André Lureau 'io.c', 215e5733e5SMarc-André Lureau 'mirror.c', 225e5733e5SMarc-André Lureau 'nbd.c', 235e5733e5SMarc-André Lureau 'null.c', 249e03a5e1SKevin Wolf 'preallocate.c', 259e03a5e1SKevin Wolf 'progress_meter.c', 265e5733e5SMarc-André Lureau 'qapi.c', 279e03a5e1SKevin Wolf 'qcow2.c', 285e5733e5SMarc-André Lureau 'qcow2-bitmap.c', 295e5733e5SMarc-André Lureau 'qcow2-cache.c', 305e5733e5SMarc-André Lureau 'qcow2-cluster.c', 315e5733e5SMarc-André Lureau 'qcow2-refcount.c', 325e5733e5SMarc-André Lureau 'qcow2-snapshot.c', 335e5733e5SMarc-André Lureau 'qcow2-threads.c', 345e5733e5SMarc-André Lureau 'quorum.c', 355e5733e5SMarc-André Lureau 'raw-format.c', 36d088e6a4SVladimir Sementsov-Ogievskiy 'reqlist.c', 375e5733e5SMarc-André Lureau 'snapshot.c', 381c14eaabSVladimir Sementsov-Ogievskiy 'snapshot-access.c', 395e5733e5SMarc-André Lureau 'throttle.c', 409e03a5e1SKevin Wolf 'throttle-groups.c', 415e5733e5SMarc-André Lureau 'write-threshold.c', 42*7b1070a7SAkihiko Odaki), zstd, zlib) 435e5733e5SMarc-André Lureau 44de6cd759SPhilippe Mathieu-Daudésystem_ss.add(when: 'CONFIG_TCG', if_true: files('blkreplay.c')) 45de6cd759SPhilippe Mathieu-Daudésystem_ss.add(files('block-ram-registrar.c')) 469b1c9116SClaudio Fontana 47ed793c2cSPaolo Bonziniif get_option('qcow1').allowed() 48ed793c2cSPaolo Bonzini block_ss.add(files('qcow.c')) 49ed793c2cSPaolo Bonziniendif 50ed793c2cSPaolo Bonziniif get_option('vdi').allowed() 51ed793c2cSPaolo Bonzini block_ss.add(files('vdi.c')) 52ed793c2cSPaolo Bonziniendif 5311cea42eSVladimir Sementsov-Ogievskiyif get_option('vhdx').allowed() 5411cea42eSVladimir Sementsov-Ogievskiy block_ss.add(files( 5511cea42eSVladimir Sementsov-Ogievskiy 'vhdx-endian.c', 5611cea42eSVladimir Sementsov-Ogievskiy 'vhdx-log.c', 5711cea42eSVladimir Sementsov-Ogievskiy 'vhdx.c' 5811cea42eSVladimir Sementsov-Ogievskiy )) 5911cea42eSVladimir Sementsov-Ogievskiyendif 6011cea42eSVladimir Sementsov-Ogievskiyif get_option('vmdk').allowed() 6111cea42eSVladimir Sementsov-Ogievskiy block_ss.add(files('vmdk.c')) 6211cea42eSVladimir Sementsov-Ogievskiyendif 6311cea42eSVladimir Sementsov-Ogievskiyif get_option('vpc').allowed() 6411cea42eSVladimir Sementsov-Ogievskiy block_ss.add(files('vpc.c')) 6511cea42eSVladimir Sementsov-Ogievskiyendif 66ed793c2cSPaolo Bonziniif get_option('cloop').allowed() 67ed793c2cSPaolo Bonzini block_ss.add(files('cloop.c')) 68ed793c2cSPaolo Bonziniendif 69ed793c2cSPaolo Bonziniif get_option('bochs').allowed() 70ed793c2cSPaolo Bonzini block_ss.add(files('bochs.c')) 71ed793c2cSPaolo Bonziniendif 72ed793c2cSPaolo Bonziniif get_option('vvfat').allowed() 73ed793c2cSPaolo Bonzini block_ss.add(files('vvfat.c')) 74ed793c2cSPaolo Bonziniendif 75ed793c2cSPaolo Bonziniif get_option('dmg').allowed() 76ed793c2cSPaolo Bonzini block_ss.add(files('dmg.c')) 77ed793c2cSPaolo Bonziniendif 78ed793c2cSPaolo Bonziniif get_option('qed').allowed() 79ed793c2cSPaolo Bonzini block_ss.add(files( 805e5733e5SMarc-André Lureau 'qed-check.c', 815e5733e5SMarc-André Lureau 'qed-cluster.c', 825e5733e5SMarc-André Lureau 'qed-l2-cache.c', 835e5733e5SMarc-André Lureau 'qed-table.c', 845e5733e5SMarc-André Lureau 'qed.c', 855e5733e5SMarc-André Lureau )) 86ed793c2cSPaolo Bonziniendif 87ed793c2cSPaolo Bonziniif get_option('parallels').allowed() 88ed793c2cSPaolo Bonzini block_ss.add(files('parallels.c', 'parallels-ext.c')) 89ed793c2cSPaolo Bonziniendif 90ed793c2cSPaolo Bonzini 91d0cda6f4SPaolo Bonziniif host_os == 'windows' 92dc495494SPaolo Bonzini block_ss.add(files('file-win32.c', 'win32-aio.c')) 93dc495494SPaolo Bonzinielse 94dc495494SPaolo Bonzini block_ss.add(files('file-posix.c'), coref, iokit) 95dc495494SPaolo Bonziniendif 969db405a3SPaolo Bonziniblock_ss.add(when: libiscsi, if_true: files('iscsi-opts.c')) 97d0cda6f4SPaolo Bonziniif host_os == 'linux' 9853e8868dSPaolo Bonzini block_ss.add(files('nvme.c')) 9953e8868dSPaolo Bonziniendif 10043c71fe3SVladimir Sementsov-Ogievskiyif get_option('replication').allowed() 101406523f6SPaolo Bonzini block_ss.add(files('replication.c')) 102406523f6SPaolo Bonziniendif 103ff66f3e5SPaolo Bonziniblock_ss.add(when: libaio, if_true: files('linux-aio.c')) 10463a7f853SPaolo Bonziniblock_ss.add(when: linux_io_uring, if_true: files('io_uring.c')) 1055e5733e5SMarc-André Lureau 1065e5733e5SMarc-André Lureaublock_modules = {} 1075e5733e5SMarc-André Lureau 1085e5733e5SMarc-André Lureaumodsrc = [] 1095e5733e5SMarc-André Lureauforeach m : [ 110fd66dbd4SStefan Hajnoczi [blkio, 'blkio', files('blkio.c')], 11196acfb1fSPaolo Bonzini [curl, 'curl', files('curl.c')], 11296acfb1fSPaolo Bonzini [glusterfs, 'gluster', files('gluster.c')], 1130241e0feSPaolo Bonzini [libiscsi, 'iscsi', files('iscsi.c')], 11496acfb1fSPaolo Bonzini [libnfs, 'nfs', files('nfs.c')], 11596acfb1fSPaolo Bonzini [libssh, 'ssh', files('ssh.c')], 11696acfb1fSPaolo Bonzini [rbd, 'rbd', files('rbd.c')], 1175e5733e5SMarc-André Lureau] 1182f2a376aSPaolo Bonzini if m[0].found() 1195e5733e5SMarc-André Lureau module_ss = ss.source_set() 12096acfb1fSPaolo Bonzini module_ss.add(when: m[0], if_true: m[2]) 12196acfb1fSPaolo Bonzini if enable_modules 122ae9433fbSPaolo Bonzini modsrc += m[2] 12396acfb1fSPaolo Bonzini endif 1245e5733e5SMarc-André Lureau block_modules += {m[1] : module_ss} 1255e5733e5SMarc-André Lureau endif 1265e5733e5SMarc-André Lureauendforeach 1275e5733e5SMarc-André Lureau 1285e5733e5SMarc-André Lureau# those are not exactly regular block modules, so treat them apart 129ed793c2cSPaolo Bonziniif get_option('dmg').allowed() 1305e5733e5SMarc-André Lureau foreach m : [ 1312f2a376aSPaolo Bonzini [liblzfse, 'dmg-lzfse', liblzfse, 'dmg-lzfse.c'], 1322f2a376aSPaolo Bonzini [libbzip2, 'dmg-bz2', [glib, libbzip2], 'dmg-bz2.c'] 1335e5733e5SMarc-André Lureau ] 1342f2a376aSPaolo Bonzini if m[0].found() 1355e5733e5SMarc-André Lureau module_ss = ss.source_set() 1365e5733e5SMarc-André Lureau module_ss.add(when: m[2], if_true: files(m[3])) 1375e5733e5SMarc-André Lureau block_modules += {m[1] : module_ss} 1385e5733e5SMarc-André Lureau endif 1395e5733e5SMarc-André Lureau endforeach 1405e5733e5SMarc-André Lureauendif 1415e5733e5SMarc-André Lureau 1425e5733e5SMarc-André Lureaumodule_block_py = find_program('../scripts/modules/module_block.py') 1435e5733e5SMarc-André Lureaumodule_block_h = custom_target('module_block.h', 1445e5733e5SMarc-André Lureau output: 'module_block.h', 1455e5733e5SMarc-André Lureau input: modsrc, 1465e5733e5SMarc-André Lureau command: [module_block_py, '@OUTPUT0@', modsrc]) 1475e5733e5SMarc-André Lureaublock_ss.add(module_block_h) 1485e5733e5SMarc-André Lureau 149aaaa20b6SVladimir Sementsov-Ogievskiywrapper_py = find_program('../scripts/block-coroutine-wrapper.py') 150aaaa20b6SVladimir Sementsov-Ogievskiyblock_gen_c = custom_target('block-gen.c', 151aaaa20b6SVladimir Sementsov-Ogievskiy output: 'block-gen.c', 1523b491a90SEmanuele Giuseppe Esposito input: files( 1533b491a90SEmanuele Giuseppe Esposito '../include/block/block-io.h', 1540508d0beSEmanuele Giuseppe Esposito '../include/block/dirty-bitmap.h', 155c86422c5SEmanuele Giuseppe Esposito '../include/block/block_int-io.h', 1563b491a90SEmanuele Giuseppe Esposito '../include/block/block-global-state.h', 1574bee90e9SKevin Wolf '../include/sysemu/block-backend-global-state.h', 158facbaad9SAlberto Faria '../include/sysemu/block-backend-io.h', 1593b491a90SEmanuele Giuseppe Esposito 'coroutines.h' 1603b491a90SEmanuele Giuseppe Esposito ), 161aaaa20b6SVladimir Sementsov-Ogievskiy command: [wrapper_py, '@OUTPUT@', '@INPUT@']) 162aaaa20b6SVladimir Sementsov-Ogievskiyblock_ss.add(block_gen_c) 163aaaa20b6SVladimir Sementsov-Ogievskiy 1645e5733e5SMarc-André Lureaublock_ss.add(files('stream.c')) 1655e5733e5SMarc-André Lureau 166de6cd759SPhilippe Mathieu-Daudésystem_ss.add(files('qapi-sysemu.c')) 16756ee8626SKevin Wolf 16856ee8626SKevin Wolfsubdir('export') 1695e5733e5SMarc-André Lureausubdir('monitor') 1705e5733e5SMarc-André Lureau 1715e5733e5SMarc-André Lureaumodules += {'block': block_modules} 172