all repos — circe-vpn @ development

Circe VPN

contrib/meson.build (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
cc = meson.get_compiler('c')

native_arch_args = []
cpu = host_machine.cpu_family()

if cpu == 'x86_64'
    foreach arg : ['-mavx2', '-mbmi2']
        if cc.has_argument(arg)
            native_arch_args += arg
        endif
    endforeach
elif cpu == 'aarch64'
    if cc.has_argument('-march=armv8.4-a+sha3')
        native_arch_args += '-march=armv8.4-a+sha3'
    endif
endif

contrib_config_inc = include_directories('config')

pqc_c_args = [
    '-O3',
    '-ffreestanding',
    '-fno-stack-protector', # no libc: don't emit __stack_chk_fail references
    '-fomit-frame-pointer',
] + native_arch_args

mlkem_inc = include_directories('mlkem-native')
mlkem_config_arg = '-DMLK_CONFIG_FILE="circe_mlkem_config.h"'

mlkem_lib = static_library(
    'circe-mlkem',
    [
        'mlkem-native/mlkem/mlkem_native.c',
        'mlkem-native/mlkem/mlkem_native_asm.S',
    ],
    c_args: pqc_c_args + [mlkem_config_arg],
    include_directories: [mlkem_inc, contrib_config_inc],
    dependencies: [common_dep],
)

mlkem_dep = declare_dependency(
    link_with: mlkem_lib,
    include_directories: [mlkem_inc, contrib_config_inc],
    compile_args: [mlkem_config_arg],
    dependencies: [common_dep],
)
set_variable(meson.project_name() + '_mlkem_dep', mlkem_dep)

mldsa_inc = include_directories('mldsa-native')
mldsa_config_arg = '-DMLD_CONFIG_FILE="circe_mldsa_config.h"'

mldsa_lib = static_library(
    'circe-mldsa',
    [
        'mldsa-native/mldsa/mldsa_native.c',
        'mldsa-native/mldsa/mldsa_native_asm.S',
    ],
    c_args: pqc_c_args + [mldsa_config_arg],
    include_directories: [mldsa_inc, contrib_config_inc],
    dependencies: [common_dep],
)

mldsa_dep = declare_dependency(
    link_with: mldsa_lib,
    include_directories: [mldsa_inc, contrib_config_inc],
    compile_args: [mldsa_config_arg],
    dependencies: [common_dep],
)
set_variable(meson.project_name() + '_mldsa_dep', mldsa_dep)