考虑一个由一个库和一组使用该库的可执行文件组成的项目。一种简单的方法是add_library(),后接一系列对add_executable() target_link_libraries()。
这是大量的样板代码。如果能够执行类似的操作set(PROJECT_LINK_LIBS, lib1 ...)并让 CMake 删除额外的样板文件,那就太好了。
进一步思考这一点,我意识到我想要一个link_libraries行为类似于 的函数include_directories。我认为:
有这样的事吗?
有没有办法从LINK_LIBRARIES添加的中删除库target_link_libraries?
target_link_libraries(Project library1 library2)
get_target_property(cur_cflags Project LINK_LIBRARIES)
message(STATUS ${cur_cflags})
# should print library1 and library2
# here I do something to remove library1
get_target_property(cur_cflags Project LINK_LIBRARIES)
message(STATUS ${cur_cflags})
#should print library2 only
Run Code Online (Sandbox Code Playgroud)
谢谢
cmake ×2