У меня есть программа на C, которую мне передал ушедший разработчик. Я пытаюсь выяснить, что именно он имел в виду, и перестроить программное обеспечение во что-то более логичное, чтобы мне было проще его создавать. Я использую CMake для сборки, тогда как он использовал Make.
Есть одна папка src/, в которой было несколько исходных файлов, и из них около 4 имели методы main(). Файлы с методами main() находятся в файлах, имена которых больше похожи на утилиты, инструменты или что-то в этом роде. Это кажется мне странным, потому что у него также была папка lib с некоторыми другими вещами, которые были собраны и больше похожи на библиотеки. Должен ли я разделить эти основные методы на исходные файлы «драйверов» и сделать методы, которые также определены в этих файлах, другими библиотеками? Если я это сделаю, я знаю, как заставить CMake искать библиотеку, создавать и связывать ее с драйвером для выполнения.
Если допустимо создавать эти исходные файлы «библиотеки» там, где они находятся, в папке src, должен ли я просто настроить CMake для сборки всего в этой папке одновременно, или я должен создать структуру каталогов, по крайней мере, для некоторого логического разделения ?
Просто как идея, вот текущая структура каталогов
project
.../src
......file1.c
......file2.c <-has a main() as well as other methods
......file3.c
......file4.c <- has a main() as well as other methods
......file5.c
.../lib
....../lib1
........./file1.c <-references top level include folder files
........./file2.c
....../lib2
........./file1.c <-refs top level and local include files
........./file2.c
........./file2.h
.../scripts
.../include
.
.
.
Приветствуются любые советы по передовым методам реструктуризации этой сборки или ее настройки в CMake.