Notepad++ buildboost.bat update for VS2017
@ECHO OFF | |
:: Perform the pre-steps to build boost and set the boost path for the build file | |
SETLOCAL | |
SET BOOSTPATH= | |
SET MSVCTOOLSET= | |
SET TOOLSETCOMMAND= | |
SET BOOSTVERSION= | |
SET WORKPATH=%~dp0% | |
SET BUILDTARGETPARAM= | |
SET BUILDTARGETPATH= | |
rem :PARAMLOOP | |
IF [%1]==[] ( | |
GOTO PARAMCONTINUE | |
) | |
IF NOT [%1]==[--toolset] ( | |
SET BOOSTPATH=%1 | |
) | |
rem VS2017support: One extra change below for 14.1 toolset support | |
rem VS2015support: Param loop is REMed out for some reason so hack here to allow -toolset to work properly. | |
rem VS2015support: This means that parameter or is important. New usage is... | |
rem VS2015support: BuildBoost-VS2015edit.bat PathToBoost [--toolset ToolsetVersion] [-x64] | |
IF [%2]==[--toolset] ( | |
SET MSVCTOOLSET=%3 | |
SHIFT | |
SHIFT | |
) | |
IF [%2]==[-x64] ( | |
SET BUILDTARGETPARAM=architecture=ia64 | |
SET BUILDTARGETPATH=architecture-ia64\ | |
) | |
rem SHIFT | |
rem GOTO PARAMLOOP | |
:PARAMCONTINUE | |
IF [%BOOSTPATH%]==[] ( | |
GOTO USAGE | |
) | |
SET TOOLSETCOMMAND= | |
IF NOT [%MSVCTOOLSET%]==[] ( | |
SET TOOLSETCOMMAND=toolset=%MSVCTOOLSET% | |
) | |
IF NOT EXIST "%BOOSTPATH%\boost\regex.hpp" ( | |
ECHO Not found: %BOOSTPATH%\boost\regex.hpp | |
GOTO BOOSTNOTFOUND | |
) | |
IF NOT EXIST "%BOOSTPATH%\bjam\bin\bjam.exe" ( | |
ECHO Building BJAM, the boost build tool | |
rem VS2015support: Boost 1_63_0 has bootstrap.bat & b2.exe in '...tools\build\' instead of '...tools\build\v2\' | |
PUSHD %BOOSTPATH%\tools\build | |
CALL bootstrap.bat | |
rem VS2015support: Add echo | |
ECHO Starting boost install | |
%BOOSTPATH%\tools\build\b2 --prefix=%BOOSTPATH%\bjam install | |
POPD | |
) | |
IF NOT ERRORLEVEL 0 ( | |
GOTO BUILDERROR | |
) | |
ECHO. | |
ECHO *************************************************************** | |
ECHO Building tool to check boost version | |
ECHO *************************************************************** | |
ECHO # Temporary version of auto-generated file > %WORKPATH%\boostpath.mak | |
ECHO # If you're seeing this version of the file, and you're not currently building boost, >> %WORKPATH%\boostpath.mak | |
ECHO # then your buildboost.bat is failing somewhere. >> %WORKPATH%\boostpath.mak | |
ECHO # Run BuildBoost.bat [absolute_path_to_boost] to generate this file again >> %WORKPATH%\boostpath.mak | |
ECHO # And lookout for error messages >> %WORKPATH%\boostpath.mak | |
ECHO BOOSTPATH=%BOOSTPATH% >> %WORKPATH%\boostpath.mak | |
IF NOT EXIST bin md bin | |
nmake -f getboostver.mak | |
IF ERRORLEVEL 1 ( | |
ECHO ****************************** | |
ECHO ** ERROR building getboostver.exe | |
ECHO ** Please see the error messages above, and post as much as you can to the | |
ECHO ** Notepad++ Open Discussion forum | |
ECHO ** http://sourceforge.net/projects/notepad-plus/forums/forum/331753 | |
ECHO. | |
GOTO EOF | |
) | |
for /f "delims=" %%i in ('bin\getboostver.exe') do set BOOSTVERSION=%%i | |
IF [%BOOSTVERSION%]==[] ( | |
ECHO There was an error detecting the boost version. | |
ECHO Please see the error messages above, and post as much as you can to the | |
ECHO Notepad++ Open Discussion forum | |
ECHO http://sourceforge.net/projects/notepad-plus/forums/forum/331753 | |
ECHO. | |
GOTO EOF | |
) | |
ECHO. | |
ECHO *************************************************************** | |
ECHO Boost version in use: %BOOSTVERSION% | |
ECHO *************************************************************** | |
ECHO. | |
ECHO. | |
ECHO *************************************************************** | |
ECHO Building Boost::regex | |
ECHO *************************************************************** | |
ECHO. | |
PUSHD %BOOSTPATH%\libs\regex\build | |
%BOOSTPATH%\bjam\bin\bjam %TOOLSETCOMMAND% variant=release threading=multi link=static runtime-link=static %BUILDTARGETPARAM% | |
IF NOT ERRORLEVEL 0 ( | |
GOTO BUILDERROR | |
) | |
%BOOSTPATH%\bjam\bin\bjam %TOOLSETCOMMAND% variant=debug threading=multi link=static runtime-link=static %BUILDTARGETPARAM% | |
IF NOT ERRORLEVEL 0 ( | |
GOTO BUILDERROR | |
) | |
IF NOT [%MSVCTOOLSET%]==[] ( | |
GOTO TOOLSETKNOWN | |
) | |
rem VS2015support: ToDo = add detect here. For now must specify Toolset on BuildBoost command line. | |
:: VS2013 | |
IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-12.0\release\%BUILDTARGETPATH%link-static\runtime-link-static\threading-multi\libboost_regex-vc120-mt-s-%BOOSTVERSION%.lib ( | |
SET MSVCTOOLSET=msvc-12.0 | |
) | |
:: VS2012 | |
IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc110-mt-s-%BOOSTVERSION%.lib ( | |
SET MSVCTOOLSET=msvc-11.0 | |
) | |
:: VS2010 | |
IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc100-mt-s-%BOOSTVERSION%.lib ( | |
SET MSVCTOOLSET=msvc-10.0 | |
) | |
:: VS2008 | |
IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-9.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc90-mt-s-%BOOSTVERSION%.lib ( | |
SET MSVCTOOLSET=msvc-9.0 | |
) | |
:: VS2005 | |
IF EXIST %BOOSTPATH%\bin.v2\libs\regex\build\msvc-8.0\release\link-static\runtime-link-static\threading-multi\libboost_regex-vc80-mt-s-%BOOSTVERSION%.lib ( | |
SET MSVCTOOLSET=msvc-8.0 | |
) | |
IF [%MSVCTOOLSET%]==[] ( | |
ECHO No correctly built boost regex libraries could be found. | |
ECHO Try specifying the MSVC version on the command line. | |
GOTO USAGE | |
) | |
ECHO *********************************************** | |
ECHO Assuming toolset in use is %MSVCTOOLSET% | |
ECHO *********************************************** | |
ECHO If this is not correct, specify the version on the command line with --toolset | |
ECHO Run buildboost.bat without parameters to see the usage. | |
:TOOLSETKNOWN | |
rem VS2017support: Add BOOSTLIBPATH case | |
:: VS2017 | |
IF [%MSVCTOOLSET%]==[msvc-14.1] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-14.1 | |
) | |
rem VS2015support: Add BOOSTLIBPATH case | |
:: VS2015 | |
IF [%MSVCTOOLSET%]==[msvc-14.0] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-14.0 | |
) | |
:: VS2013 | |
IF [%MSVCTOOLSET%]==[msvc-12.0] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-12.0 | |
) | |
:: VS2012 | |
IF [%MSVCTOOLSET%]==[msvc-11.0] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-11.0 | |
) | |
:: VS2010 | |
IF [%MSVCTOOLSET%]==[msvc-10.0] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-10.0 | |
) | |
:: VS2008 | |
IF [%MSVCTOOLSET%]==[msvc-9.0] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-9.0 | |
) | |
:: VS2005 | |
IF [%MSVCTOOLSET%]==[msvc-8.0] ( | |
SET BOOSTLIBPATH=%BOOSTPATH%\bin.v2\libs\regex\build\msvc-8.0 | |
) | |
:: Error case, so we try to give the user a helpful error message | |
IF [%BOOSTLIBPATH%] == [] ( | |
ECHO **************************************** | |
ECHO ** ERROR | |
ECHO ** Boost library could not be found. | |
ECHO ** Make sure you've specified the correct boost path on the command line, | |
ECHO ** and try adding the toolset version | |
ECHO **************************************** | |
GOTO USAGE | |
) | |
ECHO # Autogenerated file, run BuildBoost.bat [path_to_boost] to generate > %WORKPATH%\boostpath.mak | |
ECHO BOOSTPATH=%BOOSTPATH% >> %WORKPATH%\boostpath.mak | |
ECHO BOOSTLIBPATH=%BOOSTLIBPATH% >> %WORKPATH%\boostpath.mak | |
ECHO BUILDTARGETPATH=%BUILDTARGETPATH% >> %WORKPATH%\boostpath.mak | |
POPD | |
ECHO. | |
ECHO. | |
ECHO Boost::regex built. | |
ECHO. | |
ECHO Now you need to build scintilla. | |
ECHO. | |
ECHO From the scintilla\win32 directory | |
ECHO. | |
ECHO nmake -f scintilla.mak | |
ECHO. | |
ECHO. | |
GOTO EOF | |
:BOOSTNOTFOUND | |
ECHO Boost Path not valid. Run BuildBoost.bat with the absolute path to the directory | |
ECHO where you unpacked your boost zip. | |
ECHO. | |
:USAGE | |
ECHO. | |
ECHO Boost is available free from www.boost.org | |
ECHO. | |
ECHO Unzip the file downloaded from www.boost.org, and give the absolute path | |
ECHO as the first parameter to buildboost.bat | |
ECHO. | |
ECHO e.g. | |
ECHO buildboost.bat d:\libs\boost_1_55_0 | |
ECHO. | |
ECHO To build 64 bit version, add "-x64" flag after the full file path. | |
ECHO e.g. | |
ECHO buildboost.bat d:\libs\boost_1_55_0 -x64 | |
ECHO. | |
ECHO. | |
ECHO You can specify which version of the Visual Studio compiler to use | |
ECHO with --toolset. | |
ECHO Use: | |
ECHO --toolset msvc-8.0 for Visual studio 2005 | |
ECHO --toolset msvc-9.0 for Visual Studio 2008 | |
ECHO --toolset msvc-10.0 for Visual Studio 2010 | |
ECHO --toolset msvc-11.0 for Visual Studio 2012 | |
ECHO --toolset msvc-12.0 for Visual Studio 2013 | |
ECHO. | |
ECHO. | |
ECHO e.g. To build with boost in d:\libs\boost_1_55_0 with Visual Studio 2008 | |
ECHO. | |
ECHO buildboost.bat --toolset msvc-9.0 d:\libs\boost_1_55_0 | |
ECHO. | |
GOTO EOF | |
:BUILDERROR | |
ECHO There was an error building boost. Please see the messages above for details. | |
ECHO - Have you got a clean extract from a recent boost version, such as 1.55? | |
ECHO - Download a fresh copy from www.boost.org and extract it to a directory, | |
ECHO and run the batch again with the name of that directory | |
:EOF | |
ENDLOCAL |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment