 46859d9398
			
		
	
	
		46859d9398
		
	
	
	
	
		
			
			If nettle is disabled and gcrypt enabled, the compiler and linker flags needed for gcrypt are not passed. Gnutls was also not added as a dependancy when gcrypt is enabled. Attempting to add the library dependencies at the same time as the source dependencies is error prone, as there are alot of different rules for picking which sources to use, and some of the source files use code level conditionals intead. It is thus clearer to add the library dependencies separately. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200901133050.381844-2-berrange@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
| crypto_ss = ss.source_set()
 | |
| crypto_ss.add(genh)
 | |
| crypto_ss.add(files(
 | |
|   'afsplit.c',
 | |
|   'block-luks.c',
 | |
|   'block-qcow.c',
 | |
|   'block.c',
 | |
|   'cipher.c',
 | |
|   'desrfb.c',
 | |
|   'hash.c',
 | |
|   'hmac.c',
 | |
|   'ivgen-essiv.c',
 | |
|   'ivgen-plain.c',
 | |
|   'ivgen-plain64.c',
 | |
|   'ivgen.c',
 | |
|   'pbkdf.c',
 | |
|   'secret_common.c',
 | |
|   'secret.c',
 | |
|   'tlscreds.c',
 | |
|   'tlscredsanon.c',
 | |
|   'tlscredspsk.c',
 | |
|   'tlscredsx509.c',
 | |
|   'tlssession.c',
 | |
| ))
 | |
| 
 | |
| if 'CONFIG_NETTLE' in config_host
 | |
|   crypto_ss.add(files('hash-nettle.c', 'hmac-nettle.c', 'pbkdf-nettle.c'))
 | |
| elif 'CONFIG_GCRYPT' in config_host
 | |
|   crypto_ss.add(files('hash-gcrypt.c', 'pbkdf-gcrypt.c'))
 | |
|   if 'CONFIG_GCRYPT_HMAC' in config_host
 | |
|     crypto_ss.add(files('hmac-gcrypt.c'))
 | |
|   else
 | |
|     crypto_ss.add(files('hmac-glib.c'))
 | |
|   endif
 | |
| else
 | |
|   crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
 | |
| endif
 | |
| 
 | |
| crypto_ss.add(when: 'CONFIG_SECRET_KEYRING', if_true: files('secret_keyring.c'))
 | |
| crypto_ss.add(when: 'CONFIG_QEMU_PRIVATE_XTS', if_true: files('xts.c'))
 | |
| crypto_ss.add(when: 'CONFIG_AF_ALG', if_true: files('afalg.c', 'cipher-afalg.c', 'hash-afalg.c'))
 | |
| crypto_ss.add(when: 'CONFIG_GNUTLS', if_true: files('tls-cipher-suites.c'))
 | |
| 
 | |
| if 'CONFIG_NETTLE' in config_host
 | |
|   crypto_ss.add(nettle)
 | |
| elif 'CONFIG_GCRYPT' in config_host
 | |
|   crypto_ss.add(gcrypt)
 | |
| endif
 | |
| 
 | |
| if 'CONFIG_GNUTLS' in config_host
 | |
|   crypto_ss.add(gnutls)
 | |
| endif
 | |
| 
 | |
| 
 | |
| crypto_ss = crypto_ss.apply(config_host, strict: false)
 | |
| libcrypto = static_library('crypto', crypto_ss.sources() + genh,
 | |
|                            dependencies: [crypto_ss.dependencies()],
 | |
|                            name_suffix: 'fa',
 | |
|                            build_by_default: false)
 | |
| 
 | |
| crypto = declare_dependency(link_whole: libcrypto,
 | |
|                             dependencies: [authz, qom])
 | |
| 
 | |
| util_ss.add(files('aes.c'))
 | |
| util_ss.add(files('init.c'))
 | |
| 
 | |
| if 'CONFIG_GCRYPT' in config_host
 | |
|   util_ss.add(files('random-gcrypt.c'))
 | |
| elif 'CONFIG_GNUTLS' in config_host
 | |
|   util_ss.add(files('random-gnutls.c'))
 | |
| elif 'CONFIG_RNG_NONE' in config_host
 | |
|   util_ss.add(files('random-none.c'))
 | |
| else
 | |
|   util_ss.add(files('random-platform.c'))
 | |
| endif
 | |
| 
 | |
| if 'CONFIG_GCRYPT' in config_host
 | |
|   util_ss.add(gcrypt)
 | |
| endif
 | |
| 
 | |
| if 'CONFIG_GNUTLS' in config_host
 | |
|   util_ss.add(gnutls)
 | |
| endif
 |