Visual Studio 2015でC++を使い、Gitをソースコントロールとして使用しています。 私はマルチプラットフォームのアプリケーションを作成しています。私のアプリケーションにgitブランチを組み込み、ビルドされたものをコミットしたいと思います。Visual Studio 2015 - gitブランチとgitコミットでプリプロセッサ変数を定義する
のVisual Studio以外のプラットフォームではI私のMakefileに以下の行を置く:
GIT_CUR_COMMIT := $(shell git rev-parse --verify HEAD)
GIT_CUR_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
DEPS += -DGIT_COMMIT=\"$(GIT_CUR_COMMIT)\" -DGIT_BRANCH=\"$(GIT_CUR_BRANCH)\"
そして、私はこれらのプリプロセッサ変数を読み込み、プログラムによってそれらを公開するためのコードを持っている私のアプリケーションで:
std::string getGitCommit()
{
#ifdef GIT_COMMIT
return GIT_COMMIT;
#endif
return "unavailable";
}
std::string getGitBranch()
{
#ifdef GIT_BRANCH
return GIT_BRANCH;
#endif
return "unavailable";
}
しかし、Visual StudioにはMakefileはありません。どのようにコンパイル時にこれらの2つの変数GIT_CUR_COMMIT
とGIT_CUR_BRANCH
を定義して同じ動作を達成できますか?おそらく
を使用することができ、それを追加していることを確認します。だから、「メイクファイルはありません」というのは確かではなく、Visual Studioを使ってビルドする方法です。私はあなたがvcprojベースの建物を使用していると仮定しますか? – Yakk
はい、これを明確にしてくれないのは残念です。私はvcprojベースのビルディングを使用しています – fx23