2011-11-18 31 views
7

Visual Studio 2005を使用して作成したC++プロジェクトをCMakeに変換していて、プロジェクトに含まれているリソースファイルに問題が発生しました。CMakeおよびVisual Studioリソースファイル

.rcファイルと、.ico個のファイルと.rc2ファイルが含まれています。

通常の.rcファイルは、生成されたプロジェクトで正常に動作し、リソースコンパイラを使用します。ただし、生成されたプロジェクトでは、Visual StudioがC/C++コンパイラを使用してコンパイルしようとしているため、.ico.rc2ファイルが含まれているだけで問題が発生しています。

私はこれらのファイルが.rcファイルに含まれていると仮定しているため、CMakeLists.txtファイルには含めないでください(プロジェクト内に表示することは明らかです元のプロジェクト)私はそうしたいので、生成されたプロジェクトのユーザーは、これらのファイルが使用されていることを知ることができます。

CMakeでこれらの余分なVSリソースファイルを処理する正しい方法は何ですか?

+0

私はCMakeが分かりませんが、あなたはリソースファイルの使い方について正しいです。それらをCMakeLists.txtファイルに入れたい場合は、ビルドされないターゲットにそれらを置く必要があります。ドキュメントの中にあるべきものです。 –

+0

@JoachimPileborg:情報ありがとうございます。うん、問題は、私もCMakeも知らないし、関連していると思われる文書で何も見つけられていないことだ... :) – villintehaspam

+0

MinGWに関するいくつかのバグレポートでこれが見つかったが、うまくいくはずだ。 "IRCの誰かが、私がresource.h/resource.rcファイルをプロジェクトadd_executable()ソースリストに追加したことを暗示しました。" –

答えて

2

お試しくださいset_source_files_properties(your.ico your.rc2 PROPERTIES LANGUAGE RC)

1

デフォルトでは、これらのファイルでは何も実行しないでください。ソースファイルのプロパティLANGUAGEは空である必要があります。したがって、ファイルのアクションはファイルタイプでチェックする必要があります。コンパイルすべきものではないので、何もすべきではありません。

set_source_files_propertiesコマンドが含まれていないCMakeLists.txtを確認して、そのプロパティを混乱させるようにします。

あなたはファイルで何かをしたい場合は、ここで物事を行うには、2つの方法があります:あなたがそれらを追加し、プロジェクトをビルドするときにそれらのためのカスタムコマンドを実行することができますadd_custom_targetで

。ファイルが変更されたことを認めました。

configure_fileを使用すると、必要に応じて簡単にビルドディレクトリにコピーできます。 COPYONLYフラグ。

関連する問題