如何更改Cmake可执行文件运行目录[重复]

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

我正在为Cmake项目编写测试。该项目包含一个库子项目和一个测试子项目,用于测试库。

测试需要将一些输出图像与某些存储值进行比较,因此项目包含[ImageReferences]和[ImageOutputs]目录。

该项目的结构如下:

-[root]
---CMakeList.txt
---[library]
------CMakeList.txt
---[test]
------[ImageReferences]
------[ImageOutputs]
------CMakeList.txt
---[build]
------[library]
------[test]

如果我在[build]文件夹中运行cmake,测试可执行文件将最终出现在[build / test]文件夹中。这是好的和有意的,但是当我运行ctest时,我无法引用[ImageReferences]和[ImageOutputs]的位置。

目前,在代码中,我正在做:

ref_path = "../../test/ImageReferences"
out_path = "../../test/ImageOutputs"

这显然不理想,容易破裂。

我想要实现的解决方案是更改运行可执行文件的目录。如果我可以将[test]指定为运行目录,那么我可以直接引用[ImageReferences]和[ImageOutputs]文件夹,同时将可执行文件保留在[build / test]文件夹中。

我试图在cmake中做这个或者作为ctest的参数,我不能。我想知道是否有办法实现这一目标。

如果答案是否定的,我想了解哪些替代品我不再依赖于摇摇欲坠的本地路径。

cmake ctest
1个回答
0
投票

我设法让它通过ctest工作:

add_test(
    NAME ${TESTNAME}
    COMMAND ${TESTNAME}
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

但是,在使用CMake和Visual Studio 2017并从Test Explorer面板运行测试时,这不起作用。

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