是否可以在cmake中不生成ALL_BUILD项目?

2023-12-30

我不需要 ALL_BUILD 子项目,我可以避免生成它吗?谢谢。


CMake 问题 #16979:“正在生成 ALL_BUILD 目标” https://gitlab.kitware.com/cmake/cmake/issues/16979:

The ALL_BUILDtarget 对应于 CMake 的“all”目标概念,相当于使用 makefile 生成器 make all。由于 VS IDE 处理 vcxproj 间依赖关系的方式不同,这与“构建解决方案”行为不同。

没有办法抑制ALL_BUILD目标。对于像这样的命令它必须存在cmake --build。能够默认构建“all”目标。

所以你无法避免它 - 就像 @arrowd 答案一样 - 但 CMake 中的一些内容可能会影响它的使用/外观(在 Visual Studio 等 IDE 生成器上):

  1. 当您激活全局USE_FOLDERS https://cmake.org/cmake/help/latest/prop_gbl/USE_FOLDERS.html财产

     set_property(GLOBAL PROPERTY USE_FOLDERS ON)
    

    通用目标ALL_BUILD, ZERO_CHECK, INSTALL, PACKAGE and RUN_TESTS将被分组为CMakePredefinedTargets文件夹(或全局中指定的名称)PREDEFINED_TARGETS_FOLDER https://cmake.org/cmake/help/latest/prop_gbl/PREDEFINED_TARGETS_FOLDER.html财产)。

  2. 全局变量CMAKE_SKIP_INSTALL_ALL_DEPENDENCY and CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY抑制否则自动生成的依赖关系INSTALL or PACKAGE to the ALL_BUILD target.

  3. 全球VS_STARTUP_PROJECT https://cmake.org/cmake/help/latest/prop_dir/VS_STARTUP_PROJECT.html属性可用于将默认启动项目名称更改为除ALL_BUILD或“第一个项目不在子文件夹中”目标。

