cmake — Использование —build-and-test в add_test для сборки исполняемого файла

Я прошу это, чтобы убедиться, что мой код реализован правильно. Если это так, то это более чем вероятно означает, что моя библиотека в какой-то момент неверна, что сужает проблему. Я получаю следующие ошибки при попытке построить свой тест, используя make t1:

make[3]: *** No rule to make target `/home/esias/VL3/modular2/vlMain/test', needed by `vlMain/CMakeFiles/t1'.  Stop.
make[2]: *** [vlMain/CMakeFiles/t1.dir/all] Error 2
make[1]: *** [vlMain/CMakeFiles/t1.dir/rule] Error 2

Предположим, я хотел бы собрать исполняемый файл «exec1» и протестировать его. В идеале это можно сделать, добавив исполняемый файл к цели и запустив make <target> — Пожалуйста, поправьте меня, если я ошибаюсь.

Насколько я знаю, это делается с помощью аргумента —build-and-test в add_test. Это код, который я использую:

  ADD_TEST(test1 exec1
--build-two-config
--build-and-test
"${CMAKE_SOURCE_DIR}/vlMain/vlMPIMain.cpp" #source to create from?
"${CMAKE_BINARY_DIR}/Tests/exec1" #output folder?
)

add_custom_target(t1 COMMAND ${CMAKE_CTEST_COMMAND} DEPENDS test1)

TARGET_LINK_LIBRARIES(t1
${GLEW_LIBRARY}
vlapp
vlrender
vldm
)

Я хотел бы построить исполняемый файл с именем «exec1», используя ${CMAKE_SOURCE_DIR}/vlMain/vlMPIMain.cpp как исходный код, и положить его в ${CMAKE_BINARY_DIR}/Tests/exec1 Тогда я хотел бы связать пару библиотек с ним.

Правильна ли моя реализация? Можно ли это улучшить?

Благодарю.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector