mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-27 23:02:20 +00:00
202 lines
6.5 KiB
Batchfile
202 lines
6.5 KiB
Batchfile
@echo off
|
|
|
|
rem ==========================================================================
|
|
rem Shortcuts for various tasks, emulating UNIX "make" on Windows.
|
|
rem It is primarly intended as a shortcut for compiling / installing
|
|
rem psutil ("make.bat build", "make.bat install") and running tests
|
|
rem ("make.bat test").
|
|
rem
|
|
rem This script is modeled after my Windows installation which uses:
|
|
rem - Visual studio 2008 for Python 2.6, 2.7, 3.2
|
|
rem - Visual studio 2010 for Python 3.3+
|
|
rem ...therefore it might not work on your Windows installation.
|
|
rem
|
|
rem By default C:\Python27\python.exe is used.
|
|
rem To compile for a specific Python version run:
|
|
rem set PYTHON=C:\Python34\python.exe & make.bat build
|
|
rem
|
|
rem To use a different test script:
|
|
rem set PYTHON=C:\Python34\python.exe & set TSCRIPT=foo.py & make.bat test
|
|
rem ==========================================================================
|
|
|
|
if "%PYTHON%" == "" (
|
|
set PYTHON=C:\Python27\python.exe
|
|
)
|
|
if "%TSCRIPT%" == "" (
|
|
set TSCRIPT=test\test_psutil.py
|
|
)
|
|
|
|
set PYTHON26=C:\Python26\python.exe
|
|
set PYTHON27=C:\Python27\python.exe
|
|
set PYTHON33=C:\Python33\python.exe
|
|
set PYTHON34=C:\Python34\python.exe
|
|
set PYTHON26-64=C:\Python26-64\python.exe
|
|
set PYTHON27-64=C:\Python27-64\python.exe
|
|
set PYTHON33-64=C:\Python33-64\python.exe
|
|
set PYTHON34-64=C:\Python34-64\python.exe
|
|
|
|
set ALL_PYTHONS=%PYTHON26% %PYTHON27% %PYTHON33% %PYTHON34% %PYTHON26-64% %PYTHON27-64% %PYTHON33-64% %PYTHON34-64%
|
|
|
|
rem Needed to locate the .pypirc file and upload exes on PYPI.
|
|
set HOME=%USERPROFILE%
|
|
|
|
rem ==========================================================================
|
|
|
|
if "%1" == "help" (
|
|
:help
|
|
echo Run `make ^<target^>` where ^<target^> is one of:
|
|
echo build compile without installing
|
|
echo build-all build exes + wheels
|
|
echo clean clean build files
|
|
echo flake8 run flake8
|
|
echo install compile and install
|
|
echo setup-dev-env install pip, pywin32, wheels, etc. for all python versions
|
|
echo test run tests
|
|
echo test-memleaks run memory leak tests
|
|
echo test-process run process related tests
|
|
echo test-system run system APIs related tests
|
|
echo uninstall uninstall
|
|
echo upload-all upload exes + wheels
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "clean" (
|
|
for /r %%R in (__pycache__) do if exist %%R (rmdir /S /Q %%R)
|
|
for /r %%R in (*.pyc) do if exist %%R (del /s %%R)
|
|
for /r %%R in (*.pyd) do if exist %%R (del /s %%R)
|
|
for /r %%R in (*.orig) do if exist %%R (del /s %%R)
|
|
for /r %%R in (*.bak) do if exist %%R (del /s %%R)
|
|
for /r %%R in (*.rej) do if exist %%R (del /s %%R)
|
|
if exist psutil.egg-info (rmdir /S /Q psutil.egg-info)
|
|
if exist build (rmdir /S /Q build)
|
|
if exist dist (rmdir /S /Q dist)
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "build" (
|
|
:build
|
|
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
|
|
%PYTHON% setup.py build
|
|
if %errorlevel% neq 0 goto :error
|
|
rem copies *.pyd files in ./psutil directory in order to allow
|
|
rem "import psutil" when using the interactive interpreter from
|
|
rem within this directory.
|
|
%PYTHON% setup.py build_ext -i
|
|
if %errorlevel% neq 0 goto :error
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "install" (
|
|
:install
|
|
call :build
|
|
%PYTHON% setup.py install
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "uninstall" (
|
|
for %%A in ("%PYTHON%") do (
|
|
set folder=%%~dpA
|
|
)
|
|
for /F "delims=" %%i in ('dir /b %folder%\Lib\site-packages\*psutil*') do (
|
|
rmdir /S /Q %folder%\Lib\site-packages\%%i
|
|
)
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "test" (
|
|
call :install
|
|
%PYTHON% %TSCRIPT%
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "test-process" (
|
|
call :install
|
|
%PYTHON% -m unittest -v test.test_psutil.TestProcess
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "test-system" (
|
|
call :install
|
|
%PYTHON% -m unittest -v test.test_psutil.TestSystem
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "test-memleaks" (
|
|
call :install
|
|
%PYTHON% test\test_memory_leaks.py
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "build-all" (
|
|
:build-all
|
|
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
|
|
for %%P in (%ALL_PYTHONS%) do (
|
|
@echo ------------------------------------------------
|
|
@echo building exe for %%P
|
|
@echo ------------------------------------------------
|
|
%%P setup.py build bdist_wininst || goto :error
|
|
@echo ------------------------------------------------
|
|
@echo building wheel for %%P
|
|
@echo ------------------------------------------------
|
|
%%P setup.py build bdist_wheel || goto :error
|
|
)
|
|
echo OK
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "upload-all" (
|
|
:upload-exes
|
|
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
|
|
for %%P in (%ALL_PYTHONS%) do (
|
|
@echo ------------------------------------------------
|
|
@echo uploading exe for %%P
|
|
@echo ------------------------------------------------
|
|
%%P setup.py build bdist_wininst upload || goto :error
|
|
@echo ------------------------------------------------
|
|
@echo uploading wheel for %%P
|
|
@echo ------------------------------------------------
|
|
%%P setup.py build bdist_wheel upload || goto :error
|
|
)
|
|
echo OK
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "setup-dev-env" (
|
|
:setup-env
|
|
@echo ------------------------------------------------
|
|
@echo downloading pip installer
|
|
@echo ------------------------------------------------
|
|
C:\python27\python.exe -c "import urllib2; r = urllib2.urlopen('https://raw.github.com/pypa/pip/master/contrib/get-pip.py'); open('get-pip.py', 'wb').write(r.read())"
|
|
for %%P in (%ALL_PYTHONS%) do (
|
|
@echo ------------------------------------------------
|
|
@echo installing pip for %%P
|
|
@echo ------------------------------------------------
|
|
%%P get-pip.py
|
|
)
|
|
for %%P in (%ALL_PYTHONS%) do (
|
|
@echo ------------------------------------------------
|
|
@echo installing deps for %%P
|
|
@echo ------------------------------------------------
|
|
rem mandatory / for unittests
|
|
%%P -m pip install unittest2 ipaddress mock wmi wheel pypiwin32 --upgrade
|
|
rem nice to have
|
|
%%P -m pip install ipdb pep8 pyflakes flake8 --upgrade
|
|
)
|
|
goto :eof
|
|
)
|
|
|
|
if "%1" == "flake8" (
|
|
:flake8
|
|
%PYTHON% -c "from flake8.main import main; main()"
|
|
goto :eof
|
|
)
|
|
|
|
goto :help
|
|
|
|
:error
|
|
@echo ------------------------------------------------
|
|
@echo last command exited with error code %errorlevel%
|
|
@echo ------------------------------------------------
|
|
@exit /b %errorlevel%
|
|
goto :eof
|