やりたいこと
CMake を使って vcpkg でインストールした googletest に依存したソースコードをビルドしたいです。
困っていること
CMake が googletest の CMake ソースコードファイルを見つけてくれません。
GTest_DIR
を指定すればうまくいきますが CMAKE_TOOLCHAIN_FILE
の指定で解決したいです。
ソースコード
cmake
1# CMakeLists.txt 2cmake_minimum_required(VERSION 3.10) 3 4project(ratio) 5 6add_subdirectory(lib) 7 8if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) 9 add_subdirectory(test) 10endif ()
cmake
1# test/CMakeLists.txt 2add_executable(ratio_test test.cpp) 3 4find_package(GTest CONFIG REQUIRED) 5include(GoogleTest) 6 7target_link_libraries(ratio_test PRIVATE ratio GTest::gmock GTest::gtest GTest::gmock_main GTest::gtest_main) 8 9gtest_discover_tests(ratio_test) 10 11enable_testing()
lib/CMakeLists.txt や C++ ソースコードは省略しています。
コマンド
bash
1git clone git@github.com:Microsoft/vcpkg.git 2cd vcpkg 3git checkout 2020.11-1 4./bootstrap-vcpkg.sh 5vcpkg install gtest 6cd $PROJECT 7mkdir build 8cd build 9cmake .. -DCMAKE_TOOLCHAIN_FILE=$VCPKG/scripts/buildsystems/vcpkg.cmake
エラーメッセージ
text
1CMake Error at vcpkg/scripts/buildsystems/vcpkg.cmake:555 (_find_package): 2 Could not find a package configuration file provided by "GTest" with any of 3-- Configuring incomplete, errors occurred! 4 the following names: 5See also "D:/a/ratio/ratio/build/CMakeFiles/CMakeOutput.log". 6 7 GTestConfig.cmake 8 gtest-config.cmake 9 10 Add the installation prefix of "GTest" to CMAKE_PREFIX_PATH or set 11 "GTest_DIR" to a directory containing one of the above files. If "GTest" 12 provides a separate development package or SDK, be sure it has been 13 installed. 14Call Stack (most recent call first): 15 test/CMakeLists.txt:3 (find_package)
完全なソースコードやコマンド・エラーメッセージは GitHub をご覧ください。
検証中(追記)
自前でインストールした vcpkg とシステムにインストールされていた vcpkg が食いちがっているっぽい?
あなたの回答
tips
プレビュー