【发布时间】:2010-10-15 00:44:41
【问题描述】:
您好,我正在构建基于 Cmake 的构建系统。
我想将头文件分组在通用文件夹 Header Files 下的文件夹中(VC++ 可以做到)。
类似地,我想将相应的.cpp 文件分组到 Source Files 目录下的文件夹中。
不幸的是,我找不到任何有关如何操作的说明。
请帮忙。
迪米特
【问题讨论】:
标签: visual-c++ file header cmake
您好,我正在构建基于 Cmake 的构建系统。
我想将头文件分组在通用文件夹 Header Files 下的文件夹中(VC++ 可以做到)。
类似地,我想将相应的.cpp 文件分组到 Source Files 目录下的文件夹中。
不幸的是,我找不到任何有关如何操作的说明。
请帮忙。
迪米特
【问题讨论】:
标签: visual-c++ file header cmake
你应该看看 CMake source_group 命令。
【讨论】:
您可以使用source_group。这是一个具体的例子。
假设您的目录结构如下:
|-include
| some.h
|-sub
| someother.h
|-src
| some.cpp
|-sub
|-someother.cpp
收集文件(有些人 - 包括文档 - 不鼓励使用 GLOB,但我把它留给你,如果你愿意,你可以逐个列出它们,尽管我发现 GLOB 很多次都很好):
file(GLOB HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")
file(GLOB HEADER_FILES_SUB "${CMAKE_CURRENT_SOURCE_DIR}/include/sub/*.h")
file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h")
file(GLOB SOURCE_FILES_SUB "${CMAKE_CURRENT_SOURCE_DIR}/src/sub/*.h")
# Setup your library or executable:
add_library(MY_LIB ${HEADER_FILES} ${HEADER_FILES_SUB}
${SOURCE_FILES} ${SOURCE_FILES_SUB})
# Here's the important part ("Header Files" and "Source Files" are literals.)
source_group("Header Files\\sub" ${HEADER_FILES_SUB})
source_group("Source Files\\sub" ${SOURCE_FILES_SUB})
【讨论】: