J'utilise CTest dans mon projet. J'ai ajouté un script simple pour exécuter des tests en tant que POST_BUILD
. Tout fonctionne bien quand je construis le projet avec make
.Comment définir le chemin de la bibliothèque pour CTest lors de la construction du paquet avec dpkg-builpackage?
La partie intéressante commence quand je construis un paquet avec dpkg-buildpackage
. CTest semble chercher des bibliothèques dans les répertoires système au lieu d'en utiliser une actuellement construite. Y a-t-il un moyen de dire à CTest
ou dpkg-buildpackage
d'utiliser une bibliothèque actuellement construite lors de l'exécution des tests?
macro CMake i utiliser:
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}
)
'CTest semble rechercher des bibliothèques dans les répertoires du système au lieu d'utiliser un actuellement construit one.' - Plus probablement, il est juste ** votre environnement ** est configuré pour préférer les bibliothèques dans les répertoires système aux projets locaux. Avez-vous essayé d'appeler le fichier exécutable 'example' directement? Quelles bibliothèques sont utilisées dans ce cas? – Tsyvarev
@ Tsyvarev quand je l'exécute directement, il utilise des bibliothèques locales. Peut-être que j'ai besoin de définir des paramètres pour debian/rules, mais je ne sais pas exactement de quoi j'ai besoin – Yaroslav