我正在尝试使用cmake和fetch_content来包含vulkan hpp库(我想自动化这一点,我不希望用户手动安装vulkan,如果这是一种错误的方法,请让我知道,因为我刚刚开始使用cmake),如以下代码片段所示
include(FetchContent)
FetchContent_Declare(
vulkanhpp
GIT_REPOSITORY https://github.com/KhronosGroup/Vulkan-Hpp.git
GIT_TAG b97783be3ed973f4e0d96fc7c680920f5ab0aa3a #1.2.191
)
FetchContent_GetProperties(vulkanhpp)
if ( NOT vulkanhpp_POPULATED )
message ( STATUS "Fetching vulkanhpp" )
FetchContent_Populate(vulkanhpp)
set ( SAMPLES_BUILD OFF CACHE INTERNAL "Build the vulkan hpp samples" )
set ( VULKAN_HPP_INSTALL OFF CACHE INTERNAL "Install vulkan hpp" )
add_subdirectory ( ${vulkanhpp_SOURCE_DIR} ${vulkanhpp_BINARY_DIR} )
endif ()现在我的问题是,当我放入cpp文件时,我不知道如何在main.cpp文件中包含" include“文件夹:
#include "vulkan/vulkan.hpp"
而不是将完整路径放在CMakeLists.txt中,而是使用某个CMake变量
我的另一个cmake列表如下
include_directories ( "" ) ### what should I put here for include vulkan hpp library ###
# Add source to this project's executable.
add_executable ( example "main.cpp" )这是自动管理vulkan hpp依赖关系的正确方式吗?在不使用find_package的情况下,还有其他选择吗?
发布于 2021-09-13 15:45:32
您指定的存储库实际上并不包含Vulkan标头。请改用this。它提供了一个CMakeLists.txt文件,该文件将头文件添加到一个名为Vulkan::Headers的库中,因此您只需添加子目录,然后使用target_link_libraries(example PRIVATE Vulkan::Headers)链接到它们。但是你为什么要这么做呢?要使用Vulkan,您必须安装Vulkan SDK (实际的库),并且SDK还包括头文件。
https://stackoverflow.com/questions/69144529
复制相似问题