summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Monson <paulmon@users.noreply.github.com>2019-04-12 16:55:57 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2019-04-12 16:55:57 (GMT)
commitf4e5661e85ac41c987165246d2b33f363cd01e34 (patch)
treedb0b47a72c422139e38d3b6cf798186987e9893d
parentaa25d5d026b21a6bac66ff1c47e96cbf6227473a (diff)
downloadcpython-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.rst4
-rw-r--r--PC/layout/main.py16
-rw-r--r--PC/layout/support/options.py4
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": [