summaryrefslogtreecommitdiffstats
path: root/plugin/auth_ed25519/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/auth_ed25519/CMakeLists.txt')
-rw-r--r--plugin/auth_ed25519/CMakeLists.txt36
1 files changed, 36 insertions, 0 deletions
diff --git a/plugin/auth_ed25519/CMakeLists.txt b/plugin/auth_ed25519/CMakeLists.txt
new file mode 100644
index 00000000..1033dc05
--- /dev/null
+++ b/plugin/auth_ed25519/CMakeLists.txt
@@ -0,0 +1,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()