Dynami c список источников для CMake - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь настроить свой проект CMake так, чтобы он мог принимать динамический c исходный список. Но по какой-то причине я получаю пустой список из файловой функции. Итак, я попытался выполнить ту же операцию двумя способами:

[1] stati c list (нежелательный способ)

set(VARIANT_A "src/dir1/*.cpp src/dur2/*.cpp src/dir3/*.cpp") 
file(GLOB SRC . ${VARIANT_A})  
messages(${SRC})

здесь я получаю файл список, который мне нужен.

[2] Dynami c список (то, что я хочу сделать)

set(VARIANT_B "dir1 dir2 dir3")
string(REPLACE " " ";" DirList ${VARIANT_B})
set(Sources "")
foreach(Dir ${DirList})
    set(Sources "src/${Source}/*cpp ${Sources}")
endforeach()
message(${Sources})
file(GLOB SRC . ${Sources})
messages(${SRC})

здесь я почему-то получаю пустой список, несмотря на то, что что message(${Sources}) выводит ту же строку, что и ${VARIANT_A}.

Так что я делаю не так?

1 Ответ

0 голосов
/ 06 августа 2020

Чтобы создать список, вам нужно сделать это

set(VARIANT_A "src/dir1/*.cpp;src/dur2/*.cpp;src/dir3/*.cpp") 
list(LENGTH VARIANT_A iCount)
message( "LENGTH=${iCount}" )

CMake Tutorial

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