如何指定vcpkg使用的CMake版本

时间:2019-03-17 06:58:32

标签: cmake visual-studio-2019 vcpkg

简短版本: vcpkg无法构建软件包,并出现以下错误:

Unable to determine appropriate CMake MSBuild generator for:
  Windows-x64-v142  
This is because CMake 3.12.4 does not currently have a 'Visual Studio 16
  2019' option.

即使已安装cmake 3.14。 我想告诉它使用cmake 3.14

长版:

背景:

我正在尝试使用Visual Studio 2019和vcpkg。我目前有Visual Studio 2017和vcpkg完美运行。

设置:

我创建了一个新的三元组,目的是将14.2软件包与14.1软件包一起安装。我将其称为x64-windows-dynamic-2019-142这个三元组与标准x64-windows三元组完全相同,但是我在其中添加了VCPKG_VISUAL_STUDIO_PATH和VCPKG_PLATFORM_TOOLSET。 完整的三元组文件如下所示:

set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual 
Studio\\2019\\Community")
set(VCPKG_PLATFORM_TOOLSET "v142")

我将vcpkg拉到了最新的master分支,然后重新运行bootstrap-vcpkg.bat。

问题:

当我运行vcpkg install sfml:x64-windows-dynamic-2019-142时,它会无错误地安装sfml的许多依赖项,但由于我上面提到的错误而无法安装sfml。

我很困惑为什么依赖关系不会失败,但是我真正想知道的是如何使vcpkg使用已安装的最新CMake以便完成构建。

当我在从中安装sfml的同一电源外壳中运行“ cmake --version”时,它会返回“ cmake版本3.14.0”

1 个答案:

答案 0 :(得分:1)

在调用vcpkg.exe之前尝试设置环境变量VCPKG_FORCE_SYSTEM_BINARIES,即:

C:\vcpkg>set VCPKG_FORCE_SYSTEM_BINARIES=1
C:\vcpkg>vcpkg install sfml:x64-windows-dynamic-2019-142

请注意,工具cmake.exegit.exeninja.exe必须在路径上可用。