Wie erstelle ich eine cmake-Bibliothek nur für Header, die von externen Header-Dateien abhängt?
Ich habe ein Projekt mit der folgenden Dateistruktur:
project
|
|-------> lib1
| |----> lib1.h
|
|-------> lib2
| |----> lib2.h
|
|-------> main.cc
Die zwei Bibliothekenlib1
undlib2
enthält nur Header-Dateien, währendlib2.h
enthältlib1.h
, undmain.cc
enthältlib2.h
.
Wie schreibe ich jetzt die cmake-Datei für dieses Projekt? Ich habe versucht, ein @ zu erstellinterface library zumlib2
, aber der Compiler kann @ nicht findlib1.h
. Hier ist der Inhalt meiner cmake-Dateien:
CMakeLists.txt für lib2:
add_library(lib2 INTERFACE)
target_sources(lib2 INTERFACE lib2.h)
target_include_directories(lib2 INTERFACE ../lib1/lib1.h)
CMakeLists.txt für das gesamte Projekt:
add_executable(project main.cc)
target_link_libraries(project lib2)
Was ist das Problem in den cmake-Dateien?