如何依赖gn中生成的头文件?

时间:2019-02-07 13:43:03

标签: c++ gn

我需要根据不同的构建参数在头文件中生成一些代码。如何使用gn依赖这些生成的头文件?

生成的头文件模板:

// a/a.h before generated
#define MyClassName %sXXX

%s表示由构建参数设置的前缀。

生成的头文件示例:

// a/a.h generated
#define MyClassName AXXX

依赖于生成的头文件的示例文件:

// a/b.h
#include "a.h"
class MyClassName {
// ...
}

我的gn文件:

action("create_define_file") {
  visibility = [ "*:*" ]

  script = "mytool.py"

  output = "$target_gen_dir/a/a.h"

  inputs = [
    "a.tpl.h",
  ]

  args = [
    "--dist",
    rebase_path(output),
    "--prefix=$prefix",
    "--tpl",
    rebase_path(inputs[0]),
  ]

  outputs = [
    output,
  ]
}

shared_library("create_framework_dylib") {
  visibility = [ ":*" ]

  output_name = "output_name"

  sources = [
    "$target_gen_dir/a/a.h",
    "a/b.h"
  ]
  deps = [
     ":create_define_file",
  ]
}

0 个答案:

没有答案