Ich habe ein Problem mit CMake, in dem ich meine Dateien nicht zu Ordnern/Filtern innerhalb von Visual Studio hinzugefügt werden kann.Hinzufügen von Dateien zu source_group in 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})
Ein Problem, das dieses Problem verursacht, ist sein könnte, dass die GLOB_RECURSE
‚s die Dateien zurück, die in ${CMAKE_CURRENT_SOURCE_DIR}
ist aber in Bezug auf das /database
(oder was auch immer anderes Verzeichnis).
Zum Beispiel gibt es eine Datei in database/
namens dbcore.cpp
. Diese Datei wird zu DATABASE_SRCS
als dbcore.cpp
hinzugefügt, aber Dateien im Hauptverzeichnis (d. H. ${CMAKE_CURRENT_SOURCE_DIR}
) werden ebenfalls hinzugefügt, haben aber einen Pfad relativ zu database/
, wie ../common.h
.
Ein anderes Problem kann sein, dass innerhalb des Visual Studio-Projekts die Standard-Filter "Header Files" und "Source Files" bereits vorhanden sind.
Ich verwende CMake 2.8.6 und Visual Studio 11/2012.