#c #batch-file #cmake #vcpkg
Вопрос:
Я создаю кроссплатформенный проект CMake/C в Windows совместно с vcpkg в качестве менеджера пакетов и Visual Studio 2019 в качестве компилятора. У меня есть проект для сборки; теперь я просто хочу, чтобы мой процесс сборки был воспроизводимым мной и другими.
Я использую файл манифеста vcpkg.json для указания зависимостей проекта. У меня есть файл под названием bootstrap.bat
, который выполняет следующее:
set VCKPG_PARENT_DIR=C:Projects
set CMAKE_VERSION="3.20.2"
mkdir /p "%VCKPG_PARENT_DIR%"
pushd "%VCKPG_PARENT_DIR%"
git clone https://github.com/Microsoft/vcpkg.git
.vcpkgbootstrap-vcpkg.bat -disableMetrics
set PATH=%PATH%;%VCKPG_PARENT_DIR%vcpkgdownloadstoolscmake-%CMAKE_VERSION%-windowscmake-%CMAKE_VERSION%-windows-i386bin
set VCPKG_DEFAULT_TRIPLET=x64-windows
set PYTHONHOME=%VCKPG_PARENT_DIR%vcpkgpackagespython3_x64-windowstoolspython3
popd
В строке, где я задаю ПУТЬ, есть ли лучший способ указать местоположение каталога CMake? Например, тот, который будет использовать встроенную переменную среды vcpkg или что-то в этом роде? Я бы предпочел не жестко кодировать версию CMake, если смогу помочь. Я искал ответы на этот вопрос, но пока ничего не придумал.
Я не готов предполагать, что у пользователя уже установлены CMake или vcpkg, только Visual Studio и git.
Для полноты картины, вот сопутствующий пакетный файл, build.bat
:
cmake -B build -S .engine -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%scriptsbuildsystemsvcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DUSE_PYTHON_3=ON
cmake --build .build --config Release
mkdir bin
xcopy .buildRelease*.* .bin
xcopy .buildobjconvRelease*.* .bin
xcopy .buildsetupRelease*.* .bin
Любая помощь будет признательна.