如何在使用 dpkg-builpackage 构建软件包时为 CTest 设置库路径



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

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

CMake macro i use:

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}
)

好的,我已经想通了。因为我的库是用CMAKE_BINARY_DIR编译的,所以我所需要的只是添加 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)

相关内容

  • 没有找到相关文章

最新更新