VC PlusPlus:MSBuild RCタスク
概要
RCタスクはrcコマンドを実行するようなものです。*.rcファイルからコンパイル済みリソースの*.resファイルを生成します。コマンドで表現すると以下のような処理をするものです。
>rc /l "0x0409" /nologo /q Resource\a.rcconfig /g1 /fm "Debug\x64\a.ja-JP.res" "Resource\a.ja-JP.rc"
rcタスクの要素
rcタグの中で、設定する要素によってrcコマンドの内容が変化します。例えば以下のような要素設定の場合
<Project ...>
<Target Name="MessageText" AfterTargets="Build">
<RC
Source ="Resource\a.ja-JP.rc"
AdditionalOptions ="/q Resource\a.rcconfig /g1 /fm"Debug\x64\a.ja-JP.res""
Culture ="0x0409"
TrackerLogDirectory ="Debug\x64\a.tlog\"
SuppressStartupBanner ="true"
ToolArchitecture ="Native64Bit"
ResourceOutputFileName =""
MinimalRebuildFromTracking ="true"
>
</RC>
</Target>
</Project>
実行内容
rc /l "0x0409" /nologo /q Resource\a.rcconfig /g1 /fm "Debug\x64\a.ja-JP.res" "Resource\a.ja-JP.rc"
のようになります。ここからは、要素ひとつづつの意味を確認していきます。
Source
指定が必須です。コンパイルしたいリソース*.rcファイルを指定します。
AdditionalOptions
省略可能。他の項目で指定できないようなコンパイルオプションを指定します。他の項目に記述しないで、ここに書いても良いですが、コンパイルしたいリソース*.rcファイルの指定は、Sourceが必須なので、Sourceに指定する項目は、ここでは指定できません。/fmの指定が他の項目では、できないので、ここで記述するのが通常になると思います。/qで構成ファイル形式に従う*.rcconfigファイルの指定と/g1でローカライズする特定言語向けのリソースファイルの指定オプションもここで指定することになります。
Culture
省略可能。コンパイルの既定の言語を指定します。地域コードが定義されています。0x0409はLANGUAGE 0x04=LANG_ENGLISH,0x09=SUBLANG_ENGLISH_USつまりen-USを指定するのと同じことです。このコードは400近くも存在します。くわしくはこちらに記載します。VC PlusPlus:MSBuild LanguageID-Tag対応表。コマンドラインの/lオプションと同等の意味です。
ResourceOutputFileName
省略可能。言語に依存しない中立リソースを出力するときに指定します。出力名を指定する/fmによく似ていますが、/fmは省略すると、リソースファイル名に拡張子が.resに変更されたものが、入力リソースと同じフォルダに出力されます。通常は、出力するフォルダに専用のものを使うので、/fmの指定と/foの指定はConfigurationやplatform値を使って専用のフォルダを設定するのが通常です。特定の言語向けのリソースファイルを処理する場合は/foの指定は省略されるはずです。他のリソースファイルとも共通で使うという部分を出力するためのものです。コマンドラインの/foファイルに相当指定します。
SuppressStartupBanner
省略可能。ロゴの表示をするかという設定です。この項目にtrue値を設定することが、コマンドラインの/nologoの指定に相当します。
TrackerLogDirectory
省略可能。どのようなコマンドを実行したかを記録する*.tlogファイルを保存するフォルダの指定です。