Files
lix/perl/meson.build
T
Alois Wohlschlager 451a14980b libstore: use OpenSSL for Ed25519 signatures
Previously two cryptography libraries were linked into Lix: OpenSSL used for
hashing and (in usual configurations) indirectly via curl for TLS, and Sodium
used only for handling the Ed25519 path info signatures. The latter is
functionally redundant since OpenSSL supports the same use case as well.
Reimplement the Ed25519 handling using OpenSSL and drop Sodium.

Fixes: https://git.lix.systems/lix-project/lix/issues/969

Change-Id: I6a6a696456b9d3ad7fdc2bf9b0759836a6247a38
2025-08-25 17:11:45 +00:00

72 lines
1.8 KiB
Meson

project('lix-perl', 'cpp',
version : run_command('bash', '-c', 'echo -n $(jq -r .version < ../version.json)$VERSION_SUFFIX', check : true).stdout().strip(),
default_options : [
'cpp_std=c++2a',
# TODO(Qyriad): increase the warning level
'debug=true',
# FIXME(Qyriad): should this be -O2? The main nix build was switched to -O2 in 3c5234430
'optimization=3',
],
)
add_project_arguments(
'-Werror=unused-result',
language : 'cpp',
)
fs = import('fs')
prefix = get_option('prefix')
libdir = get_option('libdir')
if not fs.is_absolute(libdir)
libdir = prefix / libdir
endif
cxx = meson.get_compiler('cpp')
perl = find_program('perl')
# "compiler to convert Perl XS code into C code"
xsubpp = find_program('xsubpp')
perl_version = run_command(
perl,
'-e',
'use Config; print $Config{version};',
capture : true,
check : true,
).stdout()
perl_arch_name = run_command(
perl,
'-e',
'use Config; print $Config{archname};',
capture : true,
check : true,
).stdout()
perl_libdir = f'@libdir@/perl5/site_perl/@perl_version@/@perl_arch_name@'
perl_incdir = run_command(
perl,
'-e',
'use Config; print $Config{archlibexp};',
capture : true,
check : true,
).stdout() + '/CORE'
perl_include = declare_dependency(
# This must have is_system : true, or #include "config.h" will get perl's config.h
# instead of Nix's.
include_directories : include_directories(perl_incdir, is_system : true),
)
if cxx.get_linker_id() in ['ld.bfd', 'ld.gold']
add_project_link_arguments('-Wl,--no-copy-dt-needed-entries', language : 'cpp')
endif
libstore = dependency('lixstore', 'lix-store', required : true)
libutil = dependency('lixutil', 'lix-util', required : true)
kj = dependency('kj-async', required : true, include_type : 'system')
subdir('lib/Nix')