2 Stimmen

Wie man mit Cmake Header-Dateien in Header-Unterordnern unter dem allgemeinen Header-Dateien-Ordner gruppiert

Hallo Ich baue Cmake basierte Build-System. Ich möchte Header-Dateien in Ordnern gruppieren (VC++ kann es tun) unter dem allgemeinen Ordner Header-Dateien. Ähnlich würde ich gerne die entsprechenden .cpp Dateien in den Ordnern unter dem Verzeichnis Quelldateien. Leider konnte ich keine Anleitung finden, wie man das macht.

Bitte um Hilfe.

Dimitre

0voto

tibur Punkte 11175

Sie sollten einen Blick auf CMake werfen quelle_gruppe Befehl.

0voto

kovac Punkte 4313

Sie können verwenden quelle_gruppe . Hier ist ein konkretes Beispiel.

Angenommen, Sie haben eine Verzeichnisstruktur wie:

|-include
    | some.h
    |-sub
       | someother.h 
|-src
   | some.cpp
   |-sub
      |-someother.cpp

Sammeln Sie die Dateien (einige Leute - einschließlich der Dokumentation - raten von der Verwendung von GLOB ab, aber das überlasse ich Ihnen, Sie können die Dateien einzeln auflisten, wenn Sie wollen, obwohl ich finde, dass GLOB in vielen Fällen völlig in Ordnung ist):

file(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
file(GLOB HEADER_FILES_SUB "${CMAKE_CURRENT_SOURCE_DIR}/include/sub/*.h")
file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h")
file(GLOB SOURCE_FILES_SUB "${CMAKE_CURRENT_SOURCE_DIR}/src/sub/*.h")

# Setup your library or executable:
add_library(MY_LIB ${HEADER_FILES} ${HEADER_FILES_SUB}
                   ${SOURCE_FILES} ${SOURCE_FILES_SUB})

# Here's the important part ("Header Files" and "Source Files" are literals.)
source_group("Header Files\\sub" ${HEADER_FILES_SUB})
source_group("Source Files\\sub" ${SOURCE_FILES_SUB})

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X