我有一个包含hpp和cpp文件的文件夹。我需要创建一个头文件,其中包含所述文件夹中的所有hpp文件:
#pragma once
#include "test_1.hpp"
#include "test_2.hpp"
#include "test_3.hpp"
CMake能做到吗?
注意:我不打算把“我的”研究工作放在你的肩上。我只需要知道这样的事情是否可能,并且可能是我可以阅读的链接。我最初的谷歌搜索没有显示任何有用的东西。 谢谢
答案 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)