visual-studio - CMake:如何在 Visual Studio 项目中的 "Header files"中显示标题?

标签 visual-studio visual-studio-2013 cmake

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

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

CMakeLists.txt

头文件现在位于外部依赖项 ( screenshot ) 中。如何在“标题”部分显示它? (或任何其他。只是不是“外部依赖关系”)

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}
)

注意:如果将 dirs 结构更改为
include/
     testproject.h
src/
    testproject.cpp

CMakeLists.txt

结果将类似于 screenshot . “头文件”中的头文件。但我需要在以前的项目结构中

最佳答案

使用 GLOB_RECURSE :

GLOB_RECURSE will generate a list similar to the regular GLOB, except it will traverse all the subdirectories of the matched directory and match the files. Subdirectories that are symlinks are only traversed if FOLLOW_SYMLINKS is given or cmake policy CMP0009 is not set to NEW. See cmake –help-policy CMP0009 for more information.


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}
)

关于visual-studio - CMake:如何在 Visual Studio 项目中的 "Header files"中显示标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34007099/

相关文章:

c++ - 移动 Visual Studio 断点

visual-studio - amd64 编译器在 Visual Studio 2022 中的位置 |使用 NVENC 编译 FFmpeg

c++ - std::forward Visual Studio 13 的行为与我预期的不同

cmake - CMake 中的嵌套库命名空间

visual-studio - 是否存在为 .NET 类预编写单元测试的工具?

visual-studio - 如何阻止控制台在退出时关闭?

visual-studio-2013 - 尝试添加文件到TFS时添加“The item already exists”

c - Visual Studio 2013 不会编译 C 数组声明

linux - 如何从 CentOS 6.5 获取最新的 cmake 版本

c++ - 使用此 CMake 链接命令仍然需要针对 OpenMP::OpenMP_CXX 的显式链接吗?