Ich habe ein Header-only-Bibliotheksprojekt. In meinem CMakeLists.txt verwende ich INTERFACE Bibliothek TypCLion und add_library (Zielschnittstelle)
ich dieses Projekt in CLION importieren wollte, aber wenn ich einen der Header-Dateien öffnen die IDE beklagt, dass diese Datei gehört nicht zu jedem Projektziel
Gibt es also eine Möglichkeit, ein Header-Only-Projekt in CLion zu entwickeln?
Test-Projekt-Layout ist ziemlich einfach:
% tree foo
foo
├── CMakeLists.txt
└── foo.hpp
Und CMakeLists Inhalt ist
cmake_minimum_required(VERSION 3.8)
project(foo)
add_library(foo INTERFACE)
target_include_directories(foo INTERFACE ${PROJECT_SOURCE_DIR})
target_sources(foo INTERFACE ${PROJECT_SOURCE_DIR}/foo.hpp)
CLION 2.017,2 + CMake 3.8
Die Verwendung von 'target_sources' sollte das Problem lösen. Ich hatte das gleiche Problem und konnte es lösen, indem ich 'target_sources' hinzufügte. Ich benutze '$ {CMAKE_CURRENT_SOURCE_DIR}', das zu dem Ort führt, an dem sich die 'CMakeLists.txt' befindet. Ich gebe dann den Speicherort relativ zu diesem Verzeichnis an, etwa wie folgt: '$ {CMAKE_CURRENT_SOURCE_DIR}/Pfad/zu/foo.hpp' – lanoxx