bpo-36509: Add iot layout for Windows IoT containers (GH-12663)

This enables using the `--preset-iot` option with the PC/layout script, but does not enable IoT builds as part of any normal release.
This commit is contained in:
Paul Monson 2019-04-12 09:55:57 -07:00 committed by Steve Dower
parent aa25d5d026
commit f4e5661e85
3 changed files with 22 additions and 2 deletions

View File

@ -0,0 +1,4 @@
Added preset-iot layout for Windows IoT ARM containers. This layout doesn't
contain UI components like tkinter or IDLE. It also doesn't contain files to
support on-target builds since Windows ARM32 builds must be cross-compiled
when using MSVC.

View File

@ -66,6 +66,18 @@ DATA_DIRS = FileNameSet("data")
TOOLS_DIRS = FileNameSet("scripts", "i18n", "pynche", "demo", "parser") TOOLS_DIRS = FileNameSet("scripts", "i18n", "pynche", "demo", "parser")
TOOLS_FILES = FileSuffixSet(".py", ".pyw", ".txt") TOOLS_FILES = FileSuffixSet(".py", ".pyw", ".txt")
def copy_if_modified(src, dest):
try:
dest_stat = os.stat(dest)
except FileNotFoundError:
do_copy = True
else:
src_stat = os.stat(src)
do_copy = (src_stat.st_mtime != dest_stat.st_mtime or
src_stat.st_size != dest_stat.st_size)
if do_copy:
shutil.copy2(src, dest)
def get_lib_layout(ns): def get_lib_layout(ns):
def _c(f): def _c(f):
@ -426,7 +438,7 @@ def copy_files(files, ns):
need_compile.append((dest, ns.copy / dest)) need_compile.append((dest, ns.copy / dest))
else: else:
(ns.temp / "Lib" / dest).parent.mkdir(parents=True, exist_ok=True) (ns.temp / "Lib" / dest).parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(src, ns.temp / "Lib" / dest) copy_if_modified(src, ns.temp / "Lib" / dest)
need_compile.append((dest, ns.temp / "Lib" / dest)) need_compile.append((dest, ns.temp / "Lib" / dest))
if src not in EXCLUDE_FROM_CATALOG: if src not in EXCLUDE_FROM_CATALOG:
@ -436,7 +448,7 @@ def copy_files(files, ns):
log_debug("Copy {} -> {}", src, ns.copy / dest) log_debug("Copy {} -> {}", src, ns.copy / dest)
(ns.copy / dest).parent.mkdir(parents=True, exist_ok=True) (ns.copy / dest).parent.mkdir(parents=True, exist_ok=True)
try: try:
shutil.copy2(src, ns.copy / dest) copy_if_modified(src, ns.copy / dest)
except shutil.SameFileError: except shutil.SameFileError:
pass pass

View File

@ -63,6 +63,10 @@ PRESETS = {
"props" "props"
], ],
}, },
"iot": {
"help": "Windows IoT Core",
"options": ["stable", "pip"],
},
"default": { "default": {
"help": "development kit package", "help": "development kit package",
"options": [ "options": [