summaryrefslogtreecommitdiffstats
path: root/plugin/auth_ed25519/CMakeLists.txt
blob: 1033dc053c863f363e41f29f37794050cde946ba (plain)
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
SET(REF10_SOURCES
      ref10/fe_0.c ref10/fe_1.c ref10/fe_add.c ref10/fe_cmov.c ref10/fe_copy.c
      ref10/fe_frombytes.c ref10/fe_invert.c ref10/fe_isnegative.c
      ref10/fe_isnonzero.c ref10/fe_mul.c ref10/fe_neg.c ref10/fe_pow22523.c
      ref10/fe_sq.c ref10/fe_sq2.c ref10/fe_sub.c ref10/fe_tobytes.c
      ref10/ge_add.c ref10/ge_double_scalarmult.c ref10/ge_frombytes.c
      ref10/ge_madd.c ref10/ge_msub.c ref10/ge_p1p1_to_p2.c
      ref10/ge_p1p1_to_p3.c ref10/ge_p2_0.c ref10/ge_p2_dbl.c ref10/ge_p3_0.c
      ref10/ge_p3_dbl.c ref10/ge_p3_to_cached.c ref10/ge_p3_to_p2.c
      ref10/ge_p3_tobytes.c ref10/ge_precomp_0.c ref10/ge_scalarmult_base.c
      ref10/ge_sub.c ref10/ge_tobytes.c ref10/keypair.c ref10/open.c
      ref10/sc_muladd.c ref10/sc_reduce.c ref10/sign.c ref10/verify.c)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})

ADD_CONVENIENCE_LIBRARY(ref10 ${REF10_SOURCES})
IF(MSVC)
   # Silence conversion (integer truncantion) warnings from reference code
  SET_SOURCE_FILES_PROPERTIES(${REF10_SOURCES} PROPERTY COMPILE_FLAGS "/wd4244 /wd4146")
ENDIF()

IF(CMAKE_C_COMPILER_ID MATCHES "GNU" AND CMAKE_C_COMPILER_VERSION LESS 11 AND CMAKE_C_COMPILER_VERSION GREATER 6)
  SET_SOURCE_FILES_PROPERTIES(${REF10_SOURCES} PROPERTY COMPILE_FLAGS -fno-sanitize=shift)
ENDIF()

# server plugin *cannot* link with the library, it needs all sources to be
# compiled with MYSQL_DYNAMIC_PLUGIN
MYSQL_ADD_PLUGIN(auth_ed25519 server_ed25519.c ${REF10_SOURCES} MODULE_ONLY)

# client plugin and unit test ed25519-t can use the library
#MYSQL_ADD_PLUGIN(client_ed25519 client_ed25519.c MODULE_ONLY
#  CLIENT LINK_LIBRARIES ref10 mysys_ssl COMPONENT ClientPlugins)

IF(WITH_UNIT_TESTS)
  MY_ADD_TESTS(ed25519 LINK_LIBRARIES ref10 mysys_ssl)
ENDIF()