You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
cmake_minimum_required (VERSION 2.6)
|
|
project(mcl CXX ASM)
|
|
set(LIBS mcl gmp gmpxx crypto)
|
|
set(SRCS src/fp.cpp)
|
|
|
|
option(
|
|
MCL_MAX_BIT_SIZE
|
|
"max bit size for Fp"
|
|
0
|
|
)
|
|
|
|
if("${CFLAGS_OPT_USER}" STREQUAL "")
|
|
set(CFLAGS_OPT_USER "-O3 -DNDEBUG -march=native")
|
|
endif()
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wfloat-equal -Wpointer-arith ${CFLAGS_OPT_USER}")
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
|
|
if(${MCL_MAX_BIT_SIZE} GREATER 0)
|
|
add_definitions(-DMCL_MAX_BIT_SIZE=${MCL_MAX_BIT_SIZE})
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
|
|
add_definitions(-DMCL_USE_LLVM=1)
|
|
set(SRCS ${SRCS} src/asm/aarch64.s)
|
|
set(CPU arch64)
|
|
elseif(APPLE)
|
|
add_definitions(-DMCL_USE_LLVM=1)
|
|
set(SRCS ${SRCS} src/asm/x86-64mac.s src/asm/x86-64mac.bmi2.s)
|
|
set(CPU x86-64)
|
|
elseif(UNIX)
|
|
add_definitions(-DMCL_USE_LLVM=1)
|
|
set(SRCS ${SRCS} src/asm/x86-64.s src/asm/x86-64.bmi2.s)
|
|
set(CPU x86-64)
|
|
endif()
|
|
|
|
include_directories(
|
|
include
|
|
../cybozulib/include
|
|
../xbyak
|
|
)
|
|
|
|
add_library(mcl STATIC ${SRCS})
|
|
add_library(mcl_dy SHARED ${SRCS})
|
|
|
|
set(TEST_BASE fp_test ec_test fp_util_test window_method_test elgamal_test fp_tower_test gmp_test bn_test glv_test)
|
|
foreach(base IN ITEMS ${TEST_BASE})
|
|
add_executable(
|
|
${base}
|
|
test/${base}.cpp
|
|
)
|
|
target_link_libraries(
|
|
${base}
|
|
${LIBS}
|
|
)
|
|
endforeach()
|
|
|