【问题标题】:CMake: How to show headers in "Header files" in Visual Studio project?CMake:如何在 Visual Studio 项目的“头文件”中显示标题?
【发布时间】:2015-11-30 20:10:31
【问题描述】:

我在 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。 “头文件”中的头文件。但我需要在以前的项目结构中

【问题讨论】:

  • 你的问题到底是什么?
  • @Pavlin 如何在 Visual Studio 项目的“头文件”部分显示标题?头文件是我项目的一部分,它不是外部依赖项

标签: visual-studio visual-studio-2013 cmake


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-11-23
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多