CMake:如何在Visual Studio项目中显示“头文件”中的头文件?

4

我已经在C++中创建了一个简单的库项目,并添加了CMake文件以自动生成Visual Studio项目。我的小项目只包含2个文件:

include/
     testproject/
         testproject.h
src/
    testproject.cpp

CMakeLists.txt

头文件现在在外部依赖项中(截图)。如何在“头文件”部分显示它?(或其他任何部分。只是不要显示在“外部依赖项”中)

CMakeLists.txt:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

SET(PROJECTNAME testproject)

PROJECT(${PROJECTNAME})

FILE(GLOB MY_HEADERS "include/*.h")
FILE(GLOB MY_SOURCES "src/*.cpp")

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
ADD_LIBRARY(
    ${PROJECTNAME} STATIC
    ${MY_HEADERS} ${MY_SOURCES}
)

注意:如果更改目录结构为

include/
     testproject.h
src/
    testproject.cpp

CMakeLists.txt

结果会像截图中的一样。头文件在“头文件”中。但是我需要在以前的项目结构中。


你的问题是什么? - Pavlin
@Pavlin 怎样在 Visual Studio 项目的 "Header Files" 部分显示头文件?头文件是我项目的一部分,不是外部依赖。 - Valeriy
1个回答

4

使用GLOB_RECURSE

GLOB_RECURSE将生成类似于常规GLOB的列表,但它将遍历匹配目录的所有子目录并匹配文件。如果给定了FOLLOW_SYMLINKS或cmake策略CMP0009未设置为NEW,则只会遍历符号链接的子目录。有关更多信息,请参见cmake-help-policy CMP0009。

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

SET(PROJECTNAME testproject)

PROJECT(${PROJECTNAME})

FILE(GLOB_RECURSE MY_HEADERS "include/*.h")
FILE(GLOB MY_SOURCES "src/*.cpp")

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
ADD_LIBRARY(
    ${PROJECTNAME} STATIC
    ${MY_HEADERS} ${MY_SOURCES}
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接