我不确定这是否是正确的命令,但每次谷歌搜索都会让我回到ExternalProject_Add
. 根据文档,我认为从 git 存储库下载特定文件唯一要做的就是指定 URL。但这似乎不起作用。
我正在尝试提取在https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator中找到的 headeronly 库
include(ExternalProject)
ExternalProject_Add(vma-external
URL https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/master/src/vk_mem_alloc.h
SOURCE_DIR "${CMAKE_SOURCE_DIR}/external/VulkanMemoryAllocator"
DOWNLOAD_DIR "${CMAKE_SOURCE_DIR}/external/VulkanMemoryAllocator"
BUILD_COMMAND ""
INSTALL_COMMAND ""
CONFIGURE_COMMAND ""
)
add_library(vma INTERFACE)
add_dependencies(vma vma-external)
target_include_directories(vma SYSTEM INTERFACE external/VulkanMemoryAllocator)
在“下载步骤选项”下方,它看起来好像仅指定 URL 就会告诉 CMake 抓取该文件。我最终得到的是一个新的空目录(VulkanMemoryAllocator),但没有 CMake 错误。我不确定我需要做什么。CMake 文档中的示例似乎暗示我什至不需要走到这里就可以让任何重要的事情发生(例如):
find_program(MAKE_EXE NAMES gmake nmake make)
ExternalProject_Add(secretsauce
URL http://intranet.somecompany.com/artifacts/sauce-2.7.tgz
https://www.somecompany.com/downloads/sauce-2.7.zip
URL_HASH MD5=d41d8cd98f00b204e9800998ecf8427e
CONFIGURE_COMMAND ""
BUILD_COMMAND ${MAKE_EXE} sauce
)
我没有 URL_HASH 或我的构建命令(因为它只是标题)。我只想让 CMake 获取文件,这样我就可以创建接口目标。