diff options
author | Paul Monson <paulmon@users.noreply.github.com> | 2019-04-12 16:55:57 (GMT) |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2019-04-12 16:55:57 (GMT) |
commit | f4e5661e85ac41c987165246d2b33f363cd01e34 (patch) | |
tree | db0b47a72c422139e38d3b6cf798186987e9893d | |
parent | aa25d5d026b21a6bac66ff1c47e96cbf6227473a (diff) | |
download | cpython-f4e5661e85ac41c987165246d2b33f363cd01e34.zip cpython-f4e5661e85ac41c987165246d2b33f363cd01e34.tar.gz cpython-f4e5661e85ac41c987165246d2b33f363cd01e34.tar.bz2 |
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.
-rw-r--r-- | Misc/NEWS.d/next/Windows/2019-04-02-10-11-18.bpo-36509.DdaM67.rst | 4 | ||||
-rw-r--r-- | PC/layout/main.py | 16 | ||||
-rw-r--r-- | PC/layout/support/options.py | 4 |
3 files changed, 22 insertions, 2 deletions
diff --git a/Misc/NEWS.d/next/Windows/2019-04-02-10-11-18.bpo-36509.DdaM67.rst b/Misc/NEWS.d/next/Windows/2019-04-02-10-11-18.bpo-36509.DdaM67.rst new file mode 100644 index 0000000..722f763 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2019-04-02-10-11-18.bpo-36509.DdaM67.rst @@ -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. diff --git a/PC/layout/main.py b/PC/layout/main.py index 185e649..624033e 100644 --- a/PC/layout/main.py +++ b/PC/layout/main.py @@ -66,6 +66,18 @@ DATA_DIRS = FileNameSet("data") TOOLS_DIRS = FileNameSet("scripts", "i18n", "pynche", "demo", "parser") 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 _c(f): @@ -426,7 +438,7 @@ def copy_files(files, ns): need_compile.append((dest, ns.copy / dest)) else: (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)) if src not in EXCLUDE_FROM_CATALOG: @@ -436,7 +448,7 @@ def copy_files(files, ns): log_debug("Copy {} -> {}", src, ns.copy / dest) (ns.copy / dest).parent.mkdir(parents=True, exist_ok=True) try: - shutil.copy2(src, ns.copy / dest) + copy_if_modified(src, ns.copy / dest) except shutil.SameFileError: pass diff --git a/PC/layout/support/options.py b/PC/layout/support/options.py index 22492f2..00f0566 100644 --- a/PC/layout/support/options.py +++ b/PC/layout/support/options.py @@ -63,6 +63,10 @@ PRESETS = { "props" ], }, + "iot": { + "help": "Windows IoT Core", + "options": ["stable", "pip"], + }, "default": { "help": "development kit package", "options": [ |