add_executable(name name.cpp)
target_link_libraries(name "util" ${EXTRA_LIBS})
add_test(name ${CMAKE_CURRENT_BINARY_DIR}/name)
add_executable(sequence sequence.cpp)
target_link_libraries(sequence "util" ${EXTRA_LIBS})
add_test(sequence ${CMAKE_CURRENT_BINARY_DIR}/sequence)
add_executable(sexpr_tst sexpr.cpp)
target_link_libraries(sexpr_tst "util" "numerics" "sexpr" ${EXTRA_LIBS})
add_test(sexpr ${CMAKE_CURRENT_BINARY_DIR}/sexpr_tst)
add_executable(format format.cpp)
target_link_libraries(format "util" "numerics" "sexpr" ${EXTRA_LIBS})
add_test(format ${CMAKE_CURRENT_BINARY_DIR}/format)
add_executable(buffer buffer.cpp)
target_link_libraries(buffer "util" ${EXTRA_LIBS})
add_test(buffer ${CMAKE_CURRENT_BINARY_DIR}/buffer)
add_executable(list list.cpp)
target_link_libraries(list "util" ${EXTRA_LIBS})
add_test(list ${CMAKE_CURRENT_BINARY_DIR}/list)
add_executable(scoped_set scoped_set.cpp)
target_link_libraries(scoped_set "util" ${EXTRA_LIBS})
add_test(scoped_set ${CMAKE_CURRENT_BINARY_DIR}/scoped_set)
add_executable(options options.cpp)
target_link_libraries(options "util" "numerics" "sexpr" ${EXTRA_LIBS})
add_test(options ${CMAKE_CURRENT_BINARY_DIR}/options)
add_executable(scoped_map scoped_map.cpp)
target_link_libraries(scoped_map "util" ${EXTRA_LIBS})
add_test(scoped_map ${CMAKE_CURRENT_BINARY_DIR}/scoped_map)
add_executable(memory memory.cpp)
target_link_libraries(memory "util" ${EXTRA_LIBS})
add_test(memory ${CMAKE_CURRENT_BINARY_DIR}/memory)
add_executable(rb_tree rb_tree.cpp)
target_link_libraries(rb_tree "util" ${EXTRA_LIBS})
add_test(rb_tree ${CMAKE_CURRENT_BINARY_DIR}/rb_tree)
add_executable(rb_map rb_map.cpp)
target_link_libraries(rb_map "util" ${EXTRA_LIBS})
add_test(rb_map ${CMAKE_CURRENT_BINARY_DIR}/rb_map)
add_executable(splay_tree splay_tree.cpp)
target_link_libraries(splay_tree "util" ${EXTRA_LIBS})
add_test(splay_tree ${CMAKE_CURRENT_BINARY_DIR}/splay_tree)
add_executable(splay_map splay_map.cpp)
target_link_libraries(splay_map "util" ${EXTRA_LIBS})
add_test(splay_map ${CMAKE_CURRENT_BINARY_DIR}/splay_map)
add_executable(trace trace.cpp)
target_link_libraries(trace "util" ${EXTRA_LIBS})
add_test(trace ${CMAKE_CURRENT_BINARY_DIR}/trace)
add_executable(exception exception.cpp)
target_link_libraries(exception "util" ${EXTRA_LIBS})
add_test(exception ${CMAKE_CURRENT_BINARY_DIR}/exception)
add_executable(bit_tricks bit_tricks.cpp)
target_link_libraries(bit_tricks "util" ${EXTRA_LIBS})
add_test(bit_tricks ${CMAKE_CURRENT_BINARY_DIR}/bit_tricks)
add_executable(lazy_list lazy_list.cpp)
target_link_libraries(lazy_list "util" "numerics" ${EXTRA_LIBS})
add_test(lazy_list ${CMAKE_CURRENT_BINARY_DIR}/lazy_list)
add_executable(hash hash.cpp)
target_link_libraries(hash "util" ${EXTRA_LIBS})
add_test(hash ${CMAKE_CURRENT_BINARY_DIR}/hash)
add_executable(safe_arith safe_arith.cpp)
target_link_libraries(safe_arith "util" ${EXTRA_LIBS})
add_test(safe_arith ${CMAKE_CURRENT_BINARY_DIR}/safe_arith)
add_executable(set set.cpp)
target_link_libraries(set "util" ${EXTRA_LIBS})
add_test(set ${CMAKE_CURRENT_BINARY_DIR}/set)
add_executable(optional optional.cpp)
target_link_libraries(optional "util" ${EXTRA_LIBS})
add_test(optional ${CMAKE_CURRENT_BINARY_DIR}/optional)
add_executable(stackinfo stackinfo.cpp)
target_link_libraries(stackinfo "util" ${EXTRA_LIBS})
add_test(stackinfo ${CMAKE_CURRENT_BINARY_DIR}/stackinfo)
add_executable(serializer serializer.cpp)
target_link_libraries(serializer "util" ${EXTRA_LIBS})
add_test(serializer ${CMAKE_CURRENT_BINARY_DIR}/serializer)
add_executable(trie trie.cpp)
target_link_libraries(trie "util" ${EXTRA_LIBS})
add_test(trie ${CMAKE_CURRENT_BINARY_DIR}/trie)
add_executable(lru_cache lru_cache.cpp)
target_link_libraries(lru_cache "util" ${EXTRA_LIBS})
add_test(lru_cache ${CMAKE_CURRENT_BINARY_DIR}/lru_cache)
add_executable(worker_queue worker_queue.cpp)
target_link_libraries(worker_queue "util" ${EXTRA_LIBS})
add_test(worker_queue ${CMAKE_CURRENT_BINARY_DIR}/worker_queue)
# thread.cpp used import_test.lua
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/import_test.lua
  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/import_test.lua ${CMAKE_CURRENT_BINARY_DIR}/import_test.lua
  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/import_test.lua)
add_custom_target("import_test" DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/import_test.lua)
add_executable(thread thread.cpp)
target_link_libraries(thread "util" ${EXTRA_LIBS})
add_test(thread ${CMAKE_CURRENT_BINARY_DIR}/thread)
add_dependencies(thread import_test)
add_executable(bitap_fuzzy_search bitap_fuzzy_search.cpp)
target_link_libraries(bitap_fuzzy_search "util" ${EXTRA_LIBS})
add_test(bitap_fuzzy_search ${CMAKE_CURRENT_BINARY_DIR}/bitap_fuzzy_search)
