Geben Sie an, wie CMake ein Visual Studio-Projekt erstellt

8

Ich baue cmake für mein Projekt auf und ich habe ein Testprojekt dafür eingerichtet. Wenn es mein Visual Studio 2010-Projekt generiert, möchte ich es als das Projekt, das ich früher hatte, machen.

  • es erstellt ein ALL_BUILD- und ZERO_CHECK-Projekt, das ich nicht möchte.
  • es legt die .h-Dateien in den Ordner Externe Abhängigkeiten. Ich möchte einen Include-Dateien-Ordner, wo alle. H-Dateien gehen.
  • Ich möchte auch einige Dateien unter verschiedenen Filtern gruppieren. Wie in meiner Core-Bibliothek möchte ich alle Dateien im Zusammenhang mit Maths in einem Ordner und alle Dateien im Zusammenhang mit Event-Management in einem anderen gruppieren.
  • Im Dateisystem werden die Projektdateien in / Lib / src abgelegt. Wahrscheinlich weil ich es im Code-Ordner organisiert habe, aber ich will das nicht für die Projektdateien.
  • Ich möchte eine andere Konfiguration einrichten, also habe ich DebugOpenGL, DebugDirectX, ReleaseOpenGL, ReleaseDirectX und dann ein Flag USE_OPENGL oder USE_DIRECTX für die zwei Arten von Konfigurationen.

Wie kann ich einige Dateien ausschließen, wenn ich auf Windows und anderen baue, wenn ich auf Linux baue? Ich habe WindowWin.cpp und WindowLinux.cpp.

Ich habe versucht, was du gegessen hast, aber es funktioniert nicht:

%Vor%

Ich habe es irgendwie funktioniert .. nur, dass ich Unterordner für Header und Quelldateien innerhalb der Quellgruppe möchte.

%Vor%

Hier ist meine Lösung:)

%Vor%     
bitgregor 29.11.2011, 18:51
quelle

2 Antworten

7

Um Dateien in einem Ordner in Visual Studio zu gruppieren, können Sie Folgendes verwenden:

%Vor%

Dadurch werden alle Ihre .h-Dateien, die sich im Include-Ordner befinden, in einem Ordner namens include in Visual Studio angezeigt. Das Gleiche gilt für Ihre cpp-Dateien. Sie können diese Technik verwenden, um Ihre eigene Struktur in CMake zu erstellen, wenn Sie das möchten.

Für die Zwecke von ALL_BUILD und ZERO_CHECK lesen Sie diese Antwort . Um die Generierung von ZERO_CHECK zu deaktivieren, verwenden Sie set(CMAKE_SUPPRESS_REGENERATION true) .

Um zwischen OpenGL und DirectX zu wählen und die entsprechenden Ordner einzurichten, können Sie die gleiche Technik wie oben verwenden, aber in ein

einfügen %Vor%

Ich denke, Sie haben die Idee.

    
mantler 29.11.2011, 19:54
quelle
4

Ich beantworte diejenigen, die ich kenne:

Mit ALL_BUILD und ZERO_CHECK werden Ihre Projekte mit Änderungen an den CMakeFiles synchronisiert. Ich glaube nicht, dass es einen Weg gibt, diese loszuwerden.

Um die .h-Dateien an die gewünschte Stelle zu bringen, müssen Sie sie als Teil der Quelle hinzufügen. Ich benutze so etwas:

%Vor%

Dann füge ich $ {LocalProjectIncludes} an die Quelldateien für das Projekt an. CMake wird herausfinden, dass sie Header sind; es wird nicht versuchen, sie zu bauen.

    
Nathan Monteleone 29.11.2011 19:47
quelle

Tags und Links