2 ${CMAKE_CURRENT_SOURCE_DIR}
4 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof")
7 # intrusive::FeldmanHashSet
8 set(UNIT_ISET_FELDMAN unit-iset-feldman)
9 set(UNIT_ISET_FELDMAN_SOURCES
11 intrusive_feldman_hashset_hp.cpp
12 intrusive_feldman_hashset_dhp.cpp
13 intrusive_feldman_hashset_rcu_gpb.cpp
14 intrusive_feldman_hashset_rcu_gpi.cpp
15 intrusive_feldman_hashset_rcu_gpt.cpp
16 intrusive_feldman_hashset_rcu_shb.cpp
17 intrusive_feldman_hashset_rcu_sht.cpp
19 add_executable(${UNIT_ISET_FELDMAN} ${UNIT_ISET_FELDMAN_SOURCES})
20 target_link_libraries(${UNIT_ISET_FELDMAN}
23 ${Boost_THREAD_LIBRARY}
24 ${Boost_SYSTEM_LIBRARY}
25 ${CMAKE_THREAD_LIBS_INIT}
27 add_test(NAME ${UNIT_ISET_FELDMAN} COMMAND ${UNIT_ISET_FELDMAN} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
29 # intrusive::MichaelHashSet<MichaelList>
30 set(UNIT_ISET_MICHAEL unit-iset-michael)
31 set(UNIT_ISET_MICHAEL_SOURCES
33 intrusive_michael_michael_hp.cpp
34 intrusive_michael_michael_dhp.cpp
35 intrusive_michael_michael_nogc.cpp
36 intrusive_michael_michael_rcu_gpb.cpp
37 intrusive_michael_michael_rcu_gpi.cpp
38 intrusive_michael_michael_rcu_gpt.cpp
39 intrusive_michael_michael_rcu_shb.cpp
40 intrusive_michael_michael_rcu_sht.cpp
42 add_executable(${UNIT_ISET_MICHAEL} ${UNIT_ISET_MICHAEL_SOURCES})
43 target_link_libraries(${UNIT_ISET_MICHAEL}
46 ${Boost_THREAD_LIBRARY}
47 ${Boost_SYSTEM_LIBRARY}
48 ${CMAKE_THREAD_LIBS_INIT}
50 add_test(NAME ${UNIT_ISET_MICHAEL} COMMAND ${UNIT_ISET_MICHAEL} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
52 # intrusive::MichaelHashSet<LazyList>
53 set(UNIT_ISET_MICHAEL_LAZY unit-iset-michael-lazy)
54 set(UNIT_ISET_MICHAEL_LAZY_SOURCES
56 intrusive_michael_lazy_hp.cpp
57 intrusive_michael_lazy_dhp.cpp
58 intrusive_michael_lazy_nogc.cpp
59 intrusive_michael_lazy_rcu_gpb.cpp
60 intrusive_michael_lazy_rcu_gpi.cpp
61 intrusive_michael_lazy_rcu_gpt.cpp
62 intrusive_michael_lazy_rcu_shb.cpp
63 intrusive_michael_lazy_rcu_sht.cpp
65 add_executable(${UNIT_ISET_MICHAEL_LAZY} ${UNIT_ISET_MICHAEL_LAZY_SOURCES})
66 target_link_libraries(${UNIT_ISET_MICHAEL_LAZY}
69 ${Boost_THREAD_LIBRARY}
70 ${Boost_SYSTEM_LIBRARY}
71 ${CMAKE_THREAD_LIBS_INIT}
73 add_test(NAME ${UNIT_ISET_MICHAEL_LAZY} COMMAND ${UNIT_ISET_MICHAEL_LAZY} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
75 # intrusive::MichaelHashSet<IterableList>
76 set(UNIT_ISET_MICHAEL_ITERABLE unit-iset-michael-iterable)
77 set(UNIT_ISET_MICHAEL_ITERABLE_SOURCES
79 intrusive_michael_iterable_dhp.cpp
80 intrusive_michael_iterable_hp.cpp
82 add_executable(${UNIT_ISET_MICHAEL_ITERABLE} ${UNIT_ISET_MICHAEL_ITERABLE_SOURCES})
83 target_link_libraries(${UNIT_ISET_MICHAEL_ITERABLE}
86 ${Boost_THREAD_LIBRARY}
87 ${Boost_SYSTEM_LIBRARY}
88 ${CMAKE_THREAD_LIBS_INIT}
90 add_test(NAME ${UNIT_ISET_MICHAEL_ITERABLE} COMMAND ${UNIT_ISET_MICHAEL_ITERABLE} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
92 # intrusive::SkipListSet
93 set(UNIT_ISET_SKIP unit-iset-skip)
94 set(UNIT_ISET_SKIP_SOURCES
96 intrusive_skiplist_hp.cpp
97 intrusive_skiplist_dhp.cpp
98 intrusive_skiplist_nogc.cpp
99 intrusive_skiplist_rcu_gpb.cpp
100 intrusive_skiplist_rcu_gpi.cpp
101 intrusive_skiplist_rcu_gpt.cpp
102 intrusive_skiplist_rcu_shb.cpp
103 intrusive_skiplist_rcu_sht.cpp
105 add_executable(${UNIT_ISET_SKIP} ${UNIT_ISET_SKIP_SOURCES})
106 target_link_libraries(${UNIT_ISET_SKIP}
107 ${CDS_SHARED_LIBRARY}
109 ${Boost_THREAD_LIBRARY}
110 ${Boost_SYSTEM_LIBRARY}
111 ${CMAKE_THREAD_LIBS_INIT}
113 add_test(NAME ${UNIT_ISET_SKIP} COMMAND ${UNIT_ISET_SKIP} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
115 # intrusive::SplitListSet<MichaelList>
116 set(UNIT_ISET_SPLIT_MICHAEL unit-iset-split-michael)
117 set(UNIT_ISET_SPLIT_MICHAEL_SOURCES
119 intrusive_split_michael_hp.cpp
120 intrusive_split_michael_dhp.cpp
121 intrusive_split_michael_nogc.cpp
122 intrusive_split_michael_rcu_gpb.cpp
123 intrusive_split_michael_rcu_gpi.cpp
124 intrusive_split_michael_rcu_gpt.cpp
125 intrusive_split_michael_rcu_shb.cpp
126 intrusive_split_michael_rcu_sht.cpp
128 add_executable(${UNIT_ISET_SPLIT_MICHAEL} ${UNIT_ISET_SPLIT_MICHAEL_SOURCES})
129 target_link_libraries(${UNIT_ISET_SPLIT_MICHAEL}
130 ${CDS_SHARED_LIBRARY}
132 ${Boost_THREAD_LIBRARY}
133 ${Boost_SYSTEM_LIBRARY}
134 ${CMAKE_THREAD_LIBS_INIT}
136 add_test(NAME ${UNIT_ISET_SPLIT_MICHAEL} COMMAND ${UNIT_ISET_SPLIT_MICHAEL} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
138 # intrusive::SplitListSet<LazyList>
139 set(UNIT_ISET_SPLIT_LAZY unit-iset-split-lazy)
140 set(UNIT_ISET_SPLIT_LAZY_SOURCES
142 intrusive_split_lazy_hp.cpp
143 intrusive_split_lazy_dhp.cpp
144 intrusive_split_lazy_nogc.cpp
145 intrusive_split_lazy_rcu_gpb.cpp
146 intrusive_split_lazy_rcu_gpi.cpp
147 intrusive_split_lazy_rcu_gpt.cpp
148 intrusive_split_lazy_rcu_shb.cpp
149 intrusive_split_lazy_rcu_sht.cpp
151 add_executable(${UNIT_ISET_SPLIT_LAZY} ${UNIT_ISET_SPLIT_LAZY_SOURCES})
152 target_link_libraries(${UNIT_ISET_SPLIT_LAZY}
153 ${CDS_SHARED_LIBRARY}
155 ${Boost_THREAD_LIBRARY}
156 ${Boost_SYSTEM_LIBRARY}
157 ${CMAKE_THREAD_LIBS_INIT}
159 add_test(NAME ${UNIT_ISET_SPLIT_LAZY} COMMAND ${UNIT_ISET_SPLIT_LAZY} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
161 # intrusive::SplitListSet<IterableList>
162 set(UNIT_ISET_SPLIT_ITERABLE unit-iset-split-iterable)
163 set(UNIT_ISET_SPLIT_ITERABLE_SOURCES
165 intrusive_split_iterable_hp.cpp
166 intrusive_split_iterable_dhp.cpp
168 add_executable(${UNIT_ISET_SPLIT_ITERABLE} ${UNIT_ISET_SPLIT_ITERABLE_SOURCES})
169 target_link_libraries(${UNIT_ISET_SPLIT_ITERABLE}
170 ${CDS_SHARED_LIBRARY}
172 ${Boost_THREAD_LIBRARY}
173 ${Boost_SYSTEM_LIBRARY}
174 ${CMAKE_THREAD_LIBS_INIT}
176 add_test(NAME ${UNIT_ISET_SPLIT_ITERABLE} COMMAND ${UNIT_ISET_SPLIT_ITERABLE} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
180 add_custom_target( unit-iset
184 ${UNIT_ISET_MICHAEL_ITERABLE}
185 ${UNIT_ISET_MICHAEL_LAZY}
186 ${UNIT_ISET_SKIP_LIST}
187 ${UNIT_ISET_SPLIT_MICHAEL}
188 ${UNIT_ISET_SPLIT_ITERABLE}
189 ${UNIT_ISET_SPLIT_LAZY}