Port (cmake) for secp256k1 crypto project.

This commit is contained in:
Aaron Clauson 2017-10-18 21:18:08 +11:00
parent 2b41ebc759
commit fc80d72089
4 changed files with 89 additions and 0 deletions

View File

@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.8)
project(secp256k1 C)
option(INSTALL_HEADERS "Install header files" ON)
add_definitions(
-DENABLE_MODULE_ECDH
-DENABLE_MODULE_RECOVERY
-DHAVE_CONFIG_H
)
file(GLOB SOURCES src/secp256k1.c)
add_library(secp256k1 ${SOURCES})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
install(TARGETS secp256k1
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
if(INSTALL_HEADERS)
file(GLOB HEADERS include/*.h)
install(FILES ${HEADERS} DESTINATION include)
endif()

3
ports/secp256k1/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: secp256k1
Version:
Description: Optimized C library for EC operations on curve

View File

@ -0,0 +1,29 @@
/**********************************************************************
* Copyright (c) 2013, 2014 Pieter Wuille *
* Distributed under the MIT software license, see the accompanying *
* file COPYING or http://www.opensource.org/licenses/mit-license.php.*
**********************************************************************/
#ifndef SECP256K1_BASIC_CONFIG_H
#define SECP256K1_BASIC_CONFIG_H
#undef USE_ASM_X86_64
#undef USE_ENDOMORPHISM
#undef USE_FIELD_10X26
#undef USE_FIELD_5X52
#undef USE_FIELD_INV_BUILTIN
#undef USE_FIELD_INV_NUM
#undef USE_NUM_GMP
#undef USE_NUM_NONE
#undef USE_SCALAR_4X64
#undef USE_SCALAR_8X32
#undef USE_SCALAR_INV_BUILTIN
#undef USE_SCALAR_INV_NUM
#define USE_NUM_NONE 1
#define USE_FIELD_INV_BUILTIN 1
#define USE_SCALAR_INV_BUILTIN 1
#define USE_FIELD_10X26 1
#define USE_SCALAR_8X32 1
#endif /* SECP256K1_BASIC_CONFIG_H */

View File

@ -0,0 +1,31 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/secp256k1-0b7024185045a49a1a6a4c5615bf31c94f63d9c4/)
vcpkg_from_github(
OUT_SOURCE_PATH "secp256k1"
REPO "bitcoin-core/secp256k1"
REF "0b7024185045a49a1a6a4c5615bf31c94f63d9c4"
SHA512 54e0c446ae63105800dfaf23dc934734f196c91f275db0455e58a36926c29ecc51a13d9b1eb2e45bc86199120c3c472ec7b39086787a49ce388a4df462a870bc
)
message("Copying config header to " ${SOURCE_PATH})
file(COPY ${CURRENT_PORT_DIR}/libsecp256k1-config.h DESTINATION ${SOURCE_PATH})
message(STATUS "Building")
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS_DEBUG
-DINSTALL_HEADERS=OFF
OPTIONS_DEBUG
)
vcpkg_install_cmake()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/secp256k1 RENAME copyright)