cmake: erstellen von visual studio-Filter
Habe ich bereits umgeschaut (StackOverflow und mehr) und ich bin versucht zu cmake zu generieren Visual Studio filtern. Ich habe die folgenden Ordner:
src/math
src/import
src/ui
Möchte ich generieren die Filter wie oben.
"Mathe": enthält alle cpp & h-Dateien in src/math
"import": enthält alle cpp & h-Dateien in src/import
"ui -": enthält alle cpp & h-Dateien in src/ui
Ich habe versucht, mehrere Lösungen, aber keiner scheint zu funktionieren!!!
Hier ist die Letzte version des Codes in CMakeList.txt :
set(VD_SRC "${VisualDesigner_SOURCE_DIR}/src/visualdesigner")
file(GLOB_RECURSE SRC_UI
"${VD_SRC}/ui/*.cpp", "${VD_SRC}/ui/*.h")
file(GLOB_RECURSE SRC_IMPORT
"${VD_SRC}/import/*.cpp",
"${VD_SRC}/import/*.h")
source_group("ui" FILES ${SRC_UI})
source_group("import" FILES ${SRC_IMPORT})
Jede Hilfe ist willkommen!
- Ich nehme an, Sie möchten Holen Sie sich ein Ziel für die Dateien? Oder was meinst du mit Filter? Ist das etwas, das Visual Studio-spezifische?
- Ja, Visual Studio ist eine Art "Ordner" in der "Lösung", Sie nennen diese "filter". Es erlauben Sie zu organisieren, Sie alle Dateien, wie der Ordner im VS !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Wie legen Sie die Visual Studio-Filter für verschachtelte sub-directory mit cmake
Nur bewusst sein, dass
source_group()
Befehl funktioniert nur in Kombination mitadd_library()
oderadd_executable()
Befehle auflisten die gleichen Quellen (die Pfade müssen passen)source_group()
Befehl wird nicht geprüft, ob die Datei tatsächlich vorhanden ist (also es dauert alles, was Sie geben und während der Projekt-Datei generation es versucht, die jeweilige Quelle-Gruppe Datei Namen gegen Dateien die im Projekt verwendet werden)Habe ich den code versuchen, durch hinzufügen einer entsprechenden
add_library()
Ziel, und es funktioniert wie erwartet (CMake 3.3.2 und VS2015):Ergebnisse in
Hier ist eine allgemeinere version genommen von Visual Studio als editor für CMake freundlichen Projekt:
Fand ich es einfacher, dies zu tun und dachte, es könnte hilfreich sein für andere. Stellen Sie sicher, dass Sie die neueste version von CMAKE.
add_exectuable
oderadd_library
. Wenn ich nicht tun, dass, nur den .cpp-Dateien zeigte sich in der Filter/VS-Projekt. Ich konnte nichts finden über diese in die docs. Vielleicht ein bug oder vielleicht bin ich etwas fehlt.Für diejenigen, die möchten, erstellen Sie unter "Header-Dateien" und "Quell-Dateien":
Können Sie source_group. Hier ist ein konkretes Beispiel.
Angenommen, Sie haben eine directory-Struktur wie:
Sammeln der Dateien (einige Leute - einschließlich der Dokumentation - rät von Verwendung von GLOB, aber das überlasse ich Ihnen, Sie können die Liste der Sie, wenn Sie wollen, aber ich finde GLOB ist gut, viele Male):
Als von CMake 3.8, die
source_group
Befehl bietet eineTREE
argument rekursiv durchsuchen Sie die Pfade der Dateien von Ihrer Quellen, um die Struktur der source-Gruppen entsprechend Ihrer Datei-system-Struktur. Nun, die Lösung ist ein wenig sauberer:Schauen Sie sich auch das neue
PREFIX
argument können Sie mitsource_group
wenn Sie finden, dass hilfreich.Haftungsausschluss: ich rate gegen die Verwendung von
GLOB
( siehe hier ), wo immer möglich.