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.
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%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.
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.
Tags und Links c++ visual-studio-2010 cmake