2013-02-20 107 views
2

我有结构如下项目:同时保留目录结构

  • SRC

    • 工具
    • 模块
    • 核心
      • 着色器
      • 个缓冲
  • INC

    • 工具
    • 模块
      • 着色
      • 缓冲器

CMake的创建我的项目的所有.cpp文件中的特殊文件夹 “源文件”。我试图保留这里的原始结构是我的CMakeLists.txt:

# Paths. 
set(SRCROOT ${PROJECT_SOURCE_DIR}/src/Framework/Graphic) 
set(INCROOT ${PROJECT_SOURCE_DIR}/inc/Framework/Graphic) 

# Get .hpp and .cpp files. 
file(
    GLOB_RECURSE 
    GRAPHIC_FILES 
    ${SRCROOT} 
    ${INCROOT} 
) 

# Packages. 
find_package(OpenGL REQUIRED) 

# Create the library. 
add_library(Graphic ${GRAPHIC_FILES}) 

我该如何处理? 感谢您的时间!

+1

一般来说,如果一个工具与你搏斗,那么就不要反击。反正你失去了。工具是为了节省时间,但你失去了战斗。选择其他工具。 – 2013-02-20 16:44:27

+1

@ÖöTiib:我会称之为使用该工具的配置选项,而不是与之对抗。 – ronkot 2013-02-21 08:49:41

回答

2

我假设你正在用CMake创建一个Visual Studio项目,并且想要在源文件在文件系统中组织时进行可视化。

您可以通过明确使用CMake source group命令来执行每个子文件夹中的文件。

FILE(GLOB TOOLS_FILES 
    ${SRCROOT}/src/tools/* 
) 
SOURCE_GROUP(tools FILES ${TOOLS_FILES}) 

...等等。 (未经测试的代码)

+0

+1似乎工作 – 2013-02-21 15:03:45

+0

谢谢,这是工作,但你需要指出所有文件夹和子文件夹,所以我已经使用source_group做了一个宏:)。 – Dono 2013-02-22 14:02:45