Извлечь несколько файловых элементов и создать файл yaml - PullRequest
0 голосов
/ 03 июня 2018

У меня есть корневой каталог проекта CMakeLists.txt файл, который содержит подкаталоги, которые нужно добавить как add_subdirectory('dirname' 'ALL/BASE').Внутри каждого подкаталога есть свой собственный CMakeLists.txt, который содержит имя пакета и его заголовки, зависимости и другие атрибуты в качестве аргументов для стандартного вызова пакета библиотеки.Я хочу получить конкретные данные и создать файл YAML, который можно затем проанализировать для обработки.

CMakeLists.txt (корневой каталог):

add_subdirectory(sd1 ALL)
...(similar calls for - sd2, sd3, etc.)

CMakeLists.txt (подкаталог sd1):

... (some cmake script)
STANDARD_LIBRARY_PACKAGE([packagename] [attribute1-name] [attribute1-value(s)] [attribute2-name] [attribute2-value(s)] ... )
...(more cmake script) 

Задача - получить подкаталоги из самого внешнего файла, перейти в CMakeLists.txt подкаталога и получить пространство .разделите значений атрибутов и создайте файл yml.Команда STANDARD_LIBRARY_PACKAGE(args) присутствует во всех файлах subdir и нуждается в формате

yml:

packagename1
- attribute-name: attribute-values
- package-path: path/to/subdir
packagename2
-
- ...(similar more)

Я пробовал это с Python, но не могучтобы получить значения атрибута, так как некоторые основаны на условных состояниях (если переменная CMake установлена, используйте ее, иначе нет)

То, что я пробовал:

macro (show_args)
#  set(multiValueArgs DEPENDENCIES)
  message("${${}ARGV0}")
  message("${${}ARGV}")
endmacro()


function (ROOT_STANDARD_LIBRARY_PACKAGE)
  show_args()
endfunction()


ROOT_STANDARD_LIBRARY_PACKAGE(Genetic
                              HEADERS Math/GeneticMinimizer.h
                              DICTIONARY_OPTIONS "-writeEmptyRootPCM"
                              DEPENDENCIES Core MathCore TMVA)

Токовый выход:

Genetic
Genetic;HEADERS;Math/GeneticMinimizer.h;DICTIONARY_OPTIONS;-writeEmptyRootPCM;DEPENDENCIES;Core;MathCore;TMVA

Ожидаемый выход:

Genetic
- path: /path/to/file/directory
- deps: (all the DEPENDENCIES)

Как это сделатьманипуляция скриптом cmake .?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...