CLion和add_library(目标接口)

时间:2017-07-20 09:36:29

标签: cmake clion

我有一个仅限标题的图书馆项目。在我的CMakeLists.txt中,我使用INTERFACE库类型

我想将此项目导入CLion,但是当我打开任何头文件时,IDE会抱怨 此文件不属于任何项目目标

那么有没有办法在CLion中开发一个仅限标题的项目?

测试项目布局非常简单:

% tree foo
foo
├── CMakeLists.txt
└── foo.hpp

和CMakeLists的内容是

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 2017.2 + CMake 3.8

1 个答案:

答案 0 :(得分:2)

升级我的CLion后我遇到了同样的问题。您非常接近但需要再添加一行:

add_library(target INTERFACE)
target_sources(target INTERFACE ${my_header_list})
target_include_directories(target INTERFACE ${CMAKE_SOURCE_DIR})

根据您的项目布局,这可能会有所不同。我看起来像这样:

|-- myLib
  |-- CMakeLists.txt
  |-- myLib
    |-- foo.hpp
    |-- bar.hpp
    |-- etc...

我通过阅读this来了解这个解决方案。