Я просматривал руководство по интеграции CMake IDE.
Одна функция, которую я ожидаю, — это возможность запрашивать список исходных файлов цели (например, список файлов, добавленных в target_sources()
). Однако в руководстве ничего подобного не упоминается.
При наблюдении за другими IDE, такими как CLion от JetBrain, кажется, что они поддерживают эту функцию, поскольку источники, которые были добавлены к цели с помощью target_sources()
, отмечены маленьким синим квадратом.
Есть ли способ запросить список исходных файлов цели через двоичный файл cmake? По сути, я хочу получить целевое свойство SOURCES.
Разве get_target_property(your_result_list your_target SOURCES)
не дает вам необходимой информации?
@vre Как мне запросить это «извне» файла списка CMake. IDE, которая получает интеграцию с cmake, должна иметь возможность запрашивать эту информацию через двоичный файл cmake
.
Вы правы, это работает только изнутри CMakeLists.txt. Может быть, CMake-file-API особенно этот объект можно запросить из внешнего приложения (IDE)? Я не использовал это до сих пор.
@vre Я быстро поиграл с cmake-file-api
. Это действительно именно то, что я искал! Вы хотите, чтобы это стало ответом, который я могу принять?
Начиная с версии 3.14 CMake предоставляет cmake-file-api для запроса информации о системе сборки. Он заменяет режим сервера CMake, который все еще поддерживается в текущей версии (на момент написания CMake 3.19). Следующий codemodel-version-2-target-object кажется подходящим для вашей задачи по запросу источников цели.
Это именно то, что я искал. Большое спасибо!
Насколько я понимаю, нужно использовать особенности конкретного генератора CMake. Именно генератор отвечает за то, какая информация о целях хранится и в каком формате.