visual-studio - 如何使用 CMake 和 Visual Studio 设置路径环境变

我正在使用 CMake 生成 Visual Studio 项目文件。我想在设置 PATH 环境变量后运行测试可执行文件,以便它能够加载所需的 dll。我按照 http://www.mail-archive.com/cmake@cmake.org/msg21493.html 的讨论进行了尝试但它不起作用。

您是否将 CMake 与 Visual Studio 一起用于此目的?请分享您的经验。

此外,我找不到调试 CMake 脚本的简单方法,例如查看它分配给 PATH 变量的值。使用 CMAKE_VERBOSE_MAKEFILE 设置 CMake 详细没有帮助。我将如何自己调试它?

最佳答案

要从 CMake 在 Visual Studio 中设置自定义项目设置,您可以使用 XML 文件作为模板,该模板可以从 CMake 配置为用作 .user 文件。
在我的工作中,我们使用它来设置自定义调试参数。

检查包含生成的 .vcxproj 文件的目录以了解 .user 文件中的用户设置。这是我们使用的示例 UserTemplate.vcxproj.user 文件的片段。

    <?xml version="1.0" encoding="Windows-1252"?>
      <VisualStudioUserFile
        ProjectType="Visual C++"
        Version="9.00"
        ShowAllFiles="false"
        >
        <Configurations>
            <Configuration
                Name="Debug|@USERFILE_PLATFORM@"
                >
                <DebugSettings
                    Command="@USERFILE_COMMAND_DEBUG@"
                    WorkingDirectory="@USERFILE_WORKING_DIRECTORY_DEBUG@"
                    CommandArguments="@USERFILE_COMMAND_ARGUMENTS_DEBUG@"
                    Attach="false"
                    DebuggerType="3"
                    Remote="1"
                    RemoteMachine="@USERFILE_REMOTE_MACHINE_DEBUG@"
                                <!-- More settings removed for snippet -->
                />
            </Configuration>
                <!-- Rest of Configurations -->

另一个用于设置 PATH 变量的 UserTemplate.vcxproj.user 示例是:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
        <LocalDebuggerEnvironment>PATH=..\Your_path;%PATH%".</LocalDebuggerEnvironment>
        <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
      </PropertyGroup>
    </Project>

CMakeLists.txt 文件旁边设置 UserTemplate.vcxproj.user 文件,您可以将任何需要的 CMake 变量注入(inject) .vcxproj.user 构建项目的文件。 在 CMake 中,您可以设置适当的 CMake 变量(如果需要,还可以在模板文件中添加更多变量)。接下来你可以做这样的事情来配置文件。

    # Find user and system name
    SET(SYSTEM_NAME $ENV{USERDOMAIN} CACHE STRING SystemName)
    SET(USER_NAME $ENV{USERNAME} CACHE STRING UserName)

    # Configure the template file
    SET(USER_FILE ${_projectName}.vcxproj.${SYSTEM_NAME}.${USER_NAME}.user)
    SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
    CONFIGURE_FILE(UserTemplate.vcxproj.user${USER_FILE} @ONLY)

如果你不关心系统和用户名,下面的配置就足够了。

    # Configure the template file
    SET(USER_FILE ${_projectName}.vcxproj.user)
    SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
    CONFIGURE_FILE(UserTemplate.vcxproj.user ${USER_FILE} @ONLY)

关于visual-studio - 如何使用 CMake 和 Visual Studio 设置路径环境变量来运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1005901/

相关文章:

performance - 如何针对构建持续时间和 RAM 使用优化 gradle 构建性能?

c# - Visual Studio - 无法删除项目配置

c# - IIS 7.5 Fixing 尝试加载格式错误的程序?

build - 如何清理 TeamCity 中旧的失败构建?

makefile - 为什么我被警告项目没有使用 "CMAKE_TOOLCHAIN_FILE"变量?

ios - Xcode 可以构建项目但不能在模拟器上运行

build - 使用 cmake,您将如何禁用源内构建?

c# - .g.cs 文件中的错误?

python - 在 setup.py 中清理构建目录

visual-studio - Visual Studio 中的内容构建操作是什么?