mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-21 14:23:53 +00:00
bfce5b9415
Moving to Python to make Windows build scripts more maintainable. It's intended to be a drop-in replacement, so it should be possible to just switch `.\build-deps.cmd` to `python build-deps.py`, keeping exactly the same arguments and behaviour will be the same. `build-deps.cmd` is deprecated, but not yet removed, but will be shortly after more testing. Other batch files will be migrated to Python shortly after too.
79 lines
3.5 KiB
Batchfile
Executable File
79 lines
3.5 KiB
Batchfile
Executable File
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
:: ::
|
|
:: This file is part of IfcOpenShell. ::
|
|
:: ::
|
|
:: IfcOpenShell is free software: you can redistribute it and/or modify ::
|
|
:: it under the terms of the Lesser GNU General Public License as published by ::
|
|
:: the Free Software Foundation, either version 3.0 of the License, or ::
|
|
:: (at your option) any later version. ::
|
|
:: ::
|
|
:: IfcOpenShell is distributed in the hope that it will be useful, ::
|
|
:: but WITHOUT ANY WARRANTY; without even the implied warranty of ::
|
|
:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ::
|
|
:: Lesser GNU General Public License for more details. ::
|
|
:: ::
|
|
:: You should have received a copy of the Lesser GNU General Public License ::
|
|
:: along with this program. If not, see <http://www.gnu.org/licenses/>. ::
|
|
:: ::
|
|
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
|
|
:: This batch file expects CMake generator as %1 and build configuration type as %2. If not provided,
|
|
:: a deduced generator will be used for %1 and BUILD_CFG_DEFAULT for %2 (both set in vs-cfg.cmd)
|
|
:: Possible extra parameters are passed for the MSBuild call.
|
|
::
|
|
:: Example usage:
|
|
:: install-ifcopenshell.bat vs2022-x64 Debug
|
|
|
|
@if not defined ECHO_ON ( echo off )
|
|
set PROJECT_NAME=IfcOpenShell
|
|
echo.
|
|
|
|
:: Enable the delayed environment variable expansion needed in VSConfig.cmd.
|
|
setlocal EnableDelayedExpansion
|
|
set IFCOS_PAUSE_ON_ERROR=
|
|
|
|
:: Read cached variables from the most recently modified BuildDepsCache.txt.
|
|
for /f "tokens=*" %%f in ('dir BuildDepsCache-*.txt /o:-n /t:a /b') do (
|
|
for /f "delims== tokens=1,2" %%G in (%%f) do set %%G=%%H
|
|
)
|
|
set GENERATOR=%1
|
|
if (%1)==() (
|
|
if not defined GEN_SHORTHAND (
|
|
echo BuildDepsCache file does and/or GEN_SHORTHAND missing from it. Run build-deps.py to create it.
|
|
set IFCOS_PAUSE_ON_ERROR=pause
|
|
goto :Error
|
|
)
|
|
set GENERATOR=%GEN_SHORTHAND%
|
|
echo Generator not passed, but GEN_SHORTHAND=!GENERATOR! read from BuildDepsCache
|
|
echo.
|
|
)
|
|
call vs-cfg.cmd %GENERATOR%
|
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
|
call build-type-cfg.cmd %2
|
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
|
|
|
echo.
|
|
IF "%IFCOS_NUM_BUILD_PROCS%"=="" set IFCOS_NUM_BUILD_PROCS=%NUMBER_OF_PROCESSORS%
|
|
call cecho.cmd 0 13 "* IFCOS_NUM_BUILD_PROCS`t= %IFCOS_NUM_BUILD_PROCS%"
|
|
echo.
|
|
|
|
call cecho.cmd 0 13 "Installing %VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME%"
|
|
set MSBUILD_MULTIPROC=/m /p:CL_MPCount=%IFCOS_NUM_BUILD_PROCS% /p:UseMultiToolTask=true /p:EnforceProcessCountAcrossBuilds=true
|
|
cmake --build ..\%BUILD_DIR% --target INSTALL -- /nologo %MSBUILD_MULTIPROC% /p:Platform=%VS_PLATFORM% ^
|
|
/p:Configuration=%BUILD_CFG% %3 %4 %5 %6 %7 %8 %9
|
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
|
|
|
echo.
|
|
call cecho.cmd 0 10 "%VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME% installation finished."
|
|
set IFCOS_SCRIPT_RET=0
|
|
goto :End
|
|
|
|
:Error
|
|
echo.
|
|
call "%~dp0\utils\cecho.cmd" 0 12 "%VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME% installation failed!"
|
|
%IFCOS_PAUSE_ON_ERROR%
|
|
set IFCOS_SCRIPT_RET=1
|
|
|
|
:End
|
|
exit /b %IFCOS_SCRIPT_RET%
|