gpt4 book ai didi

c++ - cmake - Visual Studio 过滤器的支持

转载 作者:行者123 更新时间:2023-12-02 12:05:07 27 4
gpt4 key购买 nike

我有一个 cmake 文件,可以生成包含多个子项目的解决方案,但我希望有一个“过滤器”(VS 特定功能)将我的所有第三方库分组在一起。

举个例子,现在我使用 ZLIB 库,它显示为一个项目,我使用以下内容:

add_subdirectory(zlib)

要添加此类过滤器,我尝试了以下操作:

add_subdirectory(zlib)
FILE(GLOB_RECURSE ZLIB_SOURCE "zlib/*")
SOURCE_GROUP("THIRDPARTY" FILES ${ZLIB_SOURCE})

在此示例中,我希望将“zlib”项目放入“THIRDPARTY”过滤器中。

但是我的解决方案没有任何改变!我使用VS2017和cmake 3.8

有什么想法吗?

最佳答案

有两种方法可以在解决方案资源管理器中分离应用程序的所有您自己的代码和第三方代码。

  1. 分离多个项目并将它们放入顶层文件夹中。
    执行以下操作:

  2. 要在项目中分离多个源文件,您可以执行以下操作:

    • 收集模块的所有文件:
      设置(VARIABLE_NAME src/module/fileName1.cpp
      src/module/fileName2.cpp)
    • 使其出现在过滤器中:
      source_group("源文件\\模块"FILES ${VARIABLE_NAME})
    • 将所有先前生成的过滤器分组在一起:
      设置(SOURCE_FILES "${VARIABLE_NAME}")
    • 最终使所有内容都显示在项目资源管理器中:
      add_executable(projectName "${SOURCE_FILES}")

以上内容适用于 CMake 3.6 和 Visual Studio 2015,因此它也应该适用于 VS2017 和 Cmake 3.8。
项目的所有文件完成后看起来像这样:

project explorer

由于您正在使用 VS 进行开发,因此我认为这是非常有用的另一个提示:您可以通过以下命令定义VS的启动项目。这样,在使用 CMake 重新创建项目后,您无需在 VS 中更改任何内容。
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT 项目名称)

关于c++ - cmake - Visual Studio 过滤器的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com