file(GLOB all_sources *.c *.m *.mm)
set_source_files_compile_flags(${all_sources})

add_executable(rlist rlist.c test.c)
add_executable(queue queue.c)
add_executable(mhash mhash.c)
add_executable(rope_basic rope_basic.c ${CMAKE_SOURCE_DIR}/src/rope.c)
add_executable(rope_avl rope_avl.c ${CMAKE_SOURCE_DIR}/src/rope.c)
add_executable(rope_stress rope_stress.c ${CMAKE_SOURCE_DIR}/src/rope.c)
add_executable(rope rope.c ${CMAKE_SOURCE_DIR}/src/rope.c)
add_executable(bit_test bit.c bit.c)
target_link_libraries(bit_test bit)
add_executable(bitset_basic_test bitset_basic.c)
target_link_libraries(bitset_basic_test bitset)
add_executable(bitset_iterator_test bitset_iterator.c)
target_link_libraries(bitset_iterator_test bitset)

add_executable(objc_finally objc_finally.m)
add_executable(objc_catchcxx objc_catchcxx.m)
add_dependencies(objc_finally build_bundled_libs)
add_dependencies(objc_catchcxx build_bundled_libs)
target_link_libraries(objc_finally ${LIBOBJC_LIBRARIES} -lm -pthread)
target_link_libraries(objc_catchcxx ${LIBOBJC_LIBRARIES} ${LUAJIT_LIB} -lm -pthread)
if (TARGET_OS_LINUX OR TARGET_OS_DEBIAN_FREEBSD)
    target_link_libraries(objc_catchcxx dl)
endif()
