Я пытаюсь создать новый порт для VCPKG для проекта Arabica . Команда установки vcpkg не выполняется. Первая ошибка выглядит следующим образом.
...\include\XPath/impl/xpath_namespace_context.hpp(7,10):
fatal error C1083: Cannot open include file: 'boost/shared_ptr.hpp':
No such file or directory [D:\vcpkg\buildtrees\arabica\x64-windows-dbg\mangle.vcxproj]
Дело в том, что этот файл установлен в каталоге включения VCPKG. Если быть точным, он установлен в D: \ vcpkg \ instal \ x64-windows \ include \ boost \ shared_ptr.hpp.
Команда, используемая для компиляции файла, выглядит следующим образом.
...\CL.exe /c /I"D:\vcpkg\buildtrees\arabica\x64-windows-dbg\include" /I"D:\vcpkg\buildtrees\arabica\src\0-February-67b234ed05\include" /Z7 /W3 /WX- /diagnostics:column /MP /Od /Ob0 /D WIN32 /D _WINDOWS /D _DEBUG /D ARABICA_DEBUG /D ARABICA_NOT_USE_PRAGMA_LINKER_OPTIONS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"xgrep.dir\Debug\\" /Fd"xgrep.dir\Debug\vc142.pdb" /Gd /TP /errorReport:queue /utf-8 "D:\vcpkg\buildtrees\arabica\src\0-February-67b234ed05\examples\XPath\xgrep.cpp"
Если бы я мог просто заставить VCPKG добавить аргумент командной строки / I "D: \ vcpkg \ instal \ x64-windows \ include", он бы работал.
Содержимое моего файла CONTROL выглядит следующим образом.
Source: arabica
Version: 2020-February
Homepage: https://github.com/BenKeyFSI/arabica
Description: Arabica is an XML and HTML processing toolkit, providing SAX2, DOM, XPath, and XSLT implementations, written in Standard C++.
Build-Depends: boost-mpl, boost-type-traits, boost-spirit, boost-function, boost-bind, boost-smart-ptr, boost-lexical-cast
Содержимое файла portfile.cmake выглядит следующим образом.
include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO BenKeyFSI/arabica
REF 2020-February
SHA512 3cf56a71c53e35eb2bc48332c96958e6800e5735a629f292f47e9b22b106f378e45abe046d6a7ed8604fe434d356efbf8744bd31fa905de6fcec62c7223f9e4c
HEAD_REF master
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/arabica RENAME copyright)
Это происходит из-за ошибки компилятора, о которой я упоминал выше, и некоторых других из-за отсутствия заголовочных файлов Boost. Ни одна из этих ошибок компилятора не возникла бы, если бы она просто включила каталог включения VCPKG в список включаемых каталогов, поскольку Boost уже установлен, а файл CONTROL утверждает, что эта библиотека зависит от Boost.
Есть ли магическое заклинание Мне нужно перейти либо к vcpkg_configure_cmake, либо к vcpkg_install_cmake, который говорит «включить каталог включения VCPKG в путь включения?»