3

CMake では、クロス プラットフォームの優れたツールであると同時に、複雑で大規模な構成の管理にも優れています。私がぶつかっている障害の 1 つは、それ以外の場合はクロス プラットフォーム プロジェクトが特別な "Visual Studio" のみのプロジェクトを持つことを許可することです。つまり、特定のビジュアル スタジオ プロジェクトをコンパイルするときに、フォーム デザイナーの .resx ファイルを作成するために、CMake からの出力が必要です。これは、次のようなタグになります。

<ItemGroup>
    <EmbeddedResource Include="Form1.resX">
      <DependentUpon>Form1.h</DependentUpon>
      <SubType>Designer</SubType>
    </EmbeddedResource>
</ItemGroup>

カスタム ルールを記述したり、テキストを記述したり、Visual Studio の .vcxproj ファイルに何が入るかをより低レベルで制御できれば、これを行うことができます。

.vcxproj.filters ファイルには、対応するエントリがあります。

<ItemGroup>
    <EmbeddedResource Include="Form1.resX">
      <Filter>Resource Files</Filter>
    </EmbeddedResource>
</ItemGroup>

リソース ファイルを .vcxproj に追加する必要もあります。

<ItemGroup>
    <ResourceCompile Include="app.rc" />
</ItemGroup>

そして .vcxproj.filters に:

<ItemGroup>
    <ResourceCompile Include="app.rc">
      <Filter>Resource Files</Filter>
    </ResourceCompile>
</ItemGroup>

これは CMake のコード変更ですか、それとも追加できるものですか? コードの変更の場合は、コードの変更が必要な場所を指摘してください。必要な更新を行うことを確認できます。

4

3 に答える 3

1

そのため、CMake にはこの問題に対する既存の解​​決策があるようには見えません。CMake を修正して、Visual Studio ソリューション ファイル内に .resX ファイルを適切に含めることができるようにしました。最初のテストはすべてが順調であることを示していますが、さらにテストが必要です。コードの変更は簡単でした。ただし、それが提起した問題は、Visual Studio の参照を手動で管理することです。CMake にはこれのための機能があります (ただし、ドキュメントは不足しています)。問題は主に簿記ですが、参照やリソースなどに対して構成できる多くのオプションがありますが、CMake ではプロジェクトに追加できますが、それほど構成可能ではありません。自分のバージョンを試してみて、うまくいけば、CMake ソースに含めるために送信します。

于 2012-10-31T12:45:18.917 に答える
0

ソース グループの作成を試すことができます。

source_group(Resources FILES Form1.resX)

しかし、それは間違いなく得るのに役立ちません

<DependentUpon>Form1.h</DependentUpon>
<SubType>Designer</SubType>
于 2012-10-30T03:38:16.480 に答える