Лучший способ создать файл шаблона в макросе Bazel - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь написать макрос, чтобы абстрагироваться от набора правил, которые мне нужны для нескольких различных целей.Одна вещь, которую мне нужно сделать, это создать небольшой файл, который будет рассматриваться как исходный файл в следующем правиле.Если бы это было правилом, я бы просто использовал expand_template .Лучшее, что я могу сейчас предложить, - это native.genrule и проверка того, что я правильно все экранировал и передаю его в эхо.

Я надеюсь, что есть более простой способ.

Код, о котором идет речь:

  racket_contents = """
#lang racket/base
(require
  "bootstrap-compiler.rkt"
  racket/runtime-path)
(define-runtime-path library-compiler-list-file "%s")
(run-bootstrap-compiler library-compiler-list-file #"%s_main")
""" % (source_file_list, short_name)

  native.genrule(
      name = "racketize_" + name,
      outs = [racket_src_name],
      cmd = "echo >>$@ '%s'" % racket_contents,
  )
...