Issue #17896: Move Windows external lib sources from .. to externals.

This commit is contained in:
Zachary Ware 2014-11-01 22:39:21 -05:00
parent 91f01e175a
commit 4b2b1de0bd
9 changed files with 19 additions and 12 deletions

1
.gitignore vendored
View File

@ -70,4 +70,5 @@ tags
TAGS TAGS
.coverage .coverage
coverage/ coverage/
externals/
htmlcov/ htmlcov/

View File

@ -92,6 +92,7 @@ Modules/_freeze_importlib
Modules/_testembed Modules/_testembed
.coverage .coverage
coverage/ coverage/
externals/
htmlcov/ htmlcov/
*.gcda *.gcda
*.gcno *.gcno

View File

@ -48,8 +48,8 @@ else:
prefix = os.path.join(sys.base_prefix,"tcl") prefix = os.path.join(sys.base_prefix,"tcl")
if not os.path.exists(prefix): if not os.path.exists(prefix):
# devdir/../tcltk/lib # devdir/externals/tcltk/lib
prefix = os.path.join(sys.base_prefix, os.path.pardir, "tcltk", "lib") prefix = os.path.join(sys.base_prefix, "externals", "tcltk", "lib")
prefix = os.path.abspath(prefix) prefix = os.path.abspath(prefix)
# if this does not exist, no further search is needed # if this does not exist, no further search is needed
if os.path.exists(prefix): if os.path.exists(prefix):

View File

@ -128,6 +128,9 @@ Build
Windows Windows
------- -------
- Issue #17896: The Windows build scripts now expect external library sources
to be in ``PCbuild\..\externals`` rather than ``PCbuild\..\..``.
- Issue #17717: The Windows build scripts now use a copy of NASM pulled from - Issue #17717: The Windows build scripts now use a copy of NASM pulled from
svn.python.org to build OpenSSL. svn.python.org to build OpenSSL.

View File

@ -68,7 +68,7 @@ def get_ssl_dir():
propfile = (os.path.join(os.path.dirname(__file__), 'pyproject.props')) propfile = (os.path.join(os.path.dirname(__file__), 'pyproject.props'))
with open(propfile, encoding='utf-8-sig') as f: with open(propfile, encoding='utf-8-sig') as f:
m = re.search('openssl-([^<]+)<', f.read()) m = re.search('openssl-([^<]+)<', f.read())
return "..\..\openssl-"+m.group(1) return "..\externals\openssl-"+m.group(1)
def create_makefile64(makefile, m32): def create_makefile64(makefile, m32):

View File

@ -16,7 +16,7 @@
<PyDllName>python34$(PyDebugExt)</PyDllName> <PyDllName>python34$(PyDebugExt)</PyDllName>
<PythonExe>$(OutDir)python$(PyDebugExt).exe</PythonExe> <PythonExe>$(OutDir)python$(PyDebugExt).exe</PythonExe>
<KillPythonExe>$(OutDir)kill_python$(PyDebugExt).exe</KillPythonExe> <KillPythonExe>$(OutDir)kill_python$(PyDebugExt).exe</KillPythonExe>
<externalsDir>..\..</externalsDir> <externalsDir>..\externals</externalsDir>
<sqlite3Dir>$(externalsDir)\sqlite-3.8.3.1</sqlite3Dir> <sqlite3Dir>$(externalsDir)\sqlite-3.8.3.1</sqlite3Dir>
<bz2Dir>$(externalsDir)\bzip2-1.0.6</bz2Dir> <bz2Dir>$(externalsDir)\bzip2-1.0.6</bz2Dir>
<lzmaDir>$(externalsDir)\xz-5.0.5</lzmaDir> <lzmaDir>$(externalsDir)\xz-5.0.5</lzmaDir>

View File

@ -224,9 +224,10 @@ _tkinter
Unlike the other external libraries listed above, Tk must be built Unlike the other external libraries listed above, Tk must be built
separately before the _tkinter module can be built. This means that separately before the _tkinter module can be built. This means that
a pre-built Tcl/Tk installation is expected in ..\..\tcltk (tcltk64 a pre-built Tcl/Tk installation is expected in ..\externals\tcltk
for 64-bit) relative to this directory. See "Getting External (tcltk64 for 64-bit) relative to this directory. See "Getting
Sources" below for the easiest method to ensure Tcl/Tk is built. External Sources" below for the easiest method to ensure Tcl/Tk is
built.
Getting External Sources Getting External Sources
@ -246,12 +247,12 @@ directory from ..\, i.e.:
This extracts all the external sub-projects from This extracts all the external sub-projects from
http://svn.python.org/projects/external http://svn.python.org/projects/external
via Subversion (so you'll need an svn.exe on your PATH) and places them via Subversion (so you'll need an svn.exe on your PATH) and places them
in ..\.. (relative to this directory). in ..\externals (relative to this directory).
It is also possible to download sources from each project's homepage, It is also possible to download sources from each project's homepage,
though you may have to change the names of some folders in order to make though you may have to change the names of some folders in order to make
things work. For instance, if you were to download a version 5.0.7 of things work. For instance, if you were to download a version 5.0.7 of
XZ Utils, you would need to extract the archive into ..\..\xz-5.0.5 XZ Utils, you would need to extract the archive into ..\externals\xz-5.0.5
anyway, since that is where the solution is set to look for xz. The anyway, since that is where the solution is set to look for xz. The
same is true for all other external projects. same is true for all other external projects.
@ -268,7 +269,7 @@ The external-amd64.bat file contains this for tcl:
So for a release build, you'd call it as: So for a release build, you'd call it as:
nmake -f makefile.vc MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install nmake -f makefile.vc MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install
Note that the above command is called from within ..\..\tcl-8.6.1.0\win Note that the above command is called from within ..\externals\tcl-8.6.1.0\win
(relative to this directory); don't forget to build Tk as well as Tcl! (relative to this directory); don't forget to build Tk as well as Tcl!
This will be cleaned up in the future; http://bugs.python.org/issue15968 This will be cleaned up in the future; http://bugs.python.org/issue15968

View File

@ -38,7 +38,7 @@ if "%1"=="-q" (set qmode=yes) & shift & goto CheckOpts
if "%1"=="-d" (set suffix=_d) & shift & goto CheckOpts if "%1"=="-d" (set suffix=_d) & shift & goto CheckOpts
if "%1"=="-x64" (set prefix=amd64) & (set tcltk=tcltk64) & shift & goto CheckOpts if "%1"=="-x64" (set prefix=amd64) & (set tcltk=tcltk64) & shift & goto CheckOpts
PATH %PATH%;%~dp0..\..\%tcltk%\bin PATH %PATH%;%~dp0..\externals\%tcltk%\bin
set exe=%prefix%\python%suffix% set exe=%prefix%\python%suffix%
set cmd=%exe% %dashO% -Wd -E -bb ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9 set cmd=%exe% %dashO% -Wd -E -bb ../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9
if defined qmode goto Qmode if defined qmode goto Qmode

View File

@ -1,7 +1,8 @@
@rem Common file shared between external.bat and external-amd64.bat. Responsible for @rem Common file shared between external.bat and external-amd64.bat. Responsible for
@rem fetching external components into the root\.. buildbot directories. @rem fetching external components into the root\.. buildbot directories.
cd .. if not exist externals mkdir externals
cd externals
@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment @rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment
@rem the following, check it in, then check it out, comment it out, then check it back in. @rem the following, check it in, then check it out, comment it out, then check it back in.
@rem if exist bzip2-1.0.6 rd /s/q bzip2-1.0.6 @rem if exist bzip2-1.0.6 rd /s/q bzip2-1.0.6