使用CMake创建包含文件

时间:2015-05-28 07:09:24

标签: c++ cmake

我有一个包含hpp和cpp文件的文件夹。我需要创建一个头文件,其中包含所述文件夹中的所有hpp文件:

#pragma once
#include "test_1.hpp"
#include "test_2.hpp"
#include "test_3.hpp"

CMake能做到吗?

注意:我不打算把“我的”研究工作放在你的肩上。我只需要知道这样的事情是否可能,并且可能是我可以阅读的链接。我最初的谷歌搜索没有显示任何有用的东西。 谢谢

1 个答案:

答案 0 :(得分:5)

您可以使用configure_file填充模板文件中的变量。创建一个模板文件,其中包含所需文件的大纲和include语句的占位符,例如:

<强> list.hpp.in

#pragma once
@include_statements@

然后,在 CMakeLists.txt 中,您可以在占位符@include_statements@中填入包含#include语句的文件列表。

project(test)
cmake_minimum_required(VERSION 2.8)

# Get list of some *.hpp files in folder include 
file(GLOB include_files include/*.hpp)

# Convert the list of files into #includes
foreach(include_file ${include_files})
  set(include_statements "${include_statements}#include \"${include_file}\"\n")
endforeach()

# Fill the template    
configure_file(list.hpp.in list.hpp)