Код: Выделить всё
TopLevel/
-- CMakeLists.txt
-- SubLevel/
------ CMakeLists.txt
------ vcpkg/.. # I git cloned the vcpkg repo and bootstrapped it
------ vcpkg.json
TopLevel CMakeLists.txt интегрирует подпроект следующим образом:
Код: Выделить всё
# TopLevel/CMakeLists.txt
cmake_minimum_required(VERSION 3.21)
project(MyProject)
add_subdirectory(SubLevel)
Код: Выделить всё
# TopLevel/SubLevel/CMakeLists.txt
cmake_minimum_required(VERSION 3.21)
find_package(fmt CONFIG REQUIRED)
Код: Выделить всё
# TopLevel/SubLevel/vcpkg.json
{
"name": "my-project",
"version": "1.0.0",
"dependencies": [
"fmt"
]
}
Код: Выделить всё
cmake -B build \
-DCMAKE_TOOLCHAIN_FILE=/Users/my_name/sandbox/TopLevel/SubLevel/vcpkg/scripts/buildsystems/vcpkg.cmake
Код: Выделить всё
CMake Error at SubLevel/vcpkg/scripts/buildsystems/vcpkg.cmake:908 (_find_package):
Could not find a package configuration file provided by "fmt" with any of
the following names:
fmtConfig.cmake
fmt-config.cmake
Add the installation prefix of "fmt" to CMAKE_PREFIX_PATH or set "fmt_DIR"
to a directory containing one of the above files. If "fmt" provides a
separate development package or SDK, be sure it has been installed.
Call Stack (most recent call first):
SubLevel/CMakeLists.txt:6 (find_package)
-- Configuring incomplete, errors occurred!
Я впервые использую CMake, и в README подпроекта указано, что все, что мне нужно сделать, это добавить строку «add_subdirectory()», чтобы использовать его, поэтому я, возможно, начал не с той ноги и предположил, что все работает определенным образом, когда они не сделал. Было ли это следствием плохой документации?
Мобильная версия