给定一个文件路径engine/*
,如何将每个文件名附加到allheader.h中,使其看起来像这样:
#include engine/foo.h
#include engine/faa.h
#include engine/engine.h
etc.
我当前的CMakeList尝试是这样的,但这会导致#include文件(RELATIVE_PATH(
foreach(file ${ENGINE})
file(APPEND allheader.h " #include ")
file(APPEND allheader.h file(RELATIVE_PATH))
endforeach()
不能在函数内部调用函数,即foo(... bar(...))
不起作用,因此首先计算局部";PATH";然后使用它。
我会试试:
foreach(FILE ${ENGINE})
file(RELATIVE_PATH PATH ${CMAKE_CURRENT_SOURCE_DIR} ${FILE})
file(APPEND allheader.h "#include "${PATH}"")
endforeach()
参考:https://cmake.org/cmake/help/latest/command/file.html#relative-路径