2014-11-28 2 views
2

Я хочу создать вспомогательный скрипт bash, чтобы разделить сгенерированный файл на его источник. Структура каталогов выхода совпадает с исходным кодом, так что я должен быть в состоянии найти имя исходного файла, если я имел эти данные:Найти исходный каталог из каталога сборки в cmake

  • имя создаваемого файла (это будет передано в сценарий)
  • CMAKE_PROJECT_SOURCE_DIR (мне нужно, чтобы это выяснить)

Мой план, чтобы получить это:

  • идти вверх по дереву каталогов поиска файла CMakeCache.txt.
  • Когда/если найден, запустите CMake как-то напечатать путь к источнику

Как я могу это сделать? Предпочтительно без необходимости конфигурировать/генерировать (поскольку это вводит немного задержки). Должен ли я вместо grep указать конкретный файл в папке сборки? Который из?

ответ

1

После расположен CMakeCache.txt вы можете вычленить для исходного проекта директории в нем следующим образом:

cat CMakeCache.txt | grep -E '.*_SOURCE_DIR:STATIC=.*' | grep -E -o '/.*' 

Это выводит значение переменной _SOURCE_DIR.

Смежные вопросы