参考

  • 什么是 ALL_BUILD 和 ZERO_CHECK?我需要它们吗? https://stackoverflow.com/questions/27175754/what-are-all-build-and-zero-check-and-do-i-need-them
  • 如何跳过对包目标的所有依赖? https://stackoverflow.com/questions/43609677/how-to-skip-dependency-on-all-for-package-target
  • 使用解决方案文件夹时没有 CMakePredefinedTargets https://stackoverflow.com/questions/36149962/no-cmakepredefinedtargets-when-using-solution-folders
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在cmake中不生成ALL_BUILD项目? 的相关文章

  • 用于区分调试和发布版本的 CMake 变量或属性

    我想为调试和发布版本设置不同的 CMake 变量 我尝试像这样使用 CMAKE CFG INTDIR IF CMAKE CFG INTDIR STREQUAL Debug SET TESTRUNNER DllPlugInTesterd dl
  • CMake 中 LINK_LIBRARIES 的递归列表

    我正在尝试获取链接到 CMake 中特定目标的所有库的绝对路径列表 以便在调用中使用add custom command 然而 get target property LINK LIBRARIES TARGET LINK LIBRARIES
  • 通过ExternalProject_Add 使用 pybind11 进行 CMake 项目的智能方法

    我正在使用编写一个 python 模块pybind11 with CMake3 9 4 因为方便所以想下载pybind11源文件使用ExternalProject Add in my CMakeLists txt 当我跑步时cmake 它不
  • 为 CMake 中的子目录生成“干净”目标

    我想生成一个clean子目录的目标 我的项目结构是这样的 app A B lib A B C 有时我只想在 app A 上运行干净 并且不想清理库 是否可以告诉 CMake 生成clean每个目录的目标 或者像这样的自定义目标应用程序清理哪
  • 针对 dll/lib 的 cmake 链接

    我的 cmake 的输出是一个静态库 我正在这样创建它 add library myMainLib STATIC BACKEND SOURCES 当我尝试让 myMainLib 链接到第三方 lib dll 时 出现了问题 dll 文件将在
  • 如何将 gnatmake/gnatbind/gnatlink 集成到 C/Ada 代码的 CMake 文件中?

    我用几种语言 C C Fortran77 Fortran90 编写了代码 并且可以使用 CMake 编译它 没有任何问题 效果很完美 现在 我想在用 C 编写的 main 中添加一些 Ada 函数 并且我想通过 CMake 编译它 鉴于我无
  • 使用 CMake 时如何导出 Emscripten 中的 C 函数

    In 本教程 https emscripten org docs porting connecting cpp and javascript Interacting with code html interacting with code
  • 如何在使用 Cmake 构建期间编译 HLSL 着色器?

    我正在开发 d3d 应用程序 我想在使用 cmake 构建期间编译我的 hlsl 着色器 我不知道从哪里开始 这是我当前的 CMakeLists txt cmake minimum required VERSION 3 20 project
  • 为什么 cmake 在 git commit 后编译所有内容

    假设我有时在 Linux 上使用 cmake 2 8 编译一段代码 我更改了一个文件 my changed file 运行 cmake 并且只构建了这个文件 到目前为止 一切都很好 现在我想提交这个 git add my changed f
  • 将 dll/lib 链接到 cmake 项目

    我试图将库链接到我的 cmake 项目 但遇到链接器错误 我花了 2 个小时尝试解决这个问题 并创建了一个简单的项目 在其中对所有路径进行了硬编码 CMAKE MINIMUM REQUIRED VERSION 3 0 PROJECT Tes
  • 如何防止 CMake 在构建时(而不是安装时)为共享库创建符号链接?

    我正在使用 CMake 在 Linux 上使用 Bullet3 构建一个项目 在构建整个解决方案时 它会构建附加了 SOVERSION 的 Bullet 输出库 并创建一个不带版本的符号链接 对于我的特定场景 我不喜欢这种行为 并且我不想编
  • Yocto 如何停止 cmake 在本机 sysroot 路径中查找链接?

    到目前为止 我正在尝试将 dlib python 模块添加到我的图像中 这是我正在研究的食谱 python3 dlib 19 21 1 bb SUMMARY A toolkit for making real world machine l
  • 了解 CMake 背后的目的[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解 CMake 背后的目的 为什么它被设计成现在这样 以下是我想回答的一些问题 为什么CMake会生成生成文件 https e
  • 如何告诉 CMake 将构建文件放在哪里?

    我想告诉 CMake 将文件和文件夹输出到不同的文件夹而不是当前文件夹 我在下面讨论的是 CMake 生成的文件 文件 CMakeCache txt 目录 CMakeFiles 文件 生成文件 目录 bin 文件 cmake install
  • Cmake选项默认值

    如果我有一个 CMakeLists txt 文件 cmake minimum required VERSION 2 8 OPTION FOO Foo Option OFF MESSAGE FOO FOO 然后我调用 cmake 得到以下输出
  • CMAKE - 运行时库隐藏文件

    我正在运行 Linux Redhat 我安装了 Anaconda 并且我正在尝试使用安装程序 libspimage CMAKEamd 我收到以下警告 错误 src CMakeLists txt 74 ADD LIBRARY 处的 CMake
  • Opencv - 找不到头文件

    我正在尝试使用 opencv 开始开发 问题是 到目前为止我几乎无法设置 opencv 因为我找不到它的头文件 我对此主题进行了一些研究 但没有一个真正有帮助 下面是一些链接 opencv2 包含文件在哪里 https stackoverf
  • 将 cmake 与 nmake x64 一起使用

    我使用 cmake 生成 NMake 文件 一切正常 我使用 x64 工具集 没有 Visual Studio 只有 SDK 因此我输入 nmake 但它生成 x86 构建而不是 x64 构建 你知道为什么吗 以及如何强制 nmake 以
  • 我可以安装共享导入库吗?

    我有一个外部项目和一个导入的共享库 include 目录和 implib 都可以正常工作 但尝试安装共享库 dll 失败并出现以下错误 install TARGETS given target my shared lib which doe
  • CMake source_group() 无法在分层项目设置中正常工作

    在进行更改以使 CMake 项目具有分层文件夹管理后 source group 似乎不再正常工作 CMake 只是将所有内容转储到默认过滤器中 我尝试了各种正则表达式来从父级获取每个源文件的相对文件路径 甚至对父级 CMakeLists t

随机推荐