Tengo un problema con CMake en el que no puedo obtener que mis archivos se agreguen a carpetas/filtros dentro de Visual Studio.Agregar archivos a source_group en CMake
# 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})
Un problema que podría ser la causa de este problema es que el GLOB_RECURSE
's devolver los archivos que están en ${CMAKE_CURRENT_SOURCE_DIR}
pero relativos a la /database
(o cualquier otro directorio).
Por ejemplo, hay un archivo en database/
llamado dbcore.cpp
. Este archivo se agrega a DATABASE_SRCS
como dbcore.cpp
, pero los archivos en el directorio principal (es decir, ${CMAKE_CURRENT_SOURCE_DIR}
) también se agregan, pero tienen una ruta relativa a database/
, como ../common.h
.
Otro problema puede ser que, dentro del proyecto de Visual Studio, ya existen los filtros "Header Files" y "Source Files" predeterminados.
Estoy usando CMake 2.8.6 y Visual Studio 11/2012.