cmake:将包含目录传递给外部项目

时间:2016-02-25 15:09:42

标签: cmake

我通过ExternalProject_Add使用 cmake external project模块。

我想为外部项目指定自定义标头位置(就像我在该项目中使用include_directories一样,但我无法修改其CMakeLists.txt并且不想应用补丁)。

是否有可能将一些包含路径传递给我的外部项目?

我试了CMAKE_ARGS -DCMAKE_INCLUDE_PATH=<required path>但没有成功。

2 个答案:

答案 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" ..