-
Notifications
You must be signed in to change notification settings - Fork 4
/
CMake.Lethe
151 lines (126 loc) · 5.9 KB
/
CMake.Lethe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# This cmake is for ubuntu - please note that to evaluate a KV store with Gadget, you need to install the KV store on your system and change this cmake
# we provide cmake for RocksDB - Faster and Berkeley kv stores, Please find them in cmakes folder
cmake_minimum_required(VERSION 3.16)
project(gadget)
set(BINARY ${CMAKE_PROJECT_NAME})
# use c++ 17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
file(GLOB_RECURSE SOURCES src/*.cc)
file(GLOB_RECURSE INCLUDES src/include/*.h)
file(GLOB_RECURSE SOURCES LIST_DIRECTORIES true *.h *.cpp)
set(SOURCES ${SOURCES})
########################################################## setup lethe
### setup lethe
message("--- locating lethe dependencies ---")
set(LETHE_LIBRARIES /home/akita/dbs/lethe/librocksdb.a)
set(LETHE_INCLUDE_DIR /home/akita/dbs/lethe/include)
set(LETHE_WORKING_BRANCH /home/akita/dbs/lethe/examples/__working_branch)
message("lethe lib: ${LETHE_LIBRARIES}")
message("lethe inc: ${LETHE_INCLUDE_DIR}")
# include
include_directories("include")
add_executable(gadget core/main.cpp
core/config.h
include/gadget/distributions/key.h
include/gadget/distributions/value.h
include/gadget/distributions/arrival.h
include/gadget/kvwrappers/kvwrapper.h
include/gadget/kvwrappers/RocksDBWrapper.h
include/gadget/kvwrappers/wrapperBuilder.h
include/gadget/performanceMetrics.h
core/PerformanceMetrics.cpp
include/gadget/distributions/windowLength.h
include/gadget/distributions/keySize.h
include/gadget/distributions/keyPopularity.h
operators/ycsbTrace.cpp
include/gadget/operator/operators/continuousAggregation.h
include/gadget/operator/operators/intervalJoin.h
include/gadget/operator/operators/joinSliding.h
include/gadget/operator/operators/intervalJoin.h
include/gadget/operator/operators/joinTumbling.h
include/gadget/operator/operators/operatorBuilder.h
include/gadget/operator/operators/operatorParameters.h
include/gadget/operator/operators/slidingAllHolistic.h
include/gadget/operator/operators/slidingAllIncremental.h
include/gadget/operator/operators/slidingKeyedIncremental.h
include/gadget/operator/operators/slidingAllHolistic.h
include/gadget/operator/operators/tumblingAllHolistic.h
include/gadget/operator/operators/tumblingAllIncremental.h
include/gadget/operator/operators/tumblingKeyedIncremental.h
include/gadget/operator/operators/tumblingKeyedHolistic.h
include/gadget/operator/operators/continuousJoin.h
include/gadget/operator/operators/sessionHolistic.h
include/gadget/operator/operators/sessionIncremental.h
operators/flinkTrace.cpp
include/gadget/distributions/serviceTime.h
include/gadget/distributions/distributionParamters.h
include/gadget/event/event.h
include/gadget/event/eventGenerator.h
operators/continuousJoin.cpp
operators/slidingAllIncremental.cpp
operators/slidingKeyedIncremental.cpp
operators/joinTumbling.cpp
operators/slidingKeyedHolistic.cpp
operators/slidingAllHolistic.cpp
operators/tumblingAllIncremental.cpp
operators/tumblingAllIHolistic.cpp
operators/tumblingKeyedIncremental.cpp
operators/tumblingKeyedHolistic.cpp
operators/joinSliding.cpp
operators/continuousAggregation.cpp
operators/intervalJoin.cpp
operators/sessionHolistic.cpp
operators/sessionIncremental.cpp
include/gadget/kvwrappers/fileWrapper.h
core/tests.h
include/gadget/event/eventGeneratorParameters.h
include/gadget/statemachine/stateMachines.h
include/gadget/operator/oneStreamContinuousOperator.h
include/gadget/operator/oneStreamWindowOperator.h
include/gadget/operator/twoStreamContinuousOperator.h
include/gadget/operator/twoStreamWindowOperator.h
include/gadget/event/gadgetEventGenerator.h
include/gadget/event/traceEvents.h
include/gadget/statemachine/conJoinSM.h
include/gadget/statemachine/intervalJoinSM.h
include/gadget/statemachine/contAggrSM.h
include/gadget/statemachine/windowHolisticSM.h
include/gadget/statemachine/windowIncrementalSM.h
include/gadget/kvwrappers/lethe.h
include/gadget/kvwrappers/faster.h
include/gadget/kvwrappers/berecklyDB.h
include/gadget/operator/operators/ycsbReplayer.h
include/gadget/operator/operators/flinkReplayer.h
# change the following paths based on the location of the LetheDB
/home/akita/dbs/lethe/examples/__working_branch/stats.cc
/home/akita/dbs/lethe/examples/__working_branch/emu_environment.cc
)
# make gadget source a library to use it in google tests
add_library(${BINARY}_lib STATIC ${SOURCES})
message(${BINARY})
# turn the following line only when you want rocksDB or lethe with custom merge operator
target_compile_options(gadget PUBLIC -fno-rtti)
# add lethe
include_directories(gadget ${LETHE_INCLUDE_DIR})
target_link_libraries(gadget ${LETHE_LIBRARIES})
include_directories(gadget ${LETHE_WORKING_BRANCH})
message("lethe lib: ${LETHE_LIBRARIES}")
message("lethe inc: ${LETHE_INCLUDE_DIR}")
message("lethe inc2: ${LETHE_WORKING_BRANCH}")
#######################################
target_link_libraries(gadget pthread)
target_link_libraries(gadget dl)
target_link_libraries(gadget z)
target_link_libraries(gadget bz2)
target_link_libraries(gadget zstd)
target_link_libraries(gadget snappy)
#-lstdc++fs -luuid -ltbb -lgcc -laio -lm -lstdc++
target_link_libraries(gadget uuid)
target_link_libraries(gadget tbb )
target_link_libraries(gadget aio)
target_link_libraries(gadget m)
target_link_libraries(gadget stdc++fs)
target_link_libraries(gadget /usr/lib/x86_64-linux-gnu/liblz4.a)
target_link_libraries(gadget ssl)
target_link_libraries(gadget crypto)