【发布时间】:2019-01-03 19:10:51
【问题描述】:
我想在 Windows 下使用 CMake + Visual Studio 构建一个具有很多依赖项的应用程序,例如zlib。它们都是静态库。
我已经尝试过ADD_SUBDIRECTORY,它工作得很好,但不是只构建依赖目标(zlibstatic),而是构建所有目标。
如何删除未使用的目标(及其解决方案)或只选择一个? 主要是我在寻找功能来定义只需要的目标。
我的CMakeLists.txt的一部分:
ADD_SUBDIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib")
TARGET_INCLUDE_DIRECTORIES(MyProject PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib")
TARGET_LINK_LIBRARIES(MyProject zlibstatic)
【问题讨论】:
-
@Fred,这有点帮助。现在它没有构建我不想要的目标,但他们的解决方案仍然放在 MyProject 附近。这也不是优雅的解决方案,因为您需要编写您不想构建的每个目标。主要是我在寻找功能来定义只需要的目标,而不是禁用不需要的目标。
-
根据zlib mirror,只有 2 个目标 - 共享库和静态库。如果您愿意编辑 zlib 的 CMakeLists.txt,您可以删除您不感兴趣的部分。
-
@SteveLorimer 我仍然想让所有依赖项保持最新。因此,每次更新时为每个依赖项更改每个
CMakeLists.txt是非常不舒服的。 -
@kerrytazi 每个人都有自己的 - 在#work 我们有我们自己的
CMakeLists.txt文件,用于我们拉入的每个第 3 方依赖项(总共约 40 个)。我们这样做主要是因为我们想要控制依赖项的编译器选项。根据我的经验,维护一点也不不舒服。当然是 YMMV
标签: c++ visual-studio cmake