У меня проблема с CMake, из-за которой я не могу добавить свои файлы в папки/фильтры внутри Visual Studio.
# Add folders to filters
file(GLOB_RECURSE DATABASE_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/database *.cpp *.h)
file(GLOB_RECURSE LOG_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/log *.cpp *.h)
file(GLOB_RECURSE NETWORK_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/network *.cpp *.h)
file(GLOB_RECURSE THREADING_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/threading *.cpp *.h)
file(GLOB_RECURSE UTILS_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/utils *.cpp *.h)
source_group(database FILES ${DATABASE_SRCS})
source_group(log FILES ${LOG_SRCS})
source_group(network FILES ${NETWORK_SRCS})
source_group(threading FILES ${THREADING_SRCS})
source_group(utils FILES ${UTILS_SRCS})
Проблема, которая может быть причиной этой проблемы заключается в том, что GLOB_RECURSE
возвращает файлы, которые находятся в ${CMAKE_CURRENT_SOURCE_DIR}
, но относятся к /database
(или любому другому каталогу).
Например, в database/
есть файл с именем dbcore.cpp
Этот файл добавляется в DATABASE_SRCS
как dbcore.cpp
. но файлы в основном каталоге (т.е. ${CMAKE_CURRENT_SOURCE_DIR}
) также добавляются, но имеют путь относительно database/
, например .../common.h
.
Другая проблема может заключаться в том, что внутри проекта Visual Studio уже существуют фильтры по умолчанию «Файлы заголовков» и «Исходные файлы».
Я использую CMake 2.8.6 и Visual Studio 11/2012.