mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-06 07:51:47 +00:00
5d8d6a0a4c
To speed up the process. Previously we were using `/m` which build different targets in parallel, but not .cpp files. So rocksdb could have been building for 30 mins because of this.
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.cmd 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%
|