function(get_target_name target_name algorithm_name implementation_name) get_filename_component(implementation ${CMAKE_CURRENT_LIST_DIR} NAME) get_filename_component(implementation_path ${CMAKE_CURRENT_LIST_DIR} DIRECTORY) get_filename_component(algorithm ${implementation_path} NAME) set(${algorithm_name} "${algorithm}" PARENT_SCOPE) set(${implementation_name} "${implementation}" PARENT_SCOPE) set(${target_name} "${algorithm}-${implementation}" PARENT_SCOPE) endfunction(get_target_name)