В настоящее время я изменяю систему сборки моего проекта с make-файлов gnu на cmake (которые генерируют make-файлы).
Мой проект создает несколько библиотек (.lib) и несколько исполняемых файлов (.exe).
В настоящее время я генерирую make-файлы, используя следующую команду:
cmake -G "Unix Makefiles" .. -DCMAKE_BUILD_TYPE=Debug
Сгенерированные make-файлы содержат цель all
, а также цель для каждого исполняемого файла (скомпилированного как таковое с помощью директивы add_executable
cmake), поэтому я могу скомпилировать подмножество проекта (что экономит много времени). ): make executable_1; make executable_2
и т. Д.
Однако для библиотек нет цели (скомпилированной как таковая с помощью директивы add_library
cmake), поэтому я не могу, например, make library_1
. Я хочу сделать это, потому что это сэкономит много времени.
Я попытался добавить фиктивный исполняемый файл в cmake библиотеки и связать библиотеку с этим исполняемым файлом (который содержит только основную часть без фактического использования кода library_1).
add_library(library_1 test.cpp)
add_executable(dummy_exe dummy_main.cpp)
target_link_library(dummy_exe library_1)
Он добавляет цель для dummy_exe, но не создает библиотеку, потому что на самом деле ему не нужно связывать какой-либо код library_1.
В любом случае, это была попытка обхода, и я все-таки предпочел бы просто позвонить make library_1
. Есть ли способ добавить цель make-файла для библиотеки с помощью cmake?