CMake глобальный список файлов без пути к каталогу - PullRequest
0 голосов
/ 07 июня 2018

Я интенсивно искал на этом сайте и за его пределами, но я не могу найти решение этой проблемы:

Если вы перетащите список файлов с файлом (GLOB ..) в CMake,все файлы перечислены с указанием их полного пути.

Как я могу перетащить группу файлов в CMake, сохранив только имена файлов?

Я прочитал официальное руководство и вот я нашел это:

 file(GLOB <variable>
 [LIST_DIRECTORIES true|false] [RELATIVE <path>]
 [<globbing-expressions>...])

и

 By default GLOB lists directories - directories are omitted in result 
 if LIST_DIRECTORIES is set to false.

Я пробовал эти решения, но ни одно из них не работает:

file(GLOB_RECURSE src_files LIST_DIRECTORIES false ${SRC})

file(GLOB_RECURSE src_files LIST_DIRECTORIES=false ${SRC})

file(GLOB_RECURSE src_files LIST_DIRECTORIES(false) ${SRC})

set(LIST_DIRECTORIES false)
file(GLOB_RECURSE src_files ${SRC})

Но ни одно из нихпохоже на работу.Мой вывод всегда список файлов с полным путем прилагается.Я знаю, что мог бы использовать RELATIVE, чтобы соответственно указать путь, но я бы предпочел избегать его, если смогу.

Спасибо за ваши ответы!

Ответы [ 2 ]

0 голосов
/ 30 июля 2019

Попробуйте

file(GLOB_RECURSE LIST_DIRECTORIES false src_files ${SRC})

Документация ошибочна, LIST_DIRECTORIES предшествует переменной

0 голосов
/ 07 июня 2018

LIST_DIRECTORIES используется для включения / исключения каталогов в ваши результаты в ситуации, когда указанное местоположение ${SRC} содержит как файлы, так и каталоги.

Если вы хотите избавиться от пути, используйте foreachс get_filename_component по результатам file(GLOB_RECURSE...)

...