Visual Studioの複数のバージョンがインストールされています(2010、2012、2015の試用版)。
CMakeに特定のVSバージョンのメイクファイルを生成させるにはどうすればよいですか?デフォルトでは、VS2015用に生成されます。
最初に、 generators でCMakeバージョンがサポートしているもの(およびそれらの名前)を確認できます。
_> cmake.exe --help
...
The following generators are available on this platform:
...
Visual Studio 11 2012 [Arch] = Generates Visual Studio 2012 project files.
Optional [Arch] can be "Win64" or "ARM".
...
_
それからあなたはジェネレーターを与えることができます
cmake.exe -G "Visual Studio 11" ..
_(短縮名)cmake.exe -G "Visual Studio 11 2012" ..
_(フルネーム)明快さのため、私は後者を好みます。そして、私は通常、ビルドスクリプトラッパーでこの呼び出しを行います。
_@ECHO off
IF NOT EXIST "BuildDir\*.sln" (
cmake -H"." -B"BuildDir" -G"Visual Studio 11 2012"
)
cmake --build "BuildDir" --target "ALL_BUILD" --config "Release"
_
フルネームは、キャッシュされた内部CMake変数名 _CMAKE_GENERATOR
_ に転送されます。したがって、上記の呼び出しは次と同等です。
cmake -DCMAKE_GENERATOR="Visual Studio 11 2012" ..
_これは興味深い可能性を与えてくれます。 _PreLoad.cmake
_と呼ばれるファイルをメインの_CMakeLists.txt
_ファイルと並列に配置すると、デフォルト(使用可能な場合)にプロジェクトを強制的に割り当てることができます。
_cmake.exe ..
_
PreLoad.cmake
_if (NOT "$ENV{VS110COMNTOOLS}" STREQUAL "")
set(CMAKE_GENERATOR "Visual Studio 11 2012" CACHE INTERNAL "Name of generator.")
endif()
_
_-T <toolset-name>
_または_-A <platform-name>
_オプションも追加する必要がある場合があります。
cmake.exe -G "Visual Studio 10" -T "v90" ..
_そして最後に、あなたが本当にコンパイラにのみ興味があるなら
"\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"
_cmake.exe -G "NMake Makefiles" ..
_
cmake -G "Visual Studio 12" ..\MyProject