gpt4 book ai didi

CMake : Add subdirectories to custom target and adding custom target to VS solution

转载 作者:行者123 更新时间:2023-12-04 04:48:43 25 4
gpt4 key购买 nike

使用 CMake,我正在尝试:

  • 我需要一个自定义构建目标(我知道,我可以使用 custom_target 创建它),但我希望将它添加到 Visual Studio 解决方案中。现在,当我创建自定义目标时,我会在文件夹中看到项目文件,但是当我在 VS IDE 中打开 VS 解决方案时,它没有显示/添加到 VS 解决方案中。
  • 我需要将子目录(其中包含 CMakeLists.txt)添加到自定义目标,以便将这些项目添加到自定义目标,并且在构建自定义目标时,这些项目将被构建。

  • 基本上是另一行构建,如 ALL_BUILD。当 ALL_BUILD 构建时,只有添加到其中的项目(子目录)才会构建。当自定义目标被构建时,只有添加到自定义目标的项目(子目录)才会被构建。

    有可能做这样的事情吗?

    非常感谢您的时间和帮助!

    --RC

    最佳答案

    您应该可以使用 add_custom_target 来做到这一点。和 add_dependencies .

    假设您有以下目录结构:

    root
    |--CMakeLists.txt
    |--main.cc
    |
    |--one
    | |--CMakeLists.txt
    | |--main_one.cc
    |
    |--two
    |--CMakeLists.txt
    |--main_two.cc

    假设您希望子目录“一”和“二”作为未包含在 ALL_BUILD 中的目标,则以下操作应该有效:

    顶级 CMakeLists.txt:
    cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
    project(test)

    add_executable(primary main.cc)

    add_subdirectory(one)
    add_subdirectory(two)

    add_custom_target(SecondaryAllBuild)
    add_dependencies(SecondaryAllBuild one two)

    “root/one”中的CMakeLists.txt(对于“root/two”中的CMakeLists.txt,将“one”换成“two”):
    cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
    project(secondary_one)
    add_executable(one EXCLUDE_FROM_ALL main_one.cc)

    关于CMake : Add subdirectories to custom target and adding custom target to VS solution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17765618/

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