如何让CLion运行安装目标

20

我正在评估CLion 1.2.1,对一个已经使用CMake的现有项目进行评估。该项目由几个库模块和一个单独的可执行文件组成。

我有一个安装目标,用于将可执行文件和配置文件一起收集到bin文件夹中以进行调试:

...
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
install(FILES config.xml DESTINATION ${CMAKE_BINARY_DIR}/bin/)

在命令行中构建时,我只需运行:

make install

如预期的构建二进制文件,如果成功,则运行上述安装命令。

我的问题是我无法让CLion运行"install"目标。我原本以为可以创建一个新的运行/调试配置,但“目标:”下拉列表中只包含使用add_executable()add_library()添加的目标。

我还尝试在设置对话框中的“构建选项”中添加“install”。然而,现在它会为每个目标运行install,包括“clean”,这是不正确的。


关于此问题 https://youtrack.jetbrains.com/issue/CPP-838 - KindDragon
3个回答

29

更新: 截至2018.1 EAP, build 181.3741.16,如果你的项目定义了安装目标,CLion支持运行cmake install:


(来源:cloudfront.net


原始回答:

我认为CLion目前还没有实现这个功能。不过,你可以通过添加一个CMake “自定义目标”(使用add_custom_target())来绕过此限制,并执行make install命令:

add_custom_target(install_${PROJECT_NAME}
                  $(MAKE) install
                  DEPENDS ${PROJECT_NAME}
                  COMMENT "Installing ${PROJECT_NAME}")

现在,您所需要做的就是从CLion的“targets”菜单中“构建”install_YOUR_PROJECT_NAME目标。

更新:

一个更跨平台的技巧可能是以下内容:

add_custom_target(install_${PROJECT_NAME}
                  "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target install
                  DEPENDS ${PROJECT_NAME}
                  COMMENT "Installing ${PROJECT_NAME}")

1
@maddouri的评论已经回答了你的问题。或者,在设置 -> 构建、执行、部署 -> CMake下,您还可以将构建选项设置为调试或发布构建类型的-j 2 install之类的内容。通过这个设置,每当CLion构建代码时,它也会安装您的目标!

0
如果你想要安装在启动之前自动进行,打开“运行 | 编辑配置”对话框,选择所需的运行/调试配置,点击“应用通用添加”按钮,在“启动前”部分选择“安装”选项。

1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接