libtrust_data_sources = [
'asn1.c',
'base64.c',
'pem.c',
'oid.c',
'utf8.c',
'x509.c'
]
basic_asn_h = custom_target('basic.asn.h',
output: 'basic.asn.h',
input: 'basic.asn',
command: [asn1Parser, '-o', '@OUTPUT@', '@INPUT@'])
pkix_asn_h = custom_target('pkix.asn.h',
output: 'pkix.asn.h',
input: 'pkix.asn',
command: [asn1Parser, '-o', '@OUTPUT@', '@INPUT@'])
openssl_asn_h = custom_target('openssl.asn.h',
output: 'openssl.asn.h',
input: 'openssl.asn',
command: [asn1Parser, '-o', '@OUTPUT@', '@INPUT@'])
asn_h_dep = declare_dependency(
sources: [basic_asn_h, pkix_asn_h, openssl_asn_h]
)
libtrust_data = static_library('libtrust-data',
libtrust_data_sources,
include_directories: [configinc, commoninc],
dependencies: [asn_h_dep] + libtasn1_deps)
libtrust_sources = [
'builder.c',
'digest.c',
'index.c',
'parser.c',
'persist.c',
'module.c',
'save.c',
'session.c',
'token.c'
]
install_data('p11-kit-trust.module',
install_dir: prefix / p11_package_config_modules)
p11_kit_trust_c_args = [
'-DP11_DEFAULT_TRUST_PREFIX="@0@"'.format(prefix / datadir),
'-DP11_SYSTEM_TRUST_PREFIX="@0@"'.format(prefix / sysconfdir)
]
shared_module('p11-kit-trust',
libtrust_sources,
'module-init.c',
name_prefix: '',
c_args: p11_kit_trust_c_args,
dependencies: [asn_h_dep, libp11_library_dep] + libtasn1_deps,
link_args: p11_module_ldflags,
link_depends: [p11_module_symbol_map,
p11_module_symbol_def],
link_with: libtrust_data,
vs_module_defs: p11_module_symbol_def,
install: true,
install_dir: prefix / p11_module_path)
if get_option('test')
libtrust_testable_c_args = [
'-DP11_DEFAULT_TRUST_PREFIX="@0@"'.format(meson.current_build_dir() / 'default'),
'-DP11_SYSTEM_TRUST_PREFIX="@0@"'.format(meson.current_build_dir() / 'system')
]
libtrust_testable = static_library('libtrust-testable',
libtrust_sources,
include_directories: [configinc, commoninc],
c_args: libtrust_testable_c_args,
dependencies: [asn_h_dep] + libtasn1_deps)
endif
trust_sources = [
'anchor.c',
'parser.c',
'persist.c',
'digest.c',
'dump.c',
'enumerate.c',
'extract.c',
'extract-jks.c',
'extract-edk2.c',
'extract-openssl.c',
'extract-pem.c',
'extract-cer.c',
'list.c',
'save.c',
'trust.c'
]
executable('trust',
trust_sources,
c_args: common_c_args,
link_with: libtrust_data,
dependencies: [asn_h_dep,
libp11_kit_dep,
libp11_tool_dep] + libffi_deps + dlopen_deps + libtasn1_deps,
install: true)
install_data('trust-extract-compat',
install_dir: prefix / privatedir)
# Tests ----------------------------------------------------------------
if get_option('test')
libtrust_test_sources = [
'test-trust.c',
'digest.c'
]
libtrust_test = static_library('libtrust-test',
libtrust_test_sources,
include_directories: [configinc, commoninc])
trust_tests = [
'test-digest',
'test-asn1',
'test-base64',
'test-pem',
'test-oid',
'test-utf8',
'test-x509',
'test-persist',
'test-index',
'test-parser',
'test-builder',
'test-token',
'test-module',
'test-save',
'test-enumerate',
'test-cer',
'test-bundle',
'test-openssl',
'test-edk2',
'test-jks'
]
foreach name : trust_tests
t = executable(name, '@0@.c'.format(name),
c_args: common_c_args + tests_c_args + libtrust_testable_c_args,
dependencies: [asn_h_dep,
libp11_kit_dep,
libp11_library_dep,
libp11_test_dep] + libtasn1_deps + dlopen_deps,
link_with: [libtrust_testable, libtrust_data, libtrust_test])
test(name, t)
endforeach
trust_progs = [
'frob-pow',
'frob-token',
'frob-nss-trust',
'frob-cert',
'frob-bc',
'frob-ku',
'frob-eku',
'frob-ext',
'frob-oid'
]
foreach name : trust_progs
t = executable(name, '@0@.c'.format(name),
c_args: tests_c_args,
dependencies: [asn_h_dep,
libp11_kit_dep,
libp11_library_dep,
libp11_test_dep] + libffi_deps + dlopen_deps,
link_with: [libtrust_testable, libtrust_data, libtrust_test])
endforeach
endif