社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

ビルド番号のインクリメント - Visual C++

C/C++ で、ネイティブ なモジュールを開発していて面倒なのが、ビルドナンバーのインクリメントです。
モジュールが少ないうちは手で更新することもできますが、多くなってくると手で更新することは現実的では
ありません。やり方は色々あるでしょうが、バッチファイルのみで簡単にできる方法を紹介します。


1. ビルド番号を定義するヘッダーファイルを作成

ここでは、ファイル名をBuildNo.h、ビルド番号をBUILDNO としています。

---
#pragma once

#define BUILDNO  1
#define BUILDNO_STR "1"
---


2.  ビルド番号をインクリメントするバッチファイルを作成

1 で用意したBuildNo.h をパースして、ビルド番号を取得&インクリメントした後、BuildNo.h を
作成します。上書きしてしまうことが不安な人は、オリジナルをリネームしてバックアップしておくと
良いかも しれません。ここは、ファイル名をIncrementBuildNo.cmd とします。

---
@echo off

set HEADERFILE=%~dp0BuildNo.h

for /F "usebackq tokens=1,2,3" %%i in ("%HEADERFILE%") do (
 if "%%i"=="#define" (
  if "%%j"=="BUILDNO" (
   set BuildNo=%%k
  )
 )
)
if "%BuildNo%"=="" (
 echo エラー: ビルド番号が取得できませんでした
 exit /b 1
)

rem ビルド番号のインクリメント
set /a NewBuildNo=%BuildNo%+1

rem 新しい BuildNo.h の生成
echo #pragma once >> "%HEADERFILE%"
echo. >> "%HEADERFILE%"
echo #define BUILDNO %NewBuildNo% >> "%HEADERFILE%"
echo #define BUILDNO_STR "%NewBuildNo%" >> "%HEADERFILE%"
---


3. RC ファイルを修正

ビルド番号を使うように、RCファイルを修正します。以下は、修正が必要な部分を抜粋しています。

---
FILEVERSION   1.0.0.BUILDNO
PRODUCTVERSION   1.0.0.BUILDNO

VALUE "FileVersion",     "1.0.0." BUILDNO_STR
VALUE "ProductVersion",  "1.0.0." BUILDNO_STR
---


4. ビルド前にバッチファイルを呼び出す

makefile やMSBUILD などのビルド前の処理に、2 で用意したバッチファイルを呼び出すようにすれば、
ビルドする度にBuildNo.h のビルド番号がインクリメントされます。
 

投稿日時 : 2011年11月16日 18:25


コメントを追加

タイトル
名前
URL
コメント