1:: 2:: Licensed under the Apache License, Version 2.0 (the "License"); 3:: you may not use this file except in compliance with the License. 4:: You may obtain a copy of the License at 5:: 6:: http://www.apache.org/licenses/LICENSE-2.0 7:: 8:: Unless required by applicable law or agreed to in writing, software 9:: distributed under the License is distributed on an "AS IS" BASIS, 10:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11:: See the License for the specific language governing permissions and 12:: limitations under the License. 13:: 14 15:: 16:: Detect the compiler edition we're building in and then 17:: set the GENERATOR environment variable to one of: 18:: 19:: Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files. 20:: Optional [arch] can be "Win64" or "ARM". 21:: Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. 22:: Optional [arch] can be "Win64" or "ARM". 23:: Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. 24:: Optional [arch] can be "Win64" or "ARM". 25:: Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. 26:: Optional [arch] can be "Win64" or "ARM". 27:: Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. 28:: Optional [arch] can be "Win64" or "IA64". 29:: MinGW Makefiles = Generates makefiles for MinGW 30:: MSYS Makefiles = Generates makefiles for MSYS 31:: Unix Makefiles = Generates makefiles for CYGWIN 32:: 33:: Honors any existing GENERATOR environment variable 34:: setting instead of overwriting it, to allow it 35:: to be forced if needed. 36:: 37:: Sets ERRORLEVEL to 0 if GENERATOR can be determined, 38:: to 1 if it cannot. 39:: 40 41IF DEFINED GENERATOR ( 42 ECHO [warn ] using existing environment variable GENERATOR 43 EXIT /B 0 44) 45 46 47IF "%PROFILE:~0,4%" == "MING" ( 48 SET GENERATOR=MinGW Makefiles 49 50) ELSE IF "%PROFILE:~0,4%" == "CYGW" ( 51 SET GENERATOR=Unix Makefiles 52 53) ELSE IF "%PROFILE:~0,4%" == "MSYS" ( 54 SET GENERATOR=MSYS Makefiles 55) ELSE ( 56 IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64 57 CALL :CHECK 16 58 IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 10 2010!GENARCH! 59 CALL :CHECK 17 60 IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 11 2012!GENARCH! 61 CALL :CHECK 18 62 IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 12 2013!GENARCH! 63 CALL :CHECK 19.0 64 IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 14 2015!GENARCH! 65 CALL :CHECK 19.1 66 IF !ERRORLEVEL! == 0 SET GENERATOR=Visual Studio 15 2017!GENARCH! 67) 68 69IF NOT DEFINED GENERATOR ( 70 ECHO [error] unable to determine the CMake generator to use 71 EXIT /B 1 72) 73 74ECHO [info ] using CMake generator %GENERATOR% 75EXIT /B 0 76 77:CHECK 78cl /? 2>&1 | findstr /C:"Version %1%" > nul 79EXIT /B 80