Если ваша линия find_package(Vulkan REQUIRED FATAL_ERROR)
не работает, вам необходимо убедиться, что Vulkan SDK установлен правильно, т. Е. У вас есть переменная среды VULKAN_SDK, которая указывает на правильное местоположение.
Кроме того, не вставляйте репозиторий KhronosGroup/Vulkan-Hpp
. Этот репозиторий предназначен для создания привязок Vulkan C ++, но не должен использоваться напрямую. Вместо этого вы должны использовать заголовок vulkan.hpp, который поставляется вместе с вашей установкой Vulkan SDK. В противном случае, когда люди пытаются построить ваш проект и установить версию Vulkan SDK, отличную от указанной во встроенном KhronosGroup/Vulkan-Hpp
В более общем случае вы используете find_package
, а затем вы используете add_subdirectory
, чтобы попытаться включить эти внешние проекты. Это не так, как это работает. find_package
будет искать уже существующий двоичный файл пакета, тогда как add_subdirectory
не предназначен для того, чтобы просто проглотить все существующие внешние проекты CMake.
Если вы хотите, чтобы ваш проект строил эти другие из исходных текстов, вам следует изучить использование внешней функции проекта CMake . Тем не менее, вы, вероятно, сочтете это большим бременем, чем оно того стоит. В качестве альтернативы, установите vcpkg для вашей целевой платформы и используйте vcpkg для сборки и установки glfw и sfml, затем скажите CMake, чтобы использовать зависимости vcpkg (см. Документацию vcpkg о том, как передать CMAKE_TOOLCHAIN_FILE в строку конфигурации cmake.