1*6236dae4SAndroid Build Coastguard Worker@echo off 2*6236dae4SAndroid Build Coastguard Workerrem *************************************************************************** 3*6236dae4SAndroid Build Coastguard Workerrem * _ _ ____ _ 4*6236dae4SAndroid Build Coastguard Workerrem * Project ___| | | | _ \| | 5*6236dae4SAndroid Build Coastguard Workerrem * / __| | | | |_) | | 6*6236dae4SAndroid Build Coastguard Workerrem * | (__| |_| | _ <| |___ 7*6236dae4SAndroid Build Coastguard Workerrem * \___|\___/|_| \_\_____| 8*6236dae4SAndroid Build Coastguard Workerrem * 9*6236dae4SAndroid Build Coastguard Workerrem * Copyright (C) Steve Holme, <[email protected]>. 10*6236dae4SAndroid Build Coastguard Workerrem * 11*6236dae4SAndroid Build Coastguard Workerrem * This software is licensed as described in the file COPYING, which 12*6236dae4SAndroid Build Coastguard Workerrem * you should have received as part of this distribution. The terms 13*6236dae4SAndroid Build Coastguard Workerrem * are also available at https://curl.se/docs/copyright.html. 14*6236dae4SAndroid Build Coastguard Workerrem * 15*6236dae4SAndroid Build Coastguard Workerrem * You may opt to use, copy, modify, merge, publish, distribute and/or sell 16*6236dae4SAndroid Build Coastguard Workerrem * copies of the Software, and permit persons to whom the Software is 17*6236dae4SAndroid Build Coastguard Workerrem * furnished to do so, under the terms of the COPYING file. 18*6236dae4SAndroid Build Coastguard Workerrem * 19*6236dae4SAndroid Build Coastguard Workerrem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 20*6236dae4SAndroid Build Coastguard Workerrem * KIND, either express or implied. 21*6236dae4SAndroid Build Coastguard Workerrem * 22*6236dae4SAndroid Build Coastguard Workerrem * SPDX-License-Identifier: curl 23*6236dae4SAndroid Build Coastguard Workerrem * 24*6236dae4SAndroid Build Coastguard Workerrem *************************************************************************** 25*6236dae4SAndroid Build Coastguard Worker 26*6236dae4SAndroid Build Coastguard Worker:begin 27*6236dae4SAndroid Build Coastguard Worker rem Check we are running on a Windows NT derived OS 28*6236dae4SAndroid Build Coastguard Worker if not "%OS%" == "Windows_NT" goto nodos 29*6236dae4SAndroid Build Coastguard Worker 30*6236dae4SAndroid Build Coastguard Worker rem Set our variables 31*6236dae4SAndroid Build Coastguard Worker setlocal ENABLEEXTENSIONS 32*6236dae4SAndroid Build Coastguard Worker set VERSION=ALL 33*6236dae4SAndroid Build Coastguard Worker set MODE=GENERATE 34*6236dae4SAndroid Build Coastguard Worker 35*6236dae4SAndroid Build Coastguard Worker rem Check we are not running on a network drive 36*6236dae4SAndroid Build Coastguard Worker if "%~d0."=="\\." goto nonetdrv 37*6236dae4SAndroid Build Coastguard Worker 38*6236dae4SAndroid Build Coastguard Worker rem Switch to this batch file's directory 39*6236dae4SAndroid Build Coastguard Worker cd /d "%~0\.." 1>NUL 2>&1 40*6236dae4SAndroid Build Coastguard Worker 41*6236dae4SAndroid Build Coastguard Worker rem Check we are running from a curl git repository 42*6236dae4SAndroid Build Coastguard Worker if not exist ..\GIT-INFO.md goto norepo 43*6236dae4SAndroid Build Coastguard Worker 44*6236dae4SAndroid Build Coastguard Worker:parseArgs 45*6236dae4SAndroid Build Coastguard Worker if "%~1" == "" goto start 46*6236dae4SAndroid Build Coastguard Worker 47*6236dae4SAndroid Build Coastguard Worker if /i "%~1" == "pre" ( 48*6236dae4SAndroid Build Coastguard Worker set VERSION=PRE 49*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc10" ( 50*6236dae4SAndroid Build Coastguard Worker set VERSION=VC10 51*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc11" ( 52*6236dae4SAndroid Build Coastguard Worker set VERSION=VC11 53*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "vc12" ( 54*6236dae4SAndroid Build Coastguard Worker set VERSION=VC12 55*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-clean" ( 56*6236dae4SAndroid Build Coastguard Worker set MODE=CLEAN 57*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-?" ( 58*6236dae4SAndroid Build Coastguard Worker goto syntax 59*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "/?" ( 60*6236dae4SAndroid Build Coastguard Worker goto syntax 61*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-h" ( 62*6236dae4SAndroid Build Coastguard Worker goto syntax 63*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-help" ( 64*6236dae4SAndroid Build Coastguard Worker goto syntax 65*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "--help" ( 66*6236dae4SAndroid Build Coastguard Worker goto syntax 67*6236dae4SAndroid Build Coastguard Worker ) else ( 68*6236dae4SAndroid Build Coastguard Worker goto unknown 69*6236dae4SAndroid Build Coastguard Worker ) 70*6236dae4SAndroid Build Coastguard Worker 71*6236dae4SAndroid Build Coastguard Worker shift & goto parseArgs 72*6236dae4SAndroid Build Coastguard Worker 73*6236dae4SAndroid Build Coastguard Worker:start 74*6236dae4SAndroid Build Coastguard Worker if exist ..\buildconf.bat ( 75*6236dae4SAndroid Build Coastguard Worker if "%MODE%" == "GENERATE" ( 76*6236dae4SAndroid Build Coastguard Worker call ..\buildconf 77*6236dae4SAndroid Build Coastguard Worker ) else if "%VERSION%" == "PRE" ( 78*6236dae4SAndroid Build Coastguard Worker call ..\buildconf -clean 79*6236dae4SAndroid Build Coastguard Worker ) else if "%VERSION%" == "ALL" ( 80*6236dae4SAndroid Build Coastguard Worker call ..\buildconf -clean 81*6236dae4SAndroid Build Coastguard Worker ) 82*6236dae4SAndroid Build Coastguard Worker ) 83*6236dae4SAndroid Build Coastguard Worker if "%VERSION%" == "PRE" goto success 84*6236dae4SAndroid Build Coastguard Worker if "%VERSION%" == "VC10" goto vc10 85*6236dae4SAndroid Build Coastguard Worker if "%VERSION%" == "VC11" goto vc11 86*6236dae4SAndroid Build Coastguard Worker if "%VERSION%" == "VC12" goto vc12 87*6236dae4SAndroid Build Coastguard Worker 88*6236dae4SAndroid Build Coastguard Worker:vc10 89*6236dae4SAndroid Build Coastguard Worker echo. 90*6236dae4SAndroid Build Coastguard Worker 91*6236dae4SAndroid Build Coastguard Worker if "%MODE%" == "GENERATE" ( 92*6236dae4SAndroid Build Coastguard Worker echo Generating VC10 project files 93*6236dae4SAndroid Build Coastguard Worker call :generate vcxproj Windows\VC10\src\curl.tmpl Windows\VC10\src\curl.vcxproj 94*6236dae4SAndroid Build Coastguard Worker call :generate vcxproj Windows\VC10\lib\libcurl.tmpl Windows\VC10\lib\libcurl.vcxproj 95*6236dae4SAndroid Build Coastguard Worker ) else ( 96*6236dae4SAndroid Build Coastguard Worker echo Removing VC10 project files 97*6236dae4SAndroid Build Coastguard Worker call :clean Windows\VC10\src\curl.vcxproj 98*6236dae4SAndroid Build Coastguard Worker call :clean Windows\VC10\lib\libcurl.vcxproj 99*6236dae4SAndroid Build Coastguard Worker ) 100*6236dae4SAndroid Build Coastguard Worker 101*6236dae4SAndroid Build Coastguard Worker if not "%VERSION%" == "ALL" goto success 102*6236dae4SAndroid Build Coastguard Worker 103*6236dae4SAndroid Build Coastguard Worker:vc11 104*6236dae4SAndroid Build Coastguard Worker echo. 105*6236dae4SAndroid Build Coastguard Worker 106*6236dae4SAndroid Build Coastguard Worker if "%MODE%" == "GENERATE" ( 107*6236dae4SAndroid Build Coastguard Worker echo Generating VC11 project files 108*6236dae4SAndroid Build Coastguard Worker call :generate vcxproj Windows\VC11\src\curl.tmpl Windows\VC11\src\curl.vcxproj 109*6236dae4SAndroid Build Coastguard Worker call :generate vcxproj Windows\VC11\lib\libcurl.tmpl Windows\VC11\lib\libcurl.vcxproj 110*6236dae4SAndroid Build Coastguard Worker ) else ( 111*6236dae4SAndroid Build Coastguard Worker echo Removing VC11 project files 112*6236dae4SAndroid Build Coastguard Worker call :clean Windows\VC11\src\curl.vcxproj 113*6236dae4SAndroid Build Coastguard Worker call :clean Windows\VC11\lib\libcurl.vcxproj 114*6236dae4SAndroid Build Coastguard Worker ) 115*6236dae4SAndroid Build Coastguard Worker 116*6236dae4SAndroid Build Coastguard Worker if not "%VERSION%" == "ALL" goto success 117*6236dae4SAndroid Build Coastguard Worker 118*6236dae4SAndroid Build Coastguard Worker:vc12 119*6236dae4SAndroid Build Coastguard Worker echo. 120*6236dae4SAndroid Build Coastguard Worker 121*6236dae4SAndroid Build Coastguard Worker if "%MODE%" == "GENERATE" ( 122*6236dae4SAndroid Build Coastguard Worker echo Generating VC12 project files 123*6236dae4SAndroid Build Coastguard Worker call :generate vcxproj Windows\VC12\src\curl.tmpl Windows\VC12\src\curl.vcxproj 124*6236dae4SAndroid Build Coastguard Worker call :generate vcxproj Windows\VC12\lib\libcurl.tmpl Windows\VC12\lib\libcurl.vcxproj 125*6236dae4SAndroid Build Coastguard Worker ) else ( 126*6236dae4SAndroid Build Coastguard Worker echo Removing VC12 project files 127*6236dae4SAndroid Build Coastguard Worker call :clean Windows\VC12\src\curl.vcxproj 128*6236dae4SAndroid Build Coastguard Worker call :clean Windows\VC12\lib\libcurl.vcxproj 129*6236dae4SAndroid Build Coastguard Worker ) 130*6236dae4SAndroid Build Coastguard Worker 131*6236dae4SAndroid Build Coastguard Worker goto success 132*6236dae4SAndroid Build Coastguard Worker 133*6236dae4SAndroid Build Coastguard Workerrem Main generate function. 134*6236dae4SAndroid Build Coastguard Workerrem 135*6236dae4SAndroid Build Coastguard Workerrem %1 - Project Type (vcxproj for VC10, VC11, VC12, VC14, VC14.10, VC14.20 and VC14.30) 136*6236dae4SAndroid Build Coastguard Workerrem %2 - Input template file 137*6236dae4SAndroid Build Coastguard Workerrem %3 - Output project file 138*6236dae4SAndroid Build Coastguard Workerrem 139*6236dae4SAndroid Build Coastguard Worker:generate 140*6236dae4SAndroid Build Coastguard Worker if not exist %2 ( 141*6236dae4SAndroid Build Coastguard Worker echo. 142*6236dae4SAndroid Build Coastguard Worker echo Error: Cannot open %2 143*6236dae4SAndroid Build Coastguard Worker exit /B 144*6236dae4SAndroid Build Coastguard Worker ) 145*6236dae4SAndroid Build Coastguard Worker 146*6236dae4SAndroid Build Coastguard Worker if exist %3 ( 147*6236dae4SAndroid Build Coastguard Worker del %3 148*6236dae4SAndroid Build Coastguard Worker ) 149*6236dae4SAndroid Build Coastguard Worker 150*6236dae4SAndroid Build Coastguard Worker echo * %CD%\%3 151*6236dae4SAndroid Build Coastguard Worker for /f "usebackq delims=" %%i in (`"findstr /n ^^ %2"`) do ( 152*6236dae4SAndroid Build Coastguard Worker set "var=%%i" 153*6236dae4SAndroid Build Coastguard Worker setlocal enabledelayedexpansion 154*6236dae4SAndroid Build Coastguard Worker set "var=!var:*:=!" 155*6236dae4SAndroid Build Coastguard Worker 156*6236dae4SAndroid Build Coastguard Worker if "!var!" == "CURL_SRC_C_FILES" ( 157*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%c in ('dir /b ..\src\*.c') do call :element %1 src "%%c" %3 158*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_SRC_H_FILES" ( 159*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\src\*.h') do call :element %1 src "%%h" %3 160*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_SRC_RC_FILES" ( 161*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%r in ('dir /b ..\src\*.rc') do call :element %1 src "%%r" %3 162*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_SRC_X_C_FILES" ( 163*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "strtoofft.c" %3 164*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "timediff.c" %3 165*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "nonblock.c" %3 166*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "warnless.c" %3 167*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "curl_multibyte.c" %3 168*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "version_win32.c" %3 169*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "dynbuf.c" %3 170*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "base64.c" %3 171*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_SRC_X_H_FILES" ( 172*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "config-win32.h" %3 173*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "curl_setup.h" %3 174*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "strtoofft.h" %3 175*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "timediff.h" %3 176*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "nonblock.h" %3 177*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "warnless.h" %3 178*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "curl_ctype.h" %3 179*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "curl_multibyte.h" %3 180*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "version_win32.h" %3 181*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "dynbuf.h" %3 182*6236dae4SAndroid Build Coastguard Worker call :element %1 lib "curl_base64.h" %3 183*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_C_FILES" ( 184*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%c in ('dir /b ..\lib\*.c') do call :element %1 lib "%%c" %3 185*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_H_FILES" ( 186*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\include\curl\*.h') do call :element %1 include\curl "%%h" %3 187*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\lib\*.h') do call :element %1 lib "%%h" %3 188*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_RC_FILES" ( 189*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%r in ('dir /b ..\lib\*.rc') do call :element %1 lib "%%r" %3 190*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VAUTH_C_FILES" ( 191*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%c in ('dir /b ..\lib\vauth\*.c') do call :element %1 lib\vauth "%%c" %3 192*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VAUTH_H_FILES" ( 193*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\lib\vauth\*.h') do call :element %1 lib\vauth "%%h" %3 194*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VQUIC_C_FILES" ( 195*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%c in ('dir /b ..\lib\vquic\*.c') do call :element %1 lib\vquic "%%c" %3 196*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VQUIC_H_FILES" ( 197*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\lib\vquic\*.h') do call :element %1 lib\vquic "%%h" %3 198*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VSSH_C_FILES" ( 199*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%c in ('dir /b ..\lib\vssh\*.c') do call :element %1 lib\vssh "%%c" %3 200*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VSSH_H_FILES" ( 201*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\lib\vssh\*.h') do call :element %1 lib\vssh "%%h" %3 202*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VTLS_C_FILES" ( 203*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%c in ('dir /b ..\lib\vtls\*.c') do call :element %1 lib\vtls "%%c" %3 204*6236dae4SAndroid Build Coastguard Worker ) else if "!var!" == "CURL_LIB_VTLS_H_FILES" ( 205*6236dae4SAndroid Build Coastguard Worker for /f "delims=" %%h in ('dir /b ..\lib\vtls\*.h') do call :element %1 lib\vtls "%%h" %3 206*6236dae4SAndroid Build Coastguard Worker ) else ( 207*6236dae4SAndroid Build Coastguard Worker echo.!var!>> %3 208*6236dae4SAndroid Build Coastguard Worker ) 209*6236dae4SAndroid Build Coastguard Worker 210*6236dae4SAndroid Build Coastguard Worker endlocal 211*6236dae4SAndroid Build Coastguard Worker ) 212*6236dae4SAndroid Build Coastguard Worker exit /B 213*6236dae4SAndroid Build Coastguard Worker 214*6236dae4SAndroid Build Coastguard Workerrem Generates a single file xml element. 215*6236dae4SAndroid Build Coastguard Workerrem 216*6236dae4SAndroid Build Coastguard Workerrem %1 - Project Type (vcxproj for VC10, VC11, VC12, VC14, VC14.10, VC14.20 and VC14.30) 217*6236dae4SAndroid Build Coastguard Workerrem %2 - Directory (src, lib, lib\vauth, lib\vquic, lib\vssh, lib\vtls) 218*6236dae4SAndroid Build Coastguard Workerrem %3 - Source filename 219*6236dae4SAndroid Build Coastguard Workerrem %4 - Output project file 220*6236dae4SAndroid Build Coastguard Workerrem 221*6236dae4SAndroid Build Coastguard Worker:element 222*6236dae4SAndroid Build Coastguard Worker set "SPACES= " 223*6236dae4SAndroid Build Coastguard Worker if "%2" == "lib\vauth" ( 224*6236dae4SAndroid Build Coastguard Worker set "TABS= " 225*6236dae4SAndroid Build Coastguard Worker ) else if "%2" == "lib\vquic" ( 226*6236dae4SAndroid Build Coastguard Worker set "TABS= " 227*6236dae4SAndroid Build Coastguard Worker ) else if "%2" == "lib\vssh" ( 228*6236dae4SAndroid Build Coastguard Worker set "TABS= " 229*6236dae4SAndroid Build Coastguard Worker ) else if "%2" == "lib\vtls" ( 230*6236dae4SAndroid Build Coastguard Worker set "TABS= " 231*6236dae4SAndroid Build Coastguard Worker ) else ( 232*6236dae4SAndroid Build Coastguard Worker set "TABS= " 233*6236dae4SAndroid Build Coastguard Worker ) 234*6236dae4SAndroid Build Coastguard Worker 235*6236dae4SAndroid Build Coastguard Worker call :extension %3 ext 236*6236dae4SAndroid Build Coastguard Worker 237*6236dae4SAndroid Build Coastguard Worker if "%1" == "dsp" ( 238*6236dae4SAndroid Build Coastguard Worker echo # Begin Source File>> %4 239*6236dae4SAndroid Build Coastguard Worker echo.>> %4 240*6236dae4SAndroid Build Coastguard Worker echo SOURCE=..\..\..\..\%2\%~3>> %4 241*6236dae4SAndroid Build Coastguard Worker echo # End Source File>> %4 242*6236dae4SAndroid Build Coastguard Worker ) else if "%1" == "vcproj1" ( 243*6236dae4SAndroid Build Coastguard Worker echo %TABS%^<File>> %4 244*6236dae4SAndroid Build Coastguard Worker echo %TABS% RelativePath="..\..\..\..\%2\%~3"^>>> %4 245*6236dae4SAndroid Build Coastguard Worker echo %TABS%^</File^>>> %4 246*6236dae4SAndroid Build Coastguard Worker ) else if "%1" == "vcproj2" ( 247*6236dae4SAndroid Build Coastguard Worker echo %TABS%^<File>> %4 248*6236dae4SAndroid Build Coastguard Worker echo %TABS% RelativePath="..\..\..\..\%2\%~3">> %4 249*6236dae4SAndroid Build Coastguard Worker echo %TABS%^>>> %4 250*6236dae4SAndroid Build Coastguard Worker echo %TABS%^</File^>>> %4 251*6236dae4SAndroid Build Coastguard Worker ) else if "%1" == "vcxproj" ( 252*6236dae4SAndroid Build Coastguard Worker if "%ext%" == "c" ( 253*6236dae4SAndroid Build Coastguard Worker echo %SPACES%^<ClCompile Include=^"..\..\..\..\%2\%~3^" /^>>> %4 254*6236dae4SAndroid Build Coastguard Worker ) else if "%ext%" == "h" ( 255*6236dae4SAndroid Build Coastguard Worker echo %SPACES%^<ClInclude Include=^"..\..\..\..\%2\%~3^" /^>>> %4 256*6236dae4SAndroid Build Coastguard Worker ) else if "%ext%" == "rc" ( 257*6236dae4SAndroid Build Coastguard Worker echo %SPACES%^<ResourceCompile Include=^"..\..\..\..\%2\%~3^" /^>>> %4 258*6236dae4SAndroid Build Coastguard Worker ) 259*6236dae4SAndroid Build Coastguard Worker ) 260*6236dae4SAndroid Build Coastguard Worker 261*6236dae4SAndroid Build Coastguard Worker exit /B 262*6236dae4SAndroid Build Coastguard Worker 263*6236dae4SAndroid Build Coastguard Workerrem Returns the extension for a given filename. 264*6236dae4SAndroid Build Coastguard Workerrem 265*6236dae4SAndroid Build Coastguard Workerrem %1 - The filename 266*6236dae4SAndroid Build Coastguard Workerrem %2 - The return value 267*6236dae4SAndroid Build Coastguard Workerrem 268*6236dae4SAndroid Build Coastguard Worker:extension 269*6236dae4SAndroid Build Coastguard Worker set fname=%~1 270*6236dae4SAndroid Build Coastguard Worker set ename= 271*6236dae4SAndroid Build Coastguard Worker:loop1 272*6236dae4SAndroid Build Coastguard Worker if "%fname%"=="" ( 273*6236dae4SAndroid Build Coastguard Worker set %2= 274*6236dae4SAndroid Build Coastguard Worker exit /B 275*6236dae4SAndroid Build Coastguard Worker ) 276*6236dae4SAndroid Build Coastguard Worker 277*6236dae4SAndroid Build Coastguard Worker if not "%fname:~-1%"=="." ( 278*6236dae4SAndroid Build Coastguard Worker set ename=%fname:~-1%%ename% 279*6236dae4SAndroid Build Coastguard Worker set fname=%fname:~0,-1% 280*6236dae4SAndroid Build Coastguard Worker goto loop1 281*6236dae4SAndroid Build Coastguard Worker ) 282*6236dae4SAndroid Build Coastguard Worker 283*6236dae4SAndroid Build Coastguard Worker set %2=%ename% 284*6236dae4SAndroid Build Coastguard Worker exit /B 285*6236dae4SAndroid Build Coastguard Worker 286*6236dae4SAndroid Build Coastguard Workerrem Removes the given project file. 287*6236dae4SAndroid Build Coastguard Workerrem 288*6236dae4SAndroid Build Coastguard Workerrem %1 - The filename 289*6236dae4SAndroid Build Coastguard Workerrem 290*6236dae4SAndroid Build Coastguard Worker:clean 291*6236dae4SAndroid Build Coastguard Worker echo * %CD%\%1 292*6236dae4SAndroid Build Coastguard Worker 293*6236dae4SAndroid Build Coastguard Worker if exist %1 ( 294*6236dae4SAndroid Build Coastguard Worker del %1 295*6236dae4SAndroid Build Coastguard Worker ) 296*6236dae4SAndroid Build Coastguard Worker 297*6236dae4SAndroid Build Coastguard Worker exit /B 298*6236dae4SAndroid Build Coastguard Worker 299*6236dae4SAndroid Build Coastguard Worker:syntax 300*6236dae4SAndroid Build Coastguard Worker rem Display the help 301*6236dae4SAndroid Build Coastguard Worker echo. 302*6236dae4SAndroid Build Coastguard Worker echo Usage: generate [what] [-clean] 303*6236dae4SAndroid Build Coastguard Worker echo. 304*6236dae4SAndroid Build Coastguard Worker echo What to generate: 305*6236dae4SAndroid Build Coastguard Worker echo. 306*6236dae4SAndroid Build Coastguard Worker echo pre - Prerequisites only 307*6236dae4SAndroid Build Coastguard Worker echo vc10 - Use Visual Studio 2010 308*6236dae4SAndroid Build Coastguard Worker echo vc11 - Use Visual Studio 2012 309*6236dae4SAndroid Build Coastguard Worker echo vc12 - Use Visual Studio 2013 310*6236dae4SAndroid Build Coastguard Worker echo. 311*6236dae4SAndroid Build Coastguard Worker echo Only legacy Visual Studio project files can be generated. 312*6236dae4SAndroid Build Coastguard Worker echo. 313*6236dae4SAndroid Build Coastguard Worker echo To generate recent versions of Visual Studio project files use cmake. 314*6236dae4SAndroid Build Coastguard Worker echo Refer to INSTALL-CMAKE in the docs directory. 315*6236dae4SAndroid Build Coastguard Worker echo. 316*6236dae4SAndroid Build Coastguard Worker echo -clean - Removes the project files 317*6236dae4SAndroid Build Coastguard Worker goto error 318*6236dae4SAndroid Build Coastguard Worker 319*6236dae4SAndroid Build Coastguard Worker:unknown 320*6236dae4SAndroid Build Coastguard Worker echo. 321*6236dae4SAndroid Build Coastguard Worker echo Error: Unknown argument '%1' 322*6236dae4SAndroid Build Coastguard Worker goto error 323*6236dae4SAndroid Build Coastguard Worker 324*6236dae4SAndroid Build Coastguard Worker:nodos 325*6236dae4SAndroid Build Coastguard Worker echo. 326*6236dae4SAndroid Build Coastguard Worker echo Error: Only a Windows NT based Operating System is supported 327*6236dae4SAndroid Build Coastguard Worker goto error 328*6236dae4SAndroid Build Coastguard Worker 329*6236dae4SAndroid Build Coastguard Worker:nonetdrv 330*6236dae4SAndroid Build Coastguard Worker echo. 331*6236dae4SAndroid Build Coastguard Worker echo Error: This batch file cannot run from a network drive 332*6236dae4SAndroid Build Coastguard Worker goto error 333*6236dae4SAndroid Build Coastguard Worker 334*6236dae4SAndroid Build Coastguard Worker:norepo 335*6236dae4SAndroid Build Coastguard Worker echo. 336*6236dae4SAndroid Build Coastguard Worker echo Error: This batch file should only be used from a curl git repository 337*6236dae4SAndroid Build Coastguard Worker goto error 338*6236dae4SAndroid Build Coastguard Worker 339*6236dae4SAndroid Build Coastguard Worker:seterr 340*6236dae4SAndroid Build Coastguard Worker rem Set the caller's errorlevel. 341*6236dae4SAndroid Build Coastguard Worker rem %1[opt]: Errorlevel as integer. 342*6236dae4SAndroid Build Coastguard Worker rem If %1 is empty the errorlevel will be set to 0. 343*6236dae4SAndroid Build Coastguard Worker rem If %1 is not empty and not an integer the errorlevel will be set to 1. 344*6236dae4SAndroid Build Coastguard Worker setlocal 345*6236dae4SAndroid Build Coastguard Worker set EXITCODE=%~1 346*6236dae4SAndroid Build Coastguard Worker if not defined EXITCODE set EXITCODE=0 347*6236dae4SAndroid Build Coastguard Worker echo %EXITCODE%|findstr /r "[^0-9\-]" 1>NUL 2>&1 348*6236dae4SAndroid Build Coastguard Worker if %ERRORLEVEL% EQU 0 set EXITCODE=1 349*6236dae4SAndroid Build Coastguard Worker exit /b %EXITCODE% 350*6236dae4SAndroid Build Coastguard Worker 351*6236dae4SAndroid Build Coastguard Worker:error 352*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 353*6236dae4SAndroid Build Coastguard Worker exit /B 1 354*6236dae4SAndroid Build Coastguard Worker 355*6236dae4SAndroid Build Coastguard Worker:success 356*6236dae4SAndroid Build Coastguard Worker endlocal 357*6236dae4SAndroid Build Coastguard Worker exit /B 0 358