假设我有以下代码:
include(FetchContent)
FetchContent_Declare(cmark
GIT_REPOSITORY https://github.com/commonmark/cmark.git
GIT_TAG 0.29.0
)
FetchContent_MakeAvailable(cmark)
target_link_libraries(hello_world cmark::cmark_static)
install(TARGETS hello_world DESTINATION bin)
这可以正常工作,但是每当我运行make install
时,它也会安装所有的cmark文件(如include/cmark_version.h
、lib/pkgconfig/libcmark.pc
等)。
有什么方法可以禁止从包含FetchContent的包安装文件吗?
1条答案
按热度按时间juud5qan1#
宏
FetchContent_MakeAvailable
包含使用add_subdirectory
命令的子项目。此命令具有特殊选项-EXCLUDE_FROM_ALL
-用于禁用内部install
调用。因此,您可以将call
FetchContent_MakeAvailable
替换为:(This实际上是FetchContent documentation中提到的
FetchContent_GetProperties
调用的确切替代方法,但具有额外的EXCLUDE_FROM_ALL
参数。)