ed25519/CMakeLists.txt

70 lines
1.4 KiB
CMake

project(ed25519)
cmake_minimum_required(VERSION 3.9)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
option(USE_OPENSSL "Use openssl for sha 512 (Faster than the default installation" ON)
set(SOURCE
src/add_scalar.c
src/fe.c
src/ge.c
src/key_exchange.c
src/keypair.c
src/sc.c
src/seed.c
src/sign.c
src/verify.c
)
if(USE_OPENSSL)
add_definitions(-DUSE_OPENSSL)
set(SOURCE ${SOURCE} src/sha512_openssl.c)
else()
# message(FATAL_ERROR "Not supported yet!")
set(SOURCE ${SOURCE} src/sha512.c)
endif()
if (MSVC)
set(CompilerFlags
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
endforeach()
endif()
#Some programs need for full support the header files too
set(HEADERS
include/ed25519.h
include/fe.h
include/fixedint.h
include/ge.h
include/precomp_data.h
include/sc.h
include/sha512.h
)
add_library(ed25519 STATIC ${SOURCE} ${HEADERS})
option(BUILD_TESTS "Build test" ON)
if (BUILD_TESTS)
add_executable(ed25519_test test.c)
target_link_libraries(ed25519_test ed25519)
if(USE_OPENSSL)
target_link_libraries(ed25519_test crypto)
endif()
endif ()
INSTALL(DIRECTORY include/ DESTINATION include/ed25519)
INSTALL(TARGETS ed25519
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)