vcpkg
Less than 1 minute
vcpkg
このWiki内の関連ページ: VisualStudio、VSCode, vcpkgでQt5
baselineのアップデート
% vcpkg x-update-baseline
CMakeから使うミニマムな例
手順は以下に書いてある。
vcpkg in CMake projects - Microsoft Learn
CMAKE_TOOLCHAIN_FILEでvcpkgのものを指定する。そのための推奨の方法はCMakePresets.jsonを使う、との事だが、CMakeLists.txtの冒頭に以下の方がミニマムか。
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
endif()
これはproject()の前にセットしなくてはいけない。VCPKG_ROOTはまぁみんな定義しているだろう。
マニフェストモードでのライブラリの共有
Qtなどをvcpkgで入れる場合、流石にプロジェクトごとにビルドするのはイマイチだがVSのvcpkgではクラシックモードで動かすのもどうすべきか微妙だったりするのでどうしたもんか、と調べていたところ、バイナリキャッシュを特定のディレクトリに置いてそれを共有する仕組みがあるらしい。 こちらの方が王道っぽいな。
- Tutorial: Set up a vcpkg binary cache using filesystem directories - Microsoft Learn
- Default local vcpkg binary cache - Microsoft Learn
デフォルトでAppData/Local/vcpkgの下が使われているっぽいな。なんかこれでいい気がするな。
Windowsでの作業ログ
手作業での指定を一応試してみる。
- ディレクトリを適当に作る
mkdir ~/source/vcpkg_cache
- 環境変数を設定する
$env:VCPKG_BINARY_SOURCES="clear;filesystem,C:\Users\karino2\source\vcpkg_cache\vcpkg_cache,read-write"