我想要将所有 Target 的工程在 Visual Studio 中加到同一个文件夹
一开始我想要重写 add_library 函数,来获取到那些 lib 添加了,进而获得所有的 library,存到一个 list 里面,最后对这个 list 遍历,设置 folder
# 3RD_PARTY_LIB_LIST stores all lib targets that have folder properity
set(3RD_PARTY_LIB_LIST "" CACHE INTERNAL "3RD_PARTY_LIB_LIST")
function(add_library name)
_add_library(${name} ${ARGN})
# if not Meow Editor, it is 3rd party library
if(NOT name STREQUAL ${RUNTIME_NAME})
if(TARGET ${name})
# alias target can not call set_target_properties
# interface library doesn't have folder property
# so exclude them
get_property(ALIAS TARGET "${name}" PROPERTY ALIASED_TARGET)
if("${ALIAS}" STREQUAL "")
get_target_property(3RD_PARTY_LIB_TYPE ${name} TYPE)
if(NOT ("${3RD_PARTY_LIB_TYPE}" STREQUAL "INTERFACE_LIBRARY"))
message(STATUS "Find 3rd lib: ${name}")

文章讲述了如何在CMake中修改`add_library`函数,以获取所有带有folder属性的3rd-party库,并将它们设置到同一文件夹下,同时处理utility工程和exclude特定目标的过程。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



