Я использую CMake 2.8.1 (в Windows) с генератором "Visual Studio 10"
. GLOB
и source_group
не работают вместе. Есть ли способ заставить это работать?
Я использую file( GLOB ... )
для создания списка .cpp
файлов, а затем использую source_group
для создания фильтра в сгенерированном проекте Visual Studio:
# C:\Users\My Name\hello\CMakeLists.txt
cmake_minimum_required( VERSION 2.8 )
project( hello_proj )
file( GLOB HELLO_SRCS *.cpp )
message( "HELLO_SRCS="${HELLO_SRCS} )
#source_group( hello_group ${HELLO_SRCS} ) #line 6: uncomment to get error
add_executable( hello_exec ${HELLO_SRCS} )
с закомментированной строкой 6, проект сгенерирован нормально:
C:\Users\My Name\hello>cmake .
HELLO_SRCS=C:/Users/My Name/hello/hello.cppC:/Users/My Name/hello/print_line.cpp
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/My Name/hello
со строкой 6 без комментариев, я получаю сообщение об ошибке:
C:\Users\My Name\hello>cmake .
HELLO_SRCS=C:/Users/My Name/hello/hello.cppC:/Users/My Name/hello/print_line.cpp
CMake Error at CMakeLists.txt:6 (source_group):
source_group Unknown argument "C:/Users/My Name/hello/hello.cpp".
Perhaps the FILES keyword is missing.
-- Configuring incomplete, errors occurred!
Я заметил, что выходное значение ${HELLO_SRCS}
, похоже, не содержит разделителей между именами файлов, а также не имеет кавычек или других разделителей, заключающих имена файлов, которые содержат пробелы. Это как-то связано с моей проблемой? Переименование всех каталогов, чтобы избежать пробелов, на самом деле не вариант.