Created
July 28, 2017 22:19
Star
You must be signed in to star a gist
Notepad++ buildboost.bat update for VS2017
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@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