mingw.bat 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. ::
  2. :: MinGW Build Script for Appveyor, leveraging the MSYS2 installation
  3. :: Copyright (C) 2018 James E. King III
  4. :: Distributed under the Boost Software License, Version 1.0.
  5. :: (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
  6. ::
  7. @ECHO ON
  8. SETLOCAL EnableDelayedExpansion
  9. :: Set up the toolset
  10. echo using gcc : %FLAVOR% : %ARCH%-w64-mingw32-g++.exe ; > %USERPROFILE%\user-config.jam
  11. SET UPPERFLAVOR=%FLAVOR%
  12. CALL :TOUPPER UPPERFLAVOR
  13. :: Install packages needed to build boost
  14. :: Optional: comment out ones this library does not need,
  15. :: so people can copy this script to another library.
  16. FOR %%a IN ("gcc" "icu" "libiconv" "openssl" "xz" "zlib") DO (
  17. c:\msys64\usr\bin\env MSYSTEM=%UPPERFLAVOR% c:\msys64\usr\bin\bash -l -c ^
  18. "pacman --sync --needed --noconfirm %FLAVOR%/mingw-w64-%ARCH%-%%a" || EXIT /B
  19. )
  20. c:\msys64\usr\bin\env MSYSTEM=%UPPERFLAVOR% c:\msys64\usr\bin\bash -l -c ^
  21. "pacman --sync --needed --noconfirm python3" || EXIT /B
  22. ::
  23. :: Now build things...
  24. ::
  25. c:\msys64\usr\bin\env MSYSTEM=%UPPERFLAVOR% c:\msys64\usr\bin\bash -l -c ^
  26. "cd %CD:\=/% && ./bootstrap.sh --with-toolset=gcc" || EXIT /B
  27. c:\msys64\usr\bin\env MSYSTEM=%UPPERFLAVOR% c:\msys64\usr\bin\bash -l -c ^
  28. "cd %CD:\=/% && ./b2 libs/%SELF% toolset=gcc-%FLAVOR% cxxstd=%CXXSTD% %CXXFLAGS% %DEFINES% %B2_ADDRESS_MODEL% %B2_LINK% %B2_THREADING% %B2_VARIANT% -j3" || EXIT /B
  29. EXIT /B 0
  30. ::
  31. :: Function to uppercase a variable
  32. :: from: https://stackoverflow.com/questions/34713621/batch-converting-variable-to-uppercase
  33. ::
  34. :TOUPPER <variable>
  35. @ECHO OFF
  36. FOR %%a IN ("a=A" "b=B" "c=C" "d=D" "e=E" "f=F" "g=G" "h=H" "i=I"
  37. "j=J" "k=K" "l=L" "m=M" "n=N" "o=O" "p=P" "q=Q" "r=R"
  38. "s=S" "t=T" "u=U" "v=V" "w=W" "x=X" "y=Y" "z=Z" ) DO ( CALL SET %~1=%%%~1:%%~a%% )
  39. @ECHO ON
  40. GOTO :EOF