Visual Studio SDKのソースコードを直接参照!CMakeにおける変数`CMAKE_VS_SDK_SOURCE_DIRECTORIES`の役割とは?
CMAKE_VS_SDK_SOURCE_DIRECTORIES
は、Visual Studio SDK のソースディレクトリを指定するために使用される CMake 変数です。この変数は CMake 3.12 以降で導入されました。
用途
設定方法
CMAKE_VS_SDK_SOURCE_DIRECTORIES
変数は、CMakeLists.txt ファイル内で以下の様に設定できます。
set(CMAKE_VS_SDK_SOURCE_DIRECTORIES "<SDK_SOURCE_DIR1>;<SDK_SOURCE_DIR2>;...")
ここで、<SDK_SOURCE_DIR1>
, <SDK_SOURCE_DIR2>
は、Visual Studio SDK のソースディレクトリへのパスをセミコロンで区切って指定します。
例
以下は、CMAKE_VS_SDK_SOURCE_DIRECTORIES
変数を使用して Visual Studio 2019 SDK のソースディレクトリを指定する例です。
set(CMAKE_VS_SDK_SOURCE_DIRECTORIES "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build;C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC")
注意事項
- この変数は、CMake が Visual Studio SDK のソースコードを直接参照するため、SDK のソースコードが変更された場合は、CMakeLists.txt ファイルを再編集する必要があります。
CMAKE_VS_SDK_SOURCE_DIRECTORIES
変数は、Visual Studio 以外のコンパイラを使用している場合は設定する必要はありません。
CMAKE_VS_SDK_SOURCE_DIRECTORIES
変数は、Visual Studio SDK のソースコードを直接参照するため、以下の点に注意する必要があります。
- SDK のソースコードは、ライセンス条項に従って使用してください。
- SDK のソースコードが破損している場合は、ビルドが失敗する可能性があります。
- SDK のソースコードが変更された場合は、CMakeLists.txt ファイルを再編集する必要があります。
cmake_minimum_required(VERSION 3.13)
project(MyProject)
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/build/toolchain.cmake")
set(CMAKE_VS_SDK_SOURCE_DIRECTORIES "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build;C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC")
set(SOURCE_FILES main.cpp)
add_executable(MyProject ${SOURCE_FILES})
例2:Visual Studio 2017 SDK を使用して Visual Studio 2017 で C++ ライブラリをビルド
cmake_minimum_required(VERSION 3.13)
project(MyLibrary)
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/build/toolchain.cmake")
set(CMAKE_VS_SDK_SOURCE_DIRECTORIES "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Auxiliary/Build;C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC")
set(SOURCE_FILES MyLibrary.cpp)
add_library(MyLibrary STATIC ${SOURCE_FILES})
例3:Visual Studio 2015 SDK を使用して Visual Studio 2015 で C# アプリケーションをビルド
cmake_minimum_required(VERSION 3.13)
project(MyApplication)
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/build/toolchain.cmake")
set(CMAKE_VS_SDK_SOURCE_DIRECTORIES "C:/Program Files (x86)/Microsoft Visual Studio/2015/Professional/VC/Auxiliary/Build;C:/Program Files (x86)/Microsoft Visual Studio/2015/BuildTools/VC")
set(SOURCE_FILES main.cs)
add_executable(MyApplication ${SOURCE_FILES})
説明
上記の例は、CMAKE_VS_SDK_SOURCE_DIRECTORIES
変数を使用して Visual Studio SDK のソースディレクトリを指定し、Visual Studio 2019、2017、2015 で C++ アプリケーション、C++ ライブラリ、C# アプリケーションをビルドする方法を示しています。
ビルド方法
上記の例をビルドするには、以下のコマンドを実行します。
mkdir build
cd build
cmake ..
cmake --build .
CMAKE_VS_SDK_DIR 変数
CMAKE_VS_SDK_DIR
変数は、Visual Studio SDK のインストールディレクトリを指定するために使用されます。CMake は、このディレクトリ内の Build
サブディレクトリを使用して、SDK のソースコードを検索します。
set(CMAKE_VS_SDK_DIR "<SDK_INSTALL_DIR>")
例
set(CMAKE_VS_SDK_DIR "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional")
環境変数 VSINSTALLDIR
VSINSTALLDIR
環境変数は、Visual Studio のインストールディレクトリを指定するために使用されます。CMake は、この環境変数を使用して、SDK のソースコードを検索することもできます。
set(CMAKE_VS_SDK_DIR "${VSINSTALLDIR}")
find_package() モジュール
find_package()
モジュールを使用して、Visual Studio SDK を検索することもできます。このモジュールは、SDK のインストールディレクトリ、ソースディレクトリ、ヘッダーファイル、ライブラリファイルなどの情報を取得することができます。
find_package(VS2019 REQUIRED)
例
find_package(VS2017 REQUIRED)
手動でヘッダーファイルとライブラリファイルを指定
Visual Studio SDK のヘッダーファイルとライブラリファイルを直接指定することもできます。
include_directories("C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/Include")
link_libraries("C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/Microsoft.Cpp.Platform.targets")
例
include_directories("C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Auxiliary/Build/Include")
link_libraries("C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Auxiliary/Build/Microsoft.Cpp.Platform.targets")
それぞれの方法の比較
方法 | 利点 | 欠点 |
---|---|---|
CMAKE_VS_SDK_SOURCE_DIRECTORIES | 最も簡単 | SDK のソースコードが変更された場合、CMakeLists.txt ファイルを再編集する必要がある |
CMAKE_VS_SDK_DIR | 簡単 | SDK のインストールディレクトリを変更する必要がある |
find_package() モジュール | 最も柔軟性が高い | モジュールのインストールと設定が必要 |
手動でヘッダーファイルとライブラリファイルを指定 | 最も詳細な制御が可能 | 最も複雑 |
どの方法を使用するかは、プロジェクトの要件と開発者の好みによって異なります。
- 最も詳細な制御が必要な場合は、ヘッダーファイルとライブラリファイルを直接指定することをお勧めします。
- より柔軟性が必要な場合は、
find_package()
モジュールを使用することをお勧めします。 - SDK のインストールディレクトリを変更する必要がある場合は、
CMAKE_VS_SDK_DIR
変数を使用することをお勧めします。 - 簡単でシンプルな方法が必要な場合は、
CMAKE_VS_SDK_SOURCE_DIRECTORIES
変数を使用することをお勧めします。