Skip to content

Commit d24a81f

Browse files
committed
Move to git submodule + CMake build
1 parent 2d0866c commit d24a81f

File tree

9 files changed

+116
-64
lines changed

9 files changed

+116
-64
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ test
33
*.d
44
depinst
55
depsrc
6-
6+
*~
7+
build

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "depends/libsnark"]
2+
path = depends/libsnark
3+
url = https://github.com/scipr-lab/libsnark.git

CMakeLists.txt

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
cmake_minimum_required(VERSION 2.8)
2+
3+
project(libsnark-tutorial)
4+
5+
set(
6+
CURVE
7+
"BN128"
8+
CACHE
9+
STRING
10+
"Default curve: one of ALT_BN128, BN128, EDWARDS, MNT4, MNT6"
11+
)
12+
13+
set(
14+
DEPENDS_DIR
15+
"${CMAKE_CURRENT_SOURCE_DIR}/depends"
16+
CACHE
17+
STRING
18+
"Optionally specify the dependency installation directory relative to the source directory (default: inside dependency folder)"
19+
)
20+
21+
set(
22+
OPT_FLAGS
23+
""
24+
CACHE
25+
STRING
26+
"Override C++ compiler optimization flags"
27+
)
28+
29+
option(
30+
MULTICORE
31+
"Enable parallelized execution, using OpenMP"
32+
OFF
33+
)
34+
35+
option(
36+
WITH_PROCPS
37+
"Use procps for memory profiling"
38+
ON
39+
)
40+
41+
option(
42+
VERBOSE
43+
"Print internal messages"
44+
OFF
45+
)
46+
47+
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
48+
# Common compilation flags and warning configuration
49+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wfatal-errors -pthread")
50+
51+
if("${MULTICORE}")
52+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
53+
endif()
54+
55+
# Default optimizations flags (to override, use -DOPT_FLAGS=...)
56+
if("${OPT_FLAGS}" STREQUAL "")
57+
set(OPT_FLAGS "-ggdb3 -O2 -march=native -mtune=native")
58+
endif()
59+
endif()
60+
61+
add_definitions(-DCURVE_${CURVE})
62+
63+
if(${CURVE} STREQUAL "BN128")
64+
add_definitions(-DBN_SUPPORT_SNARK=1)
65+
endif()
66+
67+
if("${VERBOSE}")
68+
add_definitions(-DVERBOSE=1)
69+
endif()
70+
71+
if("${MULTICORE}")
72+
add_definitions(-DMULTICORE=1)
73+
endif()
74+
75+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPT_FLAGS}")
76+
77+
include(FindPkgConfig)
78+
if("${WITH_PROCPS}")
79+
pkg_check_modules(PROCPS REQUIRED libprocps)
80+
else()
81+
add_definitions(-DNO_PROCPS)
82+
endif()
83+
84+
include_directories(.)
85+
86+
add_subdirectory(depends)
87+
add_subdirectory(src)

Makefile

-17
This file was deleted.

depends/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
add_subdirectory(libsnark)

depends/libsnark

Submodule libsnark added at f7c87b8

get-libsnark

-41
This file was deleted.

src/CMakeLists.txt

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
include_directories(.)
2+
3+
add_executable(
4+
main
5+
6+
test.cpp
7+
)
8+
target_link_libraries(
9+
main
10+
11+
snark
12+
)
13+
target_include_directories(
14+
main
15+
16+
PUBLIC
17+
${DEPENDS_DIR}/libsnark
18+
${DEPENDS_DIR}/libsnark/depends/libfqfft
19+
${DEPENDS_DIR}/libsnark/depends/libff
20+
)

src/test.cpp

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
#include <stdlib.h>
22
#include <iostream>
3-
#include <boost/optional/optional_io.hpp>
43

5-
#include "algebra/fields/field_utils.hpp"
4+
#include "libff/algebra/fields/field_utils.hpp"
65
#include "libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_ppzksnark.hpp"
76
#include "libsnark/common/default_types/r1cs_ppzksnark_pp.hpp"
8-
#include "libsnark/common/utils.hpp"
97
#include "libsnark/gadgetlib1/pb_variable.hpp"
108

11-
129
using namespace libsnark;
1310
using namespace std;
1411

1512
int main()
1613
{
1714

18-
typedef Fr<default_r1cs_ppzksnark_pp> FieldT;
15+
typedef libff::Fr<default_r1cs_ppzksnark_pp> FieldT;
1916

2017
// Initialize the curve parameters.
2118
default_r1cs_ppzksnark_pp::init_public_params();

0 commit comments

Comments
 (0)