Fix FC win32 compiling (secp256k1 related errors)

This commit is contained in:
Eric Frias 2015-06-15 14:38:33 -04:00
parent f7cf9abe55
commit 10e747409c
5 changed files with 58 additions and 47 deletions

View file

@ -58,6 +58,15 @@ add_library( secp256k1 ${SECP256K1_SOURCES} )
target_include_directories( secp256k1 PRIVATE "${SECP256K1_DIR}" PUBLIC "${SECP256K1_DIR}/include" )
if( WIN32 )
set( SECP256K1_BUILD_DEFINES
USE_FIELD_10X26
USE_FIELD_INV_BUILTIN
USE_NUM_NONE
USE_SCALAR_8X32
USE_SCALAR_INV_BUILTIN )
else()
# ***Will only work for Clang on 64-bit Mac/Linux***
set( SECP256K1_BUILD_DEFINES
HAVE_BUILTIN_CLZLL
@ -81,8 +90,8 @@ set( SECP256K1_BUILD_DEFINES
USE_SCALAR_4X64
USE_SCALAR_INV_BUILTIN
)
endif()
set_target_properties( secp256k1 PROPERTIES COMPILE_DEFINITIONS "${SECP256K1_BUILD_DEFINES}" LINKER_LANGUAGE C )
# End configure secp256k1-zkp
IF( WIN32 )
@ -324,8 +333,10 @@ ENDIF()
add_executable( api tests/api.cpp )
target_link_libraries( api fc )
if( ECC_IMPL STREQUAL secp256k1 )
add_executable( blind tests/blind.cpp )
target_link_libraries( blind fc )
endif()
include_directories( vendor/websocketpp )

View file

@ -14,10 +14,10 @@ void _init_lib();
class private_key_impl
{
public:
private_key_impl() noexcept;
private_key_impl( const private_key_impl& cpy ) noexcept;
private_key_impl() BOOST_NOEXCEPT;
private_key_impl( const private_key_impl& cpy ) BOOST_NOEXCEPT;
private_key_impl& operator=( const private_key_impl& pk ) noexcept;
private_key_impl& operator=( const private_key_impl& pk ) BOOST_NOEXCEPT;
private_key_secret _key;
};

View file

@ -9,18 +9,18 @@
namespace fc { namespace ecc {
namespace detail {
private_key_impl::private_key_impl() noexcept
private_key_impl::private_key_impl() BOOST_NOEXCEPT
{
_init_lib();
}
private_key_impl::private_key_impl( const private_key_impl& cpy ) noexcept
private_key_impl::private_key_impl( const private_key_impl& cpy ) BOOST_NOEXCEPT
{
_init_lib();
this->_key = cpy._key;
}
private_key_impl& private_key_impl::operator=( const private_key_impl& pk ) noexcept
private_key_impl& private_key_impl::operator=( const private_key_impl& pk ) BOOST_NOEXCEPT
{
_key = pk._key;
return *this;

View file

@ -29,12 +29,12 @@ namespace fc { namespace ecc {
class public_key_impl
{
public:
public_key_impl() noexcept
public_key_impl() BOOST_NOEXCEPT
{
_init_lib();
}
public_key_impl( const public_key_impl& cpy ) noexcept
public_key_impl( const public_key_impl& cpy ) BOOST_NOEXCEPT
: _key( cpy._key )
{
_init_lib();

View file

@ -4,9 +4,9 @@
#include <fc/variant.hpp>
#include <fc/reflect/variant.hpp>
extern "C" {
#include <secp256k1.h>
}
//extern "C" {
//#include <secp256k1.h>
//}
//struct secp256k1_scalar_t { uint64_t v[4]; };
//extern "C" { void secp256k1_scalar_get_b32(unsigned char *bin, const struct secp256k1_scalar_t* a); }