WinRTアプリケーション開発におけるVS_WINRT_REFERENCES

2024-04-02

CMakeにおけるVS_WINRT_REFERENCESの詳細解説

VS_WINRT_REFERENCESは、CMakeのターゲットプロパティの一つで、Visual Studioプロジェクトファイル( .vcxproj )にWinRTメタデータ参照を追加するために使用されます。これは、Windows Runtime (WinRT) アプリケーション開発において重要な役割を果たします。

設定方法

VS_WINRT_REFERENCESは、target_property() コマンドを使用してターゲットに設定できます。以下の例では、mytarget というターゲットに Windows;Windows.UI.Core という2つのWinRTメタデータ参照を追加しています。

target_property(mytarget
  PROPERTIES
  VS_WINRT_REFERENCES "Windows;Windows.UI.Core"
)

詳細

  • 複数のWinRTメタデータ参照を指定する場合は、セミコロン ; で区切ります。
  • VS_WINRT_REFERENCES は、Visual Studio 2015以降でのみサポートされます。
  • 参照するWinRTメタデータは、プロジェクトのInclude Directories に存在する必要があります。

関連するCMakeターゲットプロパティ

  • VS_WINRT_COMPONENT: ターゲットをWinRTコンポーネントとしてマークします。
  • VS_WINRT_MIN_VERSION: ターゲットに必要なWinRTの最小バージョンを設定します。
  • VS_WINRT_MAX_VERSION: ターゲットでサポートされるWinRTの最大バージョンを設定します。

以下のコードは、mytarget というWinRTコンポーネントをビルドする例です。

target_property(mytarget
  PROPERTIES
  VS_WINRT_COMPONENT ON
  VS_WINRT_REFERENCES "Windows;Windows.UI.Core"
  VS_WINRT_MIN_VERSION 10.0.0.0
  VS_WINRT_MAX_VERSION 10.0.17763.0
)

このコードは、mytarget というターゲットを以下の設定でビルドします。

  • WinRTコンポーネントとしてビルド
  • WindowsWindows.UI.Core という2つのWinRTメタデータ参照を使用
  • 最低限必要なWinRTバージョンは10.0.0.0
  • サポートされる最大WinRTバージョンは10.0.17763.0

補足

  • VS_WINRT_REFERENCES は、Visual Studioプロジェクトファイル (.vcxproj) へのみ影響を与えます。


VS_WINRT_REFERENCES を使用するサンプルコード

シンプルな WinRT アプリケーション

cmake_minimum_required(VERSION 3.15)

project(SimpleWinRTApp)

set(CMAKE_CXX_STANDARD 17)

add_executable(SimpleWinRTApp
  main.cpp
)

target_property(SimpleWinRTApp
  PROPERTIES
  VS_WINRT_REFERENCES "Windows;Windows.UI.Core"
)

WinRT コンポーネント

cmake_minimum_required(VERSION 3.15)

project(MyComponent)

set(CMAKE_CXX_STANDARD 17)

add_library(MyComponent SHARED
  component.cpp
)

target_property(MyComponent
  PROPERTIES
  VS_WINRT_COMPONENT ON
  VS_WINRT_REFERENCES "Windows;MyOtherComponent"
  VS_WINRT_MIN_VERSION 10.0.0.0
  VS_WINRT_MAX_VERSION 10.0.17763.0
)

複数の WinRT メタデータ参照

cmake_minimum_required(VERSION 3.15)

project(MyProject)

set(CMAKE_CXX_STANDARD 17)

add_executable(MyProject
  main.cpp
)

target_property(MyProject
  PROPERTIES
  VS_WINRT_REFERENCES "Windows;Windows.UI.Core;MyComponent"
)

条件付きで VS_WINRT_REFERENCES を設定

cmake_minimum_required(VERSION 3.15)

project(MyProject)

set(CMAKE_CXX_STANDARD 17)

if(WIN32)
  target_property(MyProject
    PROPERTIES
    VS_WINRT_REFERENCES "Windows;Windows.UI.Core"
  )
endif()

add_executable(MyProject
  main.cpp
)

これらのサンプルコードは、VS_WINRT_REFERENCES の使用方法を理解するのに役立ちます。



VS_WINRT_REFERENCES を設定するその他の方法

Visual Studio プロジェクトファイル (.vcxproj) を手動で編集し、PropertyGroup タグに以下の要素を追加できます。

<PropertyGroup>
  <VS_WINRT_REFERENCES>Windows;Windows.UI.Core</VS_WINRT_REFERENCES>
</PropertyGroup>

Visual Studio の GUI を使用

Visual Studio のソリューション エクスプローラーでプロジェクトを右クリックし、プロパティ を選択します。構成プロパティ > C/C++ > 全般 > Windows ランタイム ページで、WinRT 参照 フィールドに参照を追加できます。

CMake GUI を使用

CMake GUI を使用している場合は、ターゲット タブでターゲットを選択し、プロパティ パネルで VS_WINRT_REFERENCES プロパティを設定できます。

C++ プロパティシートを使用

C++ プロパティシートを使用している場合は、WinRT カテゴリで WinRT 参照 プロパティを設定できます。

これらの方法は、target_property() コマンドを使用するよりも柔軟性がありますが、より多くの手作業が必要になります。

注意事項

  • Visual Studio プロジェクトファイルを手動で編集する場合は、構文エラーが発生しないように注意する必要があります。
  • Visual Studio の GUI または CMake GUI を使用している場合は、正しいターゲットを選択していることを確認する必要があります。



CMakeでXcodeプロジェクトを極める! "Properties: Source Files"と"XCODE_LAST_KNOWN_FILE_TYPE"の達人になるためのテクニック

この情報は、Xcode がファイルを開いたり、編集したり、ビルドしたりする際にどのように扱うかを決定するために使用されます。Properties: Source Files は、CMakeLists. txt ファイルで設定できます。 以下の例は、main



【初心者向け】CMakeでWindows Phoneアプリ開発を始めるためのWINDOWS_PHONE変数ガイド

概要CMakeのWINDOWS_PHONE変数は、Windows Phoneアプリケーション開発時に重要な役割を果たします。この変数は、ビルドプロセスを構成し、特定のプラットフォーム向けに最適化されたコードを生成するために使用されます。詳細


eMbedded Visual StudioでWINCE C++プロジェクトをデバッグする

CMake変数は、ビルドプロセス中に設定できる値です。これらの変数は、プロジェクトのソースコード、コンパイラオプション、出力ファイルの場所など、さまざまなビルド設定を制御するために使用できます。WINCEプログラミングにおいて、いくつかの重要なCMake変数が存在します。



Qtプロジェクトにおける rcc コマンドの完全ガイド: CMAKE_AUTORCC とその他の方法

CMAKE_AUTORCC は、Qtプロジェクトにおける . qrc ファイルの自動処理を制御するブール型のCMake変数です。デフォルトでは ON に設定されており、Qtターゲットに対して rcc コマンドを自動的に呼び出します。機能ON の場合:


CMakeの変数 CMAKE_BUILD_RPATH_USE_ORIGIN を使うべき?

CMAKE_BUILD_RPATH_USE_ORIGIN は、ビルドツリー内の共有ライブラリへの参照を相対パスで解決するかどうかを制御する CMake 変数です。これは、ビルドツリーを移動したり、異なる環境で実行したりする場合に、アプリケーションの再配置可能性と信頼性を向上させるのに役立ちます。


CMakeでソースファイルの検証:ポリシーCMP0132、その他の方法、サンプルコード

CMake ポリシー CMP0132 は、target_sources コマンドでソースファイルのリストに追加されたファイルが、ターゲットのソースツリー内にあることを検証するオプションです。このポリシーは、誤ったパスや重複するエントリによるビルドエラーを防ぐために役立ちます。


CTEST_CHECKOUT_COMMAND以外のソースコード取得方法

概要目的: テスト実行前にソースコードをチェックアウトするコマンドを指定設定場所: CMakeLists. txtファイルのVariablesセクションデフォルト値: なしデータ型: STRINGスコープ: プロジェクト使用例詳細CTEST_CHECKOUT_COMMANDは、テストスイートが実行される前に実行されます。


CTestCoverageの達人になる! CTEST_COVERAGE_EXTRA_FLAGSでテストカバレッジ計測を詳細に制御する方法

CTEST_COVERAGE_EXTRA_FLAGS は、CMakeLists. txtファイル内で以下の方法で設定できます。上記例では、テスト対象プログラムに -g と -O0 オプションを付与しています。-g オプションは、デバッグ情報を生成します。これは、テストカバレッジ計測ツールがテスト対象プログラムのコード行とカバレッジ率を正確に関連付けるために必要です。