【问题标题】:How to run CMake with predetermined settings?如何使用预定设置运行 CMake?
【发布时间】:2020-08-07 23:11:04
【问题描述】:

在 Visual Studio 中,使用 CMake 的项目将有一个 CMakeSettings.json 文件,该文件指定要使用的命令行参数。在 Visual Studio 以外的 IDE 中,如何控制 CMake 运行的参数?

假设 CMake 从项目根目录运行,我希望 CMake 初始化运行如下:
cmake -B build -DCMAKE_BUILD_TYPE=调试

我希望 CMake 构建像这样运行:
cmake --build 构建

我的项目结构如下所示:

project/  
|- bin/  
|   |- program (executable)  
|- build/  
|   |- ... CMake files ...  
|- src/  
|   |- program.c  
|   |- CMakeLists.txt  
|- CMakeLists.txt 

项目/CMakeLists.txt:

 cmake_minimum_required(VERSION 3.10)  
 project(Project VERSION 1.0)  
 file(MAKE_DIRECTORY bin)  
 add_subdirectory(src)

project/src/CMakeLists.txt:

 set(TARGET_NAME program)
 file(GLOB_RECURSE FILES *.c)
 add_executable(${TARGET_NAME} ${FILES})
 file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/${TARGET_NAME})
 set_target_properties(${TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY             
 ${PROJECT_SOURCE_DIR}/bin/${TARGET_NAME})

我了解开发人员可能希望使用 Visual Studio 以外的其他 IDE。有一个命令行脚本来正确运行 CMake 命令是个好主意吗?我的目标是能够让开发人员下载我的项目,并通过他们的 IDE 以最少的设置构建和运行它。

【问题讨论】:

  • 作为 Visual Studio 用户,我不想只构建调试。我通常使用 CMake 生成的项目构建 Debug 和 Release,有时还会构建 RelWithDebugInfo。
  • @drescherjm 是的,这只是一个例子。理想情况下,我希望能够使用 Debug and Release 以及 x64 和 x86 架构进行构建。不过,这可能超出了我在生成的项目文件之间的通用范围。

标签: c++ c cmake


【解决方案1】:

在 Visual Studio 以外的 IDE 中,如何控制 CMake 运行时使用的参数?

取决于您使用的 IDE。没有标准的方法。通常,有一个设置表单。

一个好的解决方案是记录应该使用的命令行命令。理想情况下,这些命令应该尽可能传统,例如您在问题中引用的那些命令,以便已经可以使用 CMake 的任何人都能够在没有 IDE 的帮助甚至不阅读文档的情况下编译程序。

您可以编写一个简单的 POSIX shell 脚本来运行这些命令,这很方便并且可以用作文档(只要您在自述文件中描述其用途)。

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 2012-04-24
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    相关资源
    最近更新 更多