mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-23 21:08:43 +00:00
Windows batch script enhancements (#88)
* Make possible to invoke run-cmake.bat, build-ifcopenshell.cmd (now bat), install-ifcopenshell.cmd (now bat) directly from File Explorer or command prompt without VS env vars set, if BuildDepsCache file exists, by utilizing CMake's --build functionality. Do not delete CMakeCache.txt always now in order to keep the build options consistent. * win/readme.md tweaks + make the line width smaller * Windows batch files: use the last modified BuildDepsCache. Show an error if GEN_SHORTHAND does not exist.
This commit is contained in:
committed by
Thomas Krijnen
parent
be10bc46ca
commit
3c418e8e0a
@@ -12,7 +12,7 @@ Prerequisites
|
|||||||
* Git
|
* Git
|
||||||
* CMake (2.6 or newer)
|
* CMake (2.6 or newer)
|
||||||
* Windows: Visual Studio 2008 or newer with C++ toolset, MinGW not supported currently
|
* Windows: Visual Studio 2008 or newer with C++ toolset, MinGW not supported currently
|
||||||
* *nix: GCC 4.7 or newer, or Clang (any version should work, but not tested)
|
* *nix: GCC 4.7 or newer, or Clang (any version)
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
-------------
|
-------------
|
||||||
@@ -52,8 +52,8 @@ Only) to deploy the headers and binaries into a single location if wanted/needed
|
|||||||
|
|
||||||
Alternatively, one can use the utility batch files to build and install the project easily from the command-line:
|
Alternatively, one can use the utility batch files to build and install the project easily from the command-line:
|
||||||
|
|
||||||
> build-ifcopenshell.cmd
|
> build-ifcopenshell.bat
|
||||||
> install-ifcopenshell.cmd
|
> install-ifcopenshell.bat
|
||||||
|
|
||||||
### Compiling on *nix
|
### Compiling on *nix
|
||||||
There might be an Open CASCADE package in your operating system's software repository. If not, you will need to compile
|
There might be an Open CASCADE package in your operating system's software repository. If not, you will need to compile
|
||||||
|
|||||||
+5
-1
@@ -121,6 +121,10 @@ echo.
|
|||||||
call cecho.cmd black cyan "If you are not ready with the above, press Ctrl-C to abort!"
|
call cecho.cmd black cyan "If you are not ready with the above, press Ctrl-C to abort!"
|
||||||
|
|
||||||
pause
|
pause
|
||||||
|
|
||||||
|
:: Cache last used CMake generator for other scripts to use
|
||||||
|
if defined GEN_SHORTHAND echo GEN_SHORTHAND=%GEN_SHORTHAND%>"%~dp0\BuildDepsCache-%TARGET_ARCH%.txt"
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
set START_TIME=%TIME%
|
set START_TIME=%TIME%
|
||||||
echo Build started at %START_TIME%.
|
echo Build started at %START_TIME%.
|
||||||
@@ -265,7 +269,7 @@ set PYTHON_INSTALLER=python-%PYTHON_VERSION%%PYTHON_AMD64_POSTFIX%.msi
|
|||||||
:: NOTE/TODO 3.5.0 doesn't use MSI any longer, but exe: set PYTHON_INSTALLER=python-%PYTHON_VERSION%%PYTHON_AMD64_POSTFIX%.exe
|
:: NOTE/TODO 3.5.0 doesn't use MSI any longer, but exe: set PYTHON_INSTALLER=python-%PYTHON_VERSION%%PYTHON_AMD64_POSTFIX%.exe
|
||||||
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
||||||
REM Store Python versions to BuildDepsCache.txt for run-cmake.bat
|
REM Store Python versions to BuildDepsCache.txt for run-cmake.bat
|
||||||
echo PY_VER_MAJOR_MINOR=%PY_VER_MAJOR_MINOR%>"%~dp0\BuildDepsCache-%TARGET_ARCH%.txt"
|
echo PY_VER_MAJOR_MINOR=%PY_VER_MAJOR_MINOR%>>"%~dp0\BuildDepsCache-%TARGET_ARCH%.txt"
|
||||||
echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\BuildDepsCache-%TARGET_ARCH%.txt"
|
echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\BuildDepsCache-%TARGET_ARCH%.txt"
|
||||||
|
|
||||||
cd "%DEPS_DIR%"
|
cd "%DEPS_DIR%"
|
||||||
|
|||||||
@@ -27,19 +27,37 @@ echo.
|
|||||||
|
|
||||||
:: Enable the delayed environment variable expansion needed in VSConfig.cmd.
|
:: Enable the delayed environment variable expansion needed in VSConfig.cmd.
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
call vs-cfg.cmd %1
|
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
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
call build-type-cfg.cmd %2
|
call build-type-cfg.cmd %2
|
||||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
IF "%IFCOS_NUM_BUILD_PROCS%"=="" set IFCOS_NUM_BUILD_PROCS=%NUMBER_OF_PROCESSORS%
|
if not defined 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%"
|
call cecho.cmd 0 13 "* IFCOS_NUM_BUILD_PROCS`t= %IFCOS_NUM_BUILD_PROCS%"
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
call cecho.cmd 0 13 "Building %VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME%"
|
call cecho.cmd 0 13 "Building %VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME%"
|
||||||
MSBuild ..\%BUILD_DIR%\%PROJECT_NAME%.sln /nologo /m:%IFCOS_NUM_BUILD_PROCS% /p:Platform=%VS_PLATFORM% ^
|
cmake --build ..\%BUILD_DIR% -- /nologo /m:%IFCOS_NUM_BUILD_PROCS% /p:Platform=%VS_PLATFORM% /p:Configuration=%BUILD_CFG% ^
|
||||||
/p:Configuration=%BUILD_CFG% %3 %4 %5 %6 %7 %8 %9
|
%3 %4 %5 %6 %7 %8 %9
|
||||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
@@ -50,6 +68,7 @@ goto :End
|
|||||||
:Error
|
:Error
|
||||||
echo.
|
echo.
|
||||||
call %~dp0\utils\cecho.cmd 0 12 "%VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME% build failed!"
|
call %~dp0\utils\cecho.cmd 0 12 "%VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME% build failed!"
|
||||||
|
%IFCOS_PAUSE_ON_ERROR%
|
||||||
set IFCOS_SCRIPT_RET=1
|
set IFCOS_SCRIPT_RET=1
|
||||||
|
|
||||||
:End
|
:End
|
||||||
@@ -27,7 +27,24 @@ echo.
|
|||||||
|
|
||||||
:: Enable the delayed environment variable expansion needed in VSConfig.cmd.
|
:: Enable the delayed environment variable expansion needed in VSConfig.cmd.
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
call vs-cfg.cmd %1
|
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
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
call build-type-cfg.cmd %2
|
call build-type-cfg.cmd %2
|
||||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
@@ -38,7 +55,7 @@ call cecho.cmd 0 13 "* IFCOS_NUM_BUILD_PROCS`t= %IFCOS_NUM_BUILD_PROCS%"
|
|||||||
echo.
|
echo.
|
||||||
|
|
||||||
call cecho.cmd 0 13 "Installing %VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME%"
|
call cecho.cmd 0 13 "Installing %VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME%"
|
||||||
MSBuild ..\%BUILD_DIR%\INSTALL.%VCPROJ_FILE_EXT% /nologo /m:%IFCOS_NUM_BUILD_PROCS% /p:Platform=%VS_PLATFORM% ^
|
cmake --build ..\%BUILD_DIR% --target INSTALL -- /nologo /m:%IFCOS_NUM_BUILD_PROCS% /p:Platform=%VS_PLATFORM% ^
|
||||||
/p:Configuration=%BUILD_CFG% %3 %4 %5 %6 %7 %8 %9
|
/p:Configuration=%BUILD_CFG% %3 %4 %5 %6 %7 %8 %9
|
||||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
|
|
||||||
@@ -50,6 +67,7 @@ goto :End
|
|||||||
:Error
|
:Error
|
||||||
echo.
|
echo.
|
||||||
call %~dp0\utils\cecho.cmd 0 12 "%VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME% installation failed!"
|
call %~dp0\utils\cecho.cmd 0 12 "%VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME% installation failed!"
|
||||||
|
%IFCOS_PAUSE_ON_ERROR%
|
||||||
set IFCOS_SCRIPT_RET=1
|
set IFCOS_SCRIPT_RET=1
|
||||||
|
|
||||||
:End
|
:End
|
||||||
+39
-29
@@ -3,28 +3,32 @@ Windows Build Tools and Scripts
|
|||||||
This folder contains build tools and script for automatic building and deployment of IfcOpenShell (IFCOS)
|
This folder contains build tools and script for automatic building and deployment of IfcOpenShell (IFCOS)
|
||||||
and its dependencies.
|
and its dependencies.
|
||||||
|
|
||||||
As a general guideline, `.cmd` files are non-standalone batch files that need to be run from command
|
As a general guideline, `.cmd` files are non-standalone batch files that need to be run from command prompt or from
|
||||||
prompt or from another batch file, and/or while the Visual Studio environment variables set, and `.bat` files are
|
another batch file, and/or while the Visual Studio environment variables set, and `.bat` files are standalone batch
|
||||||
standalone batch files that can be run also e.g. from the File Explorer.
|
files that can also be invoked e.g. by double-clicking in the File Explorer.
|
||||||
|
|
||||||
Usage Instructions
|
Usage Instructions
|
||||||
------------------
|
------------------
|
||||||
Execute `build-deps.cmd` to fetch, build and install the dependencies. The batch file will print
|
Execute `build-deps.cmd` to fetch, build and install the dependencies. The batch file will print the requirements for
|
||||||
the requirements for a successful execution. The script allows a few user-configurable build options
|
a successful execution. The script allows a few user-configurable build options which are listed in the usage
|
||||||
which are listed in the usage instructions. Either edit the script file or set these values before
|
instructions. Either edit the script file or set these values before running the script.
|
||||||
running the script.
|
|
||||||
|
|
||||||
`build-deps.cmd` expects a CMake generator as `%1` and a build configuration type (`RelWithDebInfo/Release/MinSizeRel/Debug`,
|
`build-deps.cmd` expects a CMake generator as `%1` and a build configuration type (`RelWithDebInfo`, `Release`,
|
||||||
defaults to `RelWithDebInfo`) as `%2`. If the generator is not provided, the generator is deduced from the Visual Studio
|
`MinSizeRel`, or `Debug`, defaults to `RelWithDebInfo`) as `%2`. If the generator is not provided, the generator is
|
||||||
environment variables. User-friendly VS generator shorthands are supported, e.g. `vs2013-x86` or `vs2015-x64`, and these are
|
deduced from the Visual Studio environment variables. User-friendly VS generator shorthands are supported, e.g.
|
||||||
converted to the appropriate CMake ones by the scripts. A build type (`Build/Rebuild/Clean`, defaults to `Build`) can be
|
`vs2013-x86` or `vs2015-x64`, and these are converted to the appropriate CMake ones by the scripts. A build type
|
||||||
provided as `%3`. See `vs-cfg.cmd` if you wish to change the defaults. The batch file will create `deps\` and
|
(`Build`, `Rebuild`, or `Clean`, defaults to `Build`) can be provided as `%3`. See `vs-cfg.cmd` if you wish to change
|
||||||
`deps-vs<VERSION>-<ARCHITECTURE>-installed\` directories to the project root. Debug and release builds of the depedencies
|
the defaults. The batch file will create `deps\` and `deps-vs<VERSION>-<ARCHITECTURE>-installed\` directories to the
|
||||||
can co-exist by simply running `build-deps.cmd <GENERATOR> Debug` and `build-deps.cmd <GENERATOR> <Release|RelWithDebInfo|MinSizeRel>`.
|
project root. Debug and release builds of the depedencies can co-exist by simply running
|
||||||
|
```
|
||||||
|
> build-deps.cmd <GENERATOR> Debug
|
||||||
|
> build-deps.cmd <GENERATOR> <Release|RelWithDebInfo|MinSizeRel>
|
||||||
|
```
|
||||||
|
|
||||||
After the dependencies are build, execute `run-cmake.bat`. The batch file expects always a CMake generator as `%1`
|
After the dependencies are build, execute `run-cmake.bat`. The batch file expects a CMake generator as `%1` and the
|
||||||
(if not provided, the same default value as above is used), and the rest of possible parameters are passed as is.
|
rest of possible parameters are passed as is. If a generator is not provided, the generator is read from the
|
||||||
If passing build options for the script, the generator must be always passed as the first option:
|
BuildDepsCache file, or tried to be deduced from the location of `cl.exe`. If passing build options for the script,
|
||||||
|
the generator must be always passed as the first option:
|
||||||
```
|
```
|
||||||
> run-cmake.bat vs2015-x64 -DUSE_IFC4=1 -DBUILD_IFCPYTHON=0
|
> run-cmake.bat vs2015-x64 -DUSE_IFC4=1 -DBUILD_IFCPYTHON=0
|
||||||
```
|
```
|
||||||
@@ -37,14 +41,18 @@ Note that building IfcOpenShell as 64-bit is recommended as many of real life IF
|
|||||||
easily more than 2 GBs of RAM while converting.
|
easily more than 2 GBs of RAM while converting.
|
||||||
|
|
||||||
After this, one can build the project using the `IfcOpenShell.sln` file in the build folder. Build the `INSTALL` project
|
After this, one can build the project using the `IfcOpenShell.sln` file in the build folder. Build the `INSTALL` project
|
||||||
if wanted. Convenience batch files `build-ifcopenshell.cmd` and `install-ifcopenshell.cmd` can also be used. The batch files
|
if wanted. Convenience batch files `build-ifcopenshell.bat` and `install-ifcopenshell.bat` can also be used. The batch
|
||||||
expect `%1` and `%2` in same fashion as above and possible extra parameters are passed for the `MSBuild` call. The project will
|
files expect `%1` and `%2` in same fashion as above and possible extra parameters are passed for the `MSBuild` call.
|
||||||
be installed to `installed-vs<VERSION>-<ARCHITECTURE>\` folder in the project's root folder and the required IfcOpenShell-Python
|
`run-cmake.bat`, `build-ifcopenshell.bat`, and `install-ifcopenshell.bat` can also be directly invoked from Filer Explorer
|
||||||
parts are deployed to the `<PYTHONHOME>\Lib\site-packages\` folder. The 3ds Max plug-in, IfcMax.dli, needs to be copied manually
|
or regular Command Prompt if BuildDepsCache file exists (the last modified version is used). Running the scripts without extra
|
||||||
to the 3ds Max's `plugins` folder.
|
parameters reads the build options from an existing CMakeCache.txt.
|
||||||
|
|
||||||
**Note:** All of the dependencies are build as static libraries against the static run-time allowing the developer
|
The project will be installed to `installed-vs<VERSION>-<ARCHITECTURE>\` folder in the project's root folder and the
|
||||||
to effortlessly deploy standalone IFCOS binaries.
|
required IfcOpenShell-Python parts are deployed to the `<PYTHONHOME>\Lib\site-packages\` folder. The 3ds Max plug-in,
|
||||||
|
`IfcMax.dli`, needs to be copied manually to the 3ds Max's `plugins` folder.
|
||||||
|
|
||||||
|
**Note:** Currently all of the dependencies are build as static libraries against the static run-time allowing the
|
||||||
|
developer to effortlessly deploy standalone IFCOS executables.
|
||||||
|
|
||||||
Using an already existing Python installation
|
Using an already existing Python installation
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
@@ -56,13 +64,15 @@ Before building the dependencies, disable the script from installing Python:
|
|||||||
> buid-deps.cmd
|
> buid-deps.cmd
|
||||||
```
|
```
|
||||||
|
|
||||||
After bulding the dependencies, create BuildDepsCache file to `IfcOpenShell\win` which tells the used Python version and intallation directory:
|
After building the dependencies, append Python version and installation directory information to the BuildDepsCache file
|
||||||
|
in `IfcOpenShell\win`:
|
||||||
```
|
```
|
||||||
> echo PY_VER_MAJOR_MINOR=35> BuildDepsCache-x64.txt
|
> echo PY_VER_MAJOR_MINOR=35>> BuildDepsCache-x64.txt
|
||||||
> echo PYTHONHOME=C:\Python3>> BuildDepsCache-x64.txt
|
> echo PYTHONHOME=C:\Python3>> BuildDepsCache-x64.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
After this you should be able to run `run-cmake.bat` normally. If using 32-bit Python, the name of the file must be `BuildDepsCache-x86.txt`.
|
After this you should be able to run `run-cmake.bat` normally. If using 32-bit Python, the name of the file must be
|
||||||
|
`BuildDepsCache-x86.txt`.
|
||||||
|
|
||||||
Directory Structure
|
Directory Structure
|
||||||
------------------
|
------------------
|
||||||
@@ -76,9 +86,9 @@ Directory Structure
|
|||||||
| build-all.cmd - Runs all of the build scripts for IFCOS and it dependencies in a row without pauses
|
| build-all.cmd - Runs all of the build scripts for IFCOS and it dependencies in a row without pauses
|
||||||
| build-deps.cmd - Fetches and builds all needed dependencies for IFCOS
|
| build-deps.cmd - Fetches and builds all needed dependencies for IFCOS
|
||||||
| BuildDepsCache-<ARCH>.txt - Cache file created by build-deps.cmd
|
| BuildDepsCache-<ARCH>.txt - Cache file created by build-deps.cmd
|
||||||
| build-ifcopenshell.cmd - Builds IFCOS
|
| build-ifcopenshell.bat - Builds IFCOS
|
||||||
| build-type-cfg.cmd - Utility file used by the build scripts
|
| build-type-cfg.cmd - Utility file used by the build scripts
|
||||||
| install-ifcopenshell.cmd - Builds IFCOS's INSTALL project
|
| install-ifcopenshell.bat - Builds IFCOS's INSTALL project
|
||||||
| readme.md - This file
|
| readme.md - This file
|
||||||
| run-cmake.bat - Sets environment variables for the dependencies and runs CMake for IFCOS
|
| run-cmake.bat - Sets environment variables for the dependencies and runs CMake for IFCOS
|
||||||
| set-python-to-path.bat - Utility for setting PYTHONHOME (read from BuildDepsCache-<ARCH>.txt) to PATH
|
| set-python-to-path.bat - Utility for setting PYTHONHOME (read from BuildDepsCache-<ARCH>.txt) to PATH
|
||||||
|
|||||||
+21
-6
@@ -23,8 +23,25 @@ echo.
|
|||||||
set PROJECT_NAME=IfcOpenShell
|
set PROJECT_NAME=IfcOpenShell
|
||||||
|
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
|
set IFCOS_PAUSE_ON_ERROR=
|
||||||
|
|
||||||
call vs-cfg.cmd %1
|
:: 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
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
:: As CMake options are typically of format -DSOMETHING:BOOL=ON or -DSOMETHING=1, i.e. they contain an equal sign,
|
:: As CMake options are typically of format -DSOMETHING:BOOL=ON or -DSOMETHING=1, i.e. they contain an equal sign,
|
||||||
:: they will mess up the batch file argument parsing if the arguments are passed on by splitting them %2 %3 %4 %5
|
:: they will mess up the batch file argument parsing if the arguments are passed on by splitting them %2 %3 %4 %5
|
||||||
@@ -34,9 +51,6 @@ if not (%1)==() (
|
|||||||
call set ARGUMENTS=%%ARGUMENTS:%1=%%
|
call set ARGUMENTS=%%ARGUMENTS:%1=%%
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Read Python related variables from BuildDepsCache.txt
|
|
||||||
for /f "delims== tokens=1,2" %%G in (BuildDepsCache-%TARGET_ARCH%.txt) do set %%G=%%H
|
|
||||||
|
|
||||||
pushd ..
|
pushd ..
|
||||||
set CMAKE_INSTALL_PREFIX=%CD%\installed-vs%VS_VER%-%TARGET_ARCH%
|
set CMAKE_INSTALL_PREFIX=%CD%\installed-vs%VS_VER%-%TARGET_ARCH%
|
||||||
popd
|
popd
|
||||||
@@ -86,8 +100,8 @@ echo CMAKE_INSTALL_PREFIX = %CMAKE_INSTALL_PREFIX%
|
|||||||
echo.
|
echo.
|
||||||
|
|
||||||
set CMAKELISTS_DIR=..\cmake
|
set CMAKELISTS_DIR=..\cmake
|
||||||
:: For now clear CMakeCache.txt always in order to assure that when changing build options everything goes smoothly.
|
:: Delete CMakeCache.txt if command-line options were provided for this batch script.
|
||||||
IF EXIST CMakeCache.txt. del /Q CMakeCache.txt
|
if not (%1)==() if exist CMakeCache.txt. del /Q CMakeCache.txt
|
||||||
call cecho.cmd 0 13 "Running CMake for %PROJECT_NAME%."
|
call cecho.cmd 0 13 "Running CMake for %PROJECT_NAME%."
|
||||||
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" %ARGUMENTS%
|
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" %ARGUMENTS%
|
||||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
@@ -100,6 +114,7 @@ goto :Finish
|
|||||||
:Error
|
:Error
|
||||||
echo.
|
echo.
|
||||||
call %~dp0\utils\cecho.cmd 0 12 "An error occurred! Aborting!"
|
call %~dp0\utils\cecho.cmd 0 12 "An error occurred! Aborting!"
|
||||||
|
%IFCOS_PAUSE_ON_ERROR%
|
||||||
set IFCOS_SCRIPT_RET=1
|
set IFCOS_SCRIPT_RET=1
|
||||||
goto :Finish
|
goto :Finish
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -66,6 +66,7 @@ echo(!GENERATOR! | findstr /c:"vs20" >nul && (
|
|||||||
:GeneratorShorthandCheckDone
|
:GeneratorShorthandCheckDone
|
||||||
|
|
||||||
:: Deduce desired architecture from the location of cl.exe
|
:: Deduce desired architecture from the location of cl.exe
|
||||||
|
:: TODO harmless "INFO: Could not find files for the given pattern(s)." spam if cl.exe not in path
|
||||||
where cl.exe | findstr /c:"amd64" >nul
|
where cl.exe | findstr /c:"amd64" >nul
|
||||||
set START=%ERRORLEVEL%
|
set START=%ERRORLEVEL%
|
||||||
|
|
||||||
@@ -136,6 +137,7 @@ set GENERATOR=%GENERATOR: 2012=%
|
|||||||
set GENERATOR=%GENERATOR: 2010=%
|
set GENERATOR=%GENERATOR: 2010=%
|
||||||
:CMake3AndNewer
|
:CMake3AndNewer
|
||||||
|
|
||||||
|
set GEN_SHORTHAND=vs%VS_VER%-%TARGET_ARCH%
|
||||||
:: VS project file extension is different on older VS versions
|
:: VS project file extension is different on older VS versions
|
||||||
set VCPROJ_FILE_EXT=vcxproj
|
set VCPROJ_FILE_EXT=vcxproj
|
||||||
IF %VS_VER%==2008 set VCPROJ_FILE_EXT=vcproj
|
IF %VS_VER%==2008 set VCPROJ_FILE_EXT=vcproj
|
||||||
@@ -150,10 +152,10 @@ set PATH=%PATH%;%~dp0utils
|
|||||||
:: set DEPS_DIR=%CD%\deps-%VS_VER%-%TARGET_ARCH%
|
:: set DEPS_DIR=%CD%\deps-%VS_VER%-%TARGET_ARCH%
|
||||||
pushd ..
|
pushd ..
|
||||||
set DEPS_DIR=%CD%\deps
|
set DEPS_DIR=%CD%\deps
|
||||||
set INSTALL_DIR=%CD%\deps-vs%VS_VER%-%TARGET_ARCH%-installed
|
set INSTALL_DIR=%CD%\deps-%GEN_SHORTHAND%-installed
|
||||||
REM set INSTALL_DIR=%CD%\deps-vs%VS_VER%-%TARGET_ARCH%-%DEBUG_OR_RELEASE_LOWERCASE%-installed
|
REM set INSTALL_DIR=%CD%\deps-vs%VS_VER%-%TARGET_ARCH%-%DEBUG_OR_RELEASE_LOWERCASE%-installed
|
||||||
:: BUILD_DIR is a relative build directory used for CMake-based projects
|
:: BUILD_DIR is a relative build directory used for CMake-based projects
|
||||||
set BUILD_DIR=build-vs%VS_VER%-%TARGET_ARCH%
|
set BUILD_DIR=build-%GEN_SHORTHAND%
|
||||||
popd
|
popd
|
||||||
|
|
||||||
GOTO :EOF
|
GOTO :EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user