0

現在の git commit ハッシュを含むヘッダー ファイルを作成するために、bazel gen-rule を作成したいと考えています。

# Generate "version_info.h"
cc_library(
    name = "version_info",
    srcs = [],
    hdrs = ["version_info.h"],
    visibility = ["//visibility:private"],
)

VERSION_INFO_H_BASH = """
#ifndef VERSION_INFO_H_
#define VERSION_INFO_H_

#define COMMIT_HASH "%s"

#endif  // VERSION_INFO_H_
"""

VERSION_INFO_H_PS = """
#ifndef VERSION_INFO_H_
#define VERSION_INFO_H_

#define COMMIT_HASH "{0}"

#endif  // VERSION_INFO_H_
"""

genrule(
    name = "generate_version_info",
    outs = ["version_info.h"],
    cmd_ps = ("cd what_comes_here; @'%s'@ -f \"$$(git.exe rev-parse HEAD)\" | Out-File $(OUTS)" % VERSION_INFO_H_PS),
    cmd = ("cd what_comes_here"; printf '%s' \"$$(git rev-parse HEAD)\ > $(OUTS)" % VERSION_INFO_H_BASH),
    visibility = ["//visibility:private"],
)

これまでのところ、Linuxバージョン(cmd)はテストしていませんが、Windows(cmd_ps)でのみテストしており、動作しますが、問題は、powershellを実行するとワークスペースディレクトリ(私のgitルート)にないことです. what_comes_hereワークスペースのルートに最初に cd するには、何を置き換える必要がありますか?

4

1 に答える 1