mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
| @echo off
 | |
| setlocal
 | |
| rem Simple script to fetch source for external libraries
 | |
| 
 | |
| set HERE=%~dp0
 | |
| if "%PCBUILD%"=="" (set PCBUILD=%HERE%..\..\PCbuild\)
 | |
| if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%HERE%..\..\externals\windows-installer)
 | |
| if "%NUGET%"=="" (set NUGET=%EXTERNALS_DIR%\..\nuget.exe)
 | |
| if "%NUGET_URL%"=="" (set NUGET_URL=https://aka.ms/nugetclidl)
 | |
| 
 | |
| set DO_FETCH=true
 | |
| set DO_CLEAN=false
 | |
| 
 | |
| :CheckOpts
 | |
| if "%~1"=="--python" (set PYTHON=%2) & shift & shift & goto CheckOpts
 | |
| if "%~1"=="--organization" (set ORG=%2) & shift & shift & goto CheckOpts
 | |
| if "%~1"=="-c" (set DO_CLEAN=true) & shift & goto CheckOpts
 | |
| if "%~1"=="--clean" (set DO_CLEAN=true) & shift & goto CheckOpts
 | |
| if "%~1"=="--clean-only" (set DO_FETCH=false) & goto clean
 | |
| if "x%~1" NEQ "x" goto usage
 | |
| 
 | |
| if "%DO_CLEAN%"=="false" goto fetch
 | |
| :clean
 | |
| echo.Cleaning up external libraries.
 | |
| if exist "%EXTERNALS_DIR%" (
 | |
|     rem Sometimes this fails the first time; try it twice
 | |
|     rmdir /s /q "%EXTERNALS_DIR%" || rmdir /s /q "%EXTERNALS_DIR%"
 | |
| )
 | |
| 
 | |
| if "%DO_FETCH%"=="false" goto end
 | |
| :fetch
 | |
| 
 | |
| if "%ORG%"=="" (set ORG=python)
 | |
| 
 | |
| call "%PCBUILD%\find_python.bat" "%PYTHON%"
 | |
| 
 | |
| echo.Fetching external libraries...
 | |
| 
 | |
| set libraries=
 | |
| 
 | |
| for %%e in (%libraries%) do (
 | |
|     if exist "%EXTERNALS_DIR%\%%e" (
 | |
|         echo.%%e already exists, skipping.
 | |
|     ) else (
 | |
|         echo.Fetching %%e...
 | |
|         %PYTHON% "%PCBUILD%get_external.py" -e "%EXTERNALS_DIR%" -O %ORG% %%e
 | |
|     )
 | |
| )
 | |
| 
 | |
| echo.Fetching external tools...
 | |
| 
 | |
| set binaries=
 | |
| rem We always use whatever's latest in the repo for these
 | |
| set binaries=%binaries%     binutils
 | |
| set binaries=%binaries%     gpg
 | |
| set binaries=%binaries%     htmlhelp
 | |
| set binaries=%binaries%     nuget
 | |
| set binaries=%binaries%     redist-1
 | |
| set binaries=%binaries%     wix
 | |
| 
 | |
| for %%b in (%binaries%) do (
 | |
|     if exist "%EXTERNALS_DIR%\%%b" (
 | |
|         echo.%%b already exists, skipping.
 | |
|     ) else (
 | |
|         echo.Fetching %%b...
 | |
|         %PYTHON% "%PCBUILD%get_external.py" -e "%EXTERNALS_DIR%" -b -O %ORG% %%b
 | |
|     )
 | |
| )
 | |
| 
 | |
| echo Finished.
 | |
| goto end
 | |
| 
 | |
| :usage
 | |
| echo.Valid options: -c, --clean, --clean-only, --organization, --python,
 | |
| echo.--no-tkinter, --no-openssl
 | |
| echo.
 | |
| echo.Pull all sources and binaries necessary for compiling optional extension
 | |
| echo.modules that rely on external libraries.
 | |
| echo.
 | |
| echo.The --organization option determines which github organization to download
 | |
| echo.from, the --python option determines which Python 3.6+ interpreter to use
 | |
| echo.with PCbuild\get_external.py.
 | |
| echo.
 | |
| echo.Use the -c or --clean option to remove the entire externals directory.
 | |
| echo.
 | |
| echo.Use the --clean-only option to do the same cleaning, without pulling in
 | |
| echo.anything new.
 | |
| echo.
 | |
| exit /b -1
 | |
| 
 | |
| :end
 | 
