|
21 | 21 | * Стек и очередь не должны ограничивать число сохраняемых значений
|
22 | 22 | * Дополнительные требования указаны в комментариях к заголовкам функций
|
23 | 23 |
|
| 24 | +# Структура файлов CMakeLists.txt |
| 25 | + |
| 26 | +Файлы CMakeLists.txt описывают состав проекта и правила его сборки с помощью утилиты cmake. |
| 27 | +В них можно создавать подключаемые библиотеки, исполняемые файлы и тесты. |
| 28 | + |
| 29 | +Основное, что компилируется - это исполняемые файлы. Их сборка описывается с помощью |
| 30 | +директивы add_executable. |
| 31 | + |
| 32 | +Библиотеки уже описаны в каталогах Library*: |
| 33 | + |
| 34 | + add_library(LibraryC STATIC array.c list.c queue.c stack.c vector.c) |
| 35 | + add_subdirectory(Tests) |
| 36 | + |
| 37 | +Первая строчка обисывает сборку подключаемой библиотеки LibraryC из соответствующих исходных файлов. |
| 38 | +Вторая строчка добавляет проекты из подкаталога Tests. |
| 39 | + |
| 40 | +В подкаталоге Tests описаны тесты для базовой проверки работоспособности библиотеки: |
| 41 | + |
| 42 | + add_executable(TestArrayC array.cpp) |
| 43 | + target_include_directories(TestArrayC PUBLIC ..) |
| 44 | + target_link_libraries(TestArrayC LibraryC) |
| 45 | + add_test(TestArrayC TestArrayC) |
| 46 | + |
| 47 | +Директива add_test указывает, какую программу и с какими аргументами запускать |
| 48 | +в этом тесте. Большинство тестов закомментированы, и по мере расширения |
| 49 | +библиотеки их нужно включать. |
| 50 | + |
| 51 | +Все тесты запустить можно с помощью команды make test. |
| 52 | + |
24 | 53 | # Добавление нового решения задачи
|
25 | 54 |
|
26 | 55 | Добавить подкаталог и модифицировать основной файл CMakeLists.txt:
|
|
32 | 61 | add_executable(Lab1C lab1.c)
|
33 | 62 | target_include_directories(Lab1C PUBLIC ../LibraryC)
|
34 | 63 | target_link_libraries(Lab1C LibraryC)
|
| 64 | + add_test(NAME TestLab1C COMMAND Lab1C ${CMAKE_CURRENT_SOURCE_DIR}/input.txt) |
35 | 65 |
|
36 |
| -В последних двух строчках нужно ссылаться на используемый вариант библиотеки. |
| 66 | +Во второй и третьей строчках нужно ссылаться на используемый вариант библиотеки. |
37 | 67 |
|
38 | 68 | После этого в нужной библиотеке реализовать требуемый по условию контейнер, чтобы
|
39 | 69 | тесты и программа заработали правильно.
|
40 | 70 |
|
41 |
| -Проверить тесты локально можно с помощью команды ctest, выполненной в подкаталоге build. |
| 71 | +Последняя строка добавляет запуск разработанной программы в виде теста. |
| 72 | +При этом в качестве аргумента ей передаётся файл input.txt, который находится |
| 73 | +в каталоге с исходным кодом. |
| 74 | + |
| 75 | +Проверить тесты локально можно с помощью команды ctest или make test, |
| 76 | +выполненной в подкаталоге build. |
42 | 77 |
|
0 commit comments