【问题标题】:CMake generated include directoryCMake 生成的包含目录
【发布时间】:2017-04-30 15:01:04
【问题描述】:

如何告诉CMake该目录已生成,以便在构建过程之前不会抱怨该目录不存在?

我的库项目被许多客户使用,对于每个客户,我都有由脚本生成的特定于客户的配置,并放置在 generated/[client-name]/generated.h 标头中。因此,对于每个客户,都会生成一个文件夹。但是父项目源文件 (*.cpp) 包括刚刚生成的.h。我想使用以下方法为我的库添加生成的/[client-name] 接口包含目录:

set_target_properties(mylib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "generated/myclient" ...)

但 CMake 甚至在开始编译之前就会抱怨 - 导入的目标“xxx”包括不存在的路径。所以我猜 CMake 不喜欢在开始构建过程时缺少包含目录,尽管目标依赖于其他目标,这些目标应该在其中创建正确的目录和头文件。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    你可以先用 CMake 创建目录:

    file(MAKE_DIRECTORY "generated/myclient")
    

    如果目录已经存在,这将无效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2017-06-19
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多