使用 Ninja 生成器为 Visual Studio 2022 CMake 项目设置工作目录

问题描述 投票:0回答:1

我需要一种方法来使用 Ninja 生成器为我的 Visual Studio 2022 CMake 项目设置调试器工作目录。设置

VS_DEBUGGER_WORKING_DIRECTORY
目标属性不起作用:只有
launch.vs.json
编辑有效。我显然需要从 CMake 端设置它,因为在编辑启动文件时,我无法为我的 GitHub 存储库保存此设置。

另外我想说,设置该属性does仅在我设置 Visual Studio 17 2022 生成器并使用

.sln
文件而不是 Visual Studio 中的
CMake Project
打开我的项目的情况下才起作用,但这不是我想要的想要。

visual-studio cmake build ninja working-directory
1个回答
0
投票

开发者想要设置工作目录一般有2个原因。

1.) 正在加载

files
.

如果这是你的情况,请看一下这个问题:从 Visual Studio 到 CMake,如何设置当前工作目录?

我描述了一种适用于 Visual Studio / Ninja 生成器的方法。

2.) 加载中

dlls
.

CMake 3.21 添加了针对这种情况的功能。

$<TARGET_RUNTIME_DLLS:tgt> New in version 3.21.

此生成器表达式可用于使用 cmake -E copy -t 命令将目标依赖的所有 DLL 复制到 POST_BUILD 自定义命令中的输出目录中。例如:

find_package(foo CONFIG REQUIRED) # package generated by install(EXPORT)

add_executable(exe main.c)
target_link_libraries(exe PRIVATE foo::foo foo::bar)
add_custom_command(TARGET exe POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy -t $<TARGET_FILE_DIR:exe> $<TARGET_RUNTIME_DLLS:exe>
    COMMAND_EXPAND_LISTS
)

官方文档链接:

https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#genex:TARGET_RUNTIME_DLLS

如果这两种方法都不适合您,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.