我通过ExternalProject_Add
使用 cmake 和external project模块。
我想为外部项目指定自定义标头位置(就像我在该项目中使用include_directories
一样,但我无法修改其CMakeLists.txt
并且不想应用补丁)。
是否有可能将一些包含路径传递给我的外部项目?
我试了CMAKE_ARGS -DCMAKE_INCLUDE_PATH=<required path>
但没有成功。
答案 0 :(得分:4)
您可以通过将此脚本的路径分配给变量project(e_cool)
(documentation)来为外部项目执行其他CMake脚本。
让外部项目使用CMake命令
include_directories(/path/to/additional/include)
你要执行
include_directories(/path/to/additional/include)
那一刻。
为此,您需要使用相应的内容准备cmake脚本:
<强> fix_e_cool.cmake 强>:
ExternalProject_Add
并通过主项目中...
ExternalProject_Add(<name>
...
CMAKE_ARGS -DCMAKE_PROJECT_e_cool_INCLUDE=${CMAKE_SOURCE_DIR}/fix_e_cool.cmake
)
的CMAKE_ARGS选项传递此脚本:
<强>的CMakeLists.txt 强>:
{
"price" : 120, // Type : Number
"name" : "Product Name 1",
"productId" : "num01",
}
{
"price" : 121,
"name" : "Product Name 2",
"productId" : "num02",
}
{
"price" : 50,
"name" : "Product Name 3",
"productId" : "num03",
}
答案 1 :(得分:-2)
使用option将允许您从命令行传递数据,例如:
cmake -DHEADER_PATH="/usr/my/path/file.h" ..