Главное, что вам нужно понять, что вам здесь не хватает, это то, что вы на самом деле не ссылаетесь на DLL; вместо этого вы ссылаетесь на файл .lib, который поставляется вместе с DLL и который будет выполнять за вас загрузку DLL за кулисами. Где бы вы ни создавали свою зависимую dll, вы обнаружите, что есть также файл .lib; укажите это как цель ссылки в target_link_libraries.
Далее, если вы хотите, чтобы он открыл файл include "sample.h", вам нужно добавить путь к sample.h в ваши каталоги include с помощью команды cmake include_directories .
Я подозреваю, что это опечатка, но вы также указали sample.dll дважды; один раз в LIBRARY_PATH, а затем один раз в вашем вызове target_link_libraries. Это не сработает, так как попытается связать его с $ {CMAKE_CURRENT_SOURCE_DIR} /sample.dll/debug/sample.dll
Когда ничего не помогает, откройте свойства проекта в Visual Studio (поскольку это то, что вы используете) и посмотрите, какие есть библиотеки и каталоги; это часто поможет вам понять, что на самом деле делает cmake.
Надеюсь, это поможет!