使用dpkg-builpackage构建包时如何设置CTest的库路径?

时间:2017-01-17 07:17:20

标签: cmake dpkg ctest

我在我的项目中使用CTest。我添加了简单的脚本来运行测试POST_BUILD。当我使用make构建项目时,一切正常。

当我使用dpkg-buildpackage构建包时,有趣的部分开始了。 CTest似乎在系统目录中寻找库而不是使用当前构建的库。有没有办法告诉CTestdpkg-buildpackage在执行测试时使用当前构建的库?

使用CMake宏:

add_executable(example tests/example.cpp)
target_link_libraries(example my_lib)
enable_testing()

macro(add_unit_test target test)
    list(APPEND tests ${test})
    add_test(${target} ${test})
endmacro(add_unit_test)

add_unit_test(test_example example)

add_custom_target(all_tests ALL DEPENDS ${tests})

add_custom_command(
    TARGET all_tests
    COMMENT "Run tests"
    POST_BUILD COMMAND ctest ARGS --output-on-failure
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)

1 个答案:

答案 0 :(得分:0)

好的,所以我已经弄清楚了。 因为我的lib在LD_LIBRARY_PATH编译,所以我需要的是添加 macro(add_unit_test target test) list(APPEND tests ${test}) add_test(${target} ${test}) set_property(TEST ${target} PROPERTY ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}") endmacro(add_unit_test) 对项目中的每个测试都有所了解。

所以宏现在看起来像这样:

12hju 1002