find_package(Threads REQUIRED) include_directories(${BENCHMARK_INCLUDE_DIR}) include_directories(${GTEST_INCLUDE_DIR}) # get all cpp abs file names recursively starting from current directory file(GLOB poc_cpps *.cpp) message(STATUS "Available poc cpp files are: ${poc_cpps}") include_directories(${CMAKE_SOURCE_DIR}/poc) # for each cpp file build binary foreach(poc_cpp ${poc_cpps}) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${poc_cpp} NAME_WE) set(target_name memgraph_poc_${exec_name}) # build exe file add_executable(${target_name} ${poc_cpp}) # OUTPUT_NAME sets the real name of a target when it is built and can be # used to help create two targets of the same name even though CMake # requires unique logical target names set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) # link libraries target_link_libraries(${target_name} memgraph_lib) target_link_libraries(${target_name} gtest gtest_main) # google-benchmark requires threads target_link_libraries(${target_name} benchmark Threads::Threads) endforeach()