【问题标题】:cmake: pregenerate Makefile for non-existing sourcescmake:为不存在的源预生成 Makefile
【发布时间】:2013-11-11 03:48:01
【问题描述】:

我的程序生成需要编译成动态库的 c++ 代码。 代码是在某个目录中生成的,在生成 Makefile 之前它的名称是未知的(目录是在运行时创建的),但是库所依赖的文件的名称是预定义的(src1.cpp,src2.cpp ..) . 有什么方法可以使用 cmake 生成 Makefile,以便可以将其复制到包含需要编译的库源的目录中。 我尝试添加依赖于 src1.cpp src2.cpp .. 的 add_library,但 cmake 不想在没有可用源的情况下生成 Makefile。

【问题讨论】:

    标签: makefile cmake


    【解决方案1】:

    我不确定我是否完全理解您的用例,但我认为您可以将每个不存在的文件的 GENERATED 属性设置为 TRUE 来解决此问题。例如假设你的文件列表是MyFiles,你可以使用set_source_files_properties

    set_source_files_properties(${MyFiles} PROPERTIES GENERATED TRUE)
    

    您可能还必须创建依赖项以确保这些文件在 make 尝试构建库之前确实存在(例如,如果它们是由脚本生成的,则使用 @987654323 将脚本作为库的预构建命令调用@)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多