1
+ curve25519_c_args = c_args
2
+ if cc.get_id() == ' gcc' or cc.get_id() == ' clang'
3
+ curve25519_c_args += [' -Wno-unused-variable' , ' -Wno-unused-function' , ' -Wno-shadow' ]
4
+ endif
5
+ if cc.get_id() == ' gcc'
6
+ curve25519_c_args += [' -Wno-sign-compare' ]
7
+ if cc.has_argument(' -Wno-sign-conversion' )
8
+ curve25519_c_args += [' -Wno-sign-conversion' ]
9
+ endif
10
+ endif
11
+ if cc.get_id() == ' clang'
12
+ curve25519_c_args += [' -Wno-shorten-64-to-32' ]
13
+ endif
14
+ if cc.has_function(' memset_s' , prefix : ' #include <string.h>' )
15
+ curve25519_c_args += [' -DHAVE_MEMSET_S' ]
16
+ endif
17
+
18
+ curve25519_sources = files ([
19
+ ' curve25519-donna.c'
20
+ ])
21
+
22
+ ed25519_include_directories = [
23
+ ' ed25519/nacl_includes' ,
24
+ ' ed25519/additions' ,
25
+ ' ed25519/additions/generalized' ,
26
+ ' ed25519/tests' ,
27
+ ' ed25519' ,
28
+ ]
29
+
30
+ ed25519_sources = files ([
31
+ ' ed25519/fe_0.c' ,
32
+ ' ed25519/fe_1.c' ,
33
+ ' ed25519/fe_add.c' ,
34
+ ' ed25519/fe_cmov.c' ,
35
+ ' ed25519/fe_copy.c' ,
36
+ ' ed25519/fe_frombytes.c' ,
37
+ ' ed25519/fe_invert.c' ,
38
+ ' ed25519/fe_isnegative.c' ,
39
+ ' ed25519/fe_isnonzero.c' ,
40
+ ' ed25519/fe_mul.c' ,
41
+ ' ed25519/fe_neg.c' ,
42
+ ' ed25519/fe_pow22523.c' ,
43
+ ' ed25519/fe_sq.c' ,
44
+ ' ed25519/fe_sq2.c' ,
45
+ ' ed25519/fe_sub.c' ,
46
+ ' ed25519/fe_tobytes.c' ,
47
+ ' ed25519/ge_add.c' ,
48
+ ' ed25519/ge_double_scalarmult.c' ,
49
+ ' ed25519/ge_frombytes.c' ,
50
+ ' ed25519/ge_madd.c' ,
51
+ ' ed25519/ge_msub.c' ,
52
+ ' ed25519/ge_p1p1_to_p2.c' ,
53
+ ' ed25519/ge_p1p1_to_p3.c' ,
54
+ ' ed25519/ge_p2_0.c' ,
55
+ ' ed25519/ge_p2_dbl.c' ,
56
+ ' ed25519/ge_p3_0.c' ,
57
+ ' ed25519/ge_p3_dbl.c' ,
58
+ ' ed25519/ge_p3_to_cached.c' ,
59
+ ' ed25519/ge_p3_to_p2.c' ,
60
+ ' ed25519/ge_p3_tobytes.c' ,
61
+ ' ed25519/ge_precomp_0.c' ,
62
+ ' ed25519/ge_scalarmult_base.c' ,
63
+ ' ed25519/ge_sub.c' ,
64
+ ' ed25519/ge_tobytes.c' ,
65
+ ' ed25519/open.c' ,
66
+ ' ed25519/sc_muladd.c' ,
67
+ ' ed25519/sc_reduce.c' ,
68
+ ' ed25519/sign.c' ,
69
+ ' ed25519/additions/compare.c' ,
70
+ ' ed25519/additions/curve_sigs.c' ,
71
+ ' ed25519/additions/ed_sigs.c' ,
72
+ ' ed25519/additions/elligator.c' ,
73
+ ' ed25519/additions/fe_edy_to_montx.c' ,
74
+ ' ed25519/additions/fe_isequal.c' ,
75
+ ' ed25519/additions/fe_isreduced.c' ,
76
+ ' ed25519/additions/fe_mont_rhs.c' ,
77
+ ' ed25519/additions/fe_montx_to_edy.c' ,
78
+ ' ed25519/additions/fe_sqrt.c' ,
79
+ ' ed25519/additions/ge_isneutral.c' ,
80
+ ' ed25519/additions/ge_montx_to_p3.c' ,
81
+ ' ed25519/additions/ge_neg.c' ,
82
+ ' ed25519/additions/ge_p3_to_montx.c' ,
83
+ ' ed25519/additions/ge_scalarmult.c' ,
84
+ ' ed25519/additions/ge_scalarmult_cofactor.c' ,
85
+ ' ed25519/additions/keygen.c' ,
86
+ ' ed25519/additions/open_modified.c' ,
87
+ ' ed25519/additions/sc_clamp.c' ,
88
+ ' ed25519/additions/sc_cmov.c' ,
89
+ ' ed25519/additions/sc_neg.c' ,
90
+ ' ed25519/additions/sign_modified.c' ,
91
+ ' ed25519/additions/utility.c' ,
92
+ ' ed25519/additions/generalized/ge_p3_add.c' ,
93
+ ' ed25519/additions/generalized/gen_eddsa.c' ,
94
+ ' ed25519/additions/generalized/gen_labelset.c' ,
95
+ ' ed25519/additions/generalized/gen_veddsa.c' ,
96
+ ' ed25519/additions/generalized/gen_x.c' ,
97
+ ' ed25519/additions/generalized/point_isreduced.c' ,
98
+ ' ed25519/additions/generalized/sc_isreduced.c' ,
99
+ ' ed25519/additions/xeddsa.c' ,
100
+ ' ed25519/additions/zeroize.c' ,
101
+ ' ed25519/nacl_sha512/blocks.c' ,
102
+ ' ed25519/nacl_sha512/hash.c' ,
103
+ ' ed25519/tests/internal_fast_tests.c' ,
104
+ ])
105
+
106
+ curve25519_lib = library (' curve25519' , curve25519_sources, ed25519_sources, c_args : curve25519_c_args, include_directories : ed25519_include_directories, install : false )
107
+ curve25519_dep = declare_dependency (objects : curve25519_lib.extract_all_objects(recursive : false ), include_directories : ed25519_include_directories)
0 commit comments