summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/freeze_modules.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/scripts/freeze_modules.py')
-rw-r--r--Tools/scripts/freeze_modules.py45
1 files changed, 19 insertions, 26 deletions
diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py
index cbe8bf1..6d10758 100644
--- a/Tools/scripts/freeze_modules.py
+++ b/Tools/scripts/freeze_modules.py
@@ -575,16 +575,12 @@ def regen_frozen(modules):
def regen_makefile(modules):
pyfiles = []
frozenfiles = []
- deepfreezefiles = []
rules = ['']
- deepfreezerules = ['']
+ deepfreezerules = ["Python/deepfreeze/deepfreeze.c: $(DEEPFREEZE_DEPS)",
+ "\t$(PYTHON_FOR_FREEZE) $(srcdir)/Tools/scripts/deepfreeze.py \\"]
for src in _iter_sources(modules):
frozen_header = relpath_for_posix_display(src.frozenfile, ROOT_DIR)
- deepfreeze_header = relpath_for_posix_display(src.deepfreezefile, ROOT_DIR)
frozenfiles.append(f'\t\t{frozen_header} \\')
- cfile = deepfreeze_header[:-2] + ".c"
- ofile = deepfreeze_header[:-2] + ".o"
- deepfreezefiles.append(f"\t\t{ofile} \\")
pyfile = relpath_for_posix_display(src.pyfile, ROOT_DIR)
pyfiles.append(f'\t\t{pyfile} \\')
@@ -603,15 +599,11 @@ def regen_makefile(modules):
f'\t{freeze}',
'',
])
- deepfreezerules.append(f'{cfile}: {frozen_header} $(DEEPFREEZE_DEPS)')
- deepfreezerules.append(
- f"\t$(PYTHON_FOR_FREEZE) "
- f"$(srcdir)/Tools/scripts/deepfreeze.py "
- f"{frozen_header} -m {src.frozenid} -o {cfile}")
- deepfreezerules.append('')
+ deepfreezerules.append(f"\t{frozen_header}:{src.frozenid} \\")
+ deepfreezerules.append('\t-o Python/deepfreeze/deepfreeze.c')
+ deepfreezerules.append('')
pyfiles[-1] = pyfiles[-1].rstrip(" \\")
frozenfiles[-1] = frozenfiles[-1].rstrip(" \\")
- deepfreezefiles[-1] = deepfreezefiles[-1].rstrip(" \\")
print(f'# Updating {os.path.relpath(MAKEFILE)}')
with updating_file_with_tmpfile(MAKEFILE) as (infile, outfile):
@@ -632,13 +624,6 @@ def regen_makefile(modules):
)
lines = replace_block(
lines,
- "DEEPFREEZE_OBJS =",
- "# End DEEPFREEZE_OBJS",
- deepfreezefiles,
- MAKEFILE,
- )
- lines = replace_block(
- lines,
"# BEGIN: freezing modules",
"# END: freezing modules",
rules,
@@ -658,26 +643,24 @@ def regen_pcbuild(modules):
projlines = []
filterlines = []
corelines = []
+ deepfreezerules = ['\t<Exec Command=\'$(PythonForBuild) "$(PySourcePath)Tools\\scripts\\deepfreeze.py" ^']
for src in _iter_sources(modules):
pyfile = relpath_for_windows_display(src.pyfile, ROOT_DIR)
header = relpath_for_windows_display(src.frozenfile, ROOT_DIR)
- deepbase = "df." + src.id
- deepoutfile = f"Python\\deepfreeze\\{deepbase}.c"
intfile = ntpath.splitext(ntpath.basename(header))[0] + '.g.h'
- deepintfile = ntpath.splitext(ntpath.basename(header))[0] + '.g.c'
projlines.append(f' <None Include="..\\{pyfile}">')
projlines.append(f' <ModName>{src.frozenid}</ModName>')
projlines.append(f' <IntFile>$(IntDir){intfile}</IntFile>')
projlines.append(f' <OutFile>$(PySourcePath){header}</OutFile>')
- projlines.append(f' <DeepIntFile>$(IntDir){deepintfile}</DeepIntFile>')
- projlines.append(f' <DeepOutFile>$(PySourcePath){deepoutfile}</DeepOutFile>')
projlines.append(f' </None>')
filterlines.append(f' <None Include="..\\{pyfile}">')
filterlines.append(' <Filter>Python Files</Filter>')
filterlines.append(' </None>')
+ deepfreezerules.append(f'\t\t "$(PySourcePath){header}:{src.frozenid}" ^')
+ deepfreezerules.append('\t\t "-o" "$(PySourcePath)Python\\deepfreeze\\deepfreeze.c"\'/>' )
- corelines.append(f' <ClCompile Include="..\\{deepoutfile}" />')
+ corelines.append(f' <ClCompile Include="..\\Python\\deepfreeze\\deepfreeze.c" />')
print(f'# Updating {os.path.relpath(PCBUILD_PROJECT)}')
with updating_file_with_tmpfile(PCBUILD_PROJECT) as (infile, outfile):
@@ -690,6 +673,16 @@ def regen_pcbuild(modules):
PCBUILD_PROJECT,
)
outfile.writelines(lines)
+ with updating_file_with_tmpfile(PCBUILD_PROJECT) as (infile, outfile):
+ lines = infile.readlines()
+ lines = replace_block(
+ lines,
+ '<!-- BEGIN deepfreeze rule -->',
+ '<!-- END deepfreeze rule -->',
+ deepfreezerules,
+ PCBUILD_PROJECT,
+ )
+ outfile.writelines(lines)
print(f'# Updating {os.path.relpath(PCBUILD_FILTERS)}')
with updating_file_with_tmpfile(PCBUILD_FILTERS) as (infile, outfile):
lines = infile.readlines()