44 <Import Project =" paths.props" Condition =" '$(PyPathsIncluded)' != 'True'" />
55
66 <!-- Generate qstrdefs.generated.h and mpversion.h similar to what is done in py/mkrules.mk and py/py.mk-->
7- <Target Name =" GenerateHeaders" DependsOnTargets =" MakeVersionHdr;MakeModuleDefs;MakeQstrData" >
7+ <Target Name =" GenerateHeaders" DependsOnTargets =" MakeVersionHdr;MakeModuleDefs;MakeRootPointers; MakeQstrData" >
88 </Target >
99
1010 <PropertyGroup >
1515 <QstrDefsCollected >$(DestDir)qstrdefscollected.h</QstrDefsCollected >
1616 <QstrGen >$(DestDir)qstrdefs.generated.h</QstrGen >
1717 <ModuleDefsCollected >$(DestDir)/moduledefs.collected</ModuleDefsCollected >
18+ <RootPointersCollected >$(DestDir)/root_pointers.collected</RootPointersCollected >
1819 <PyPython Condition =" '$(PyPython)' == ''" >$(MICROPY_CPYTHON3)</PyPython >
1920 <PyPython Condition =" '$(PyPython)' == ''" >python</PyPython >
2021 <CLToolExe Condition =" '$(CLToolExe)' == ''" >cl.exe</CLToolExe >
4546using(var outFile = System.IO.File.CreateText(OutputFile)) {
4647 foreach(var inFile in InputFiles)
4748 foreach(var line in System.IO.File.ReadAllLines(inFile))
48- if((line.Contains(".c") && line.StartsWith("#line")) || line.Contains("MP_QSTR"))
49+ if((line.Contains(".c") && line.StartsWith("#line")) || line.Contains("MP_QSTR") || line.Contains("MP_REGISTER") )
4950 outFile.WriteLine( line );
5051}
5152 ]]>
@@ -114,6 +115,20 @@ using(var outFile = System.IO.File.CreateText(OutputFile)) {
114115 <MSBuild Projects =" $(MSBuildThisFileFullPath)" Targets =" CopyFileIfDifferent" Properties =" SourceFile=$(TmpFile);DestFile=$(DestFile)" />
115116 </Target >
116117
118+ <Target Name =" CollectRootPointers" DependsOnTargets =" MakeQstrDefs" Inputs =" $(DestDir)qstr.i.last" Outputs =" $(RootPointersCollected)" >
119+ <Exec Command =" $(PyPython) $(PySrcDir)makeqstrdefs.py split root_pointer $(DestDir)qstr.i.last $(DestDir)root_pointer _" />
120+ <Exec Command =" $(PyPython) $(PySrcDir)makeqstrdefs.py cat root_pointer _ $(DestDir)root_pointer $(RootPointersCollected)" />
121+ </Target >
122+
123+ <Target Name =" MakeRootPointers" DependsOnTargets =" CollectRootPointers" Inputs =" $(PySrcDir)make_root_pointers.py;$(RootPointersCollected)" Outputs =" $(DestDir)root_pointers.h" >
124+ <PropertyGroup >
125+ <DestFile >$(DestDir)root_pointers.h</DestFile >
126+ <TmpFile >$(DestFile).tmp</TmpFile >
127+ </PropertyGroup >
128+ <Exec Command =" $(PyPython) $(PySrcDir)make_root_pointers.py $(RootPointersCollected) > $(TmpFile)" />
129+ <MSBuild Projects =" $(MSBuildThisFileFullPath)" Targets =" CopyFileIfDifferent" Properties =" SourceFile=$(TmpFile);DestFile=$(DestFile)" />
130+ </Target >
131+
117132 <Target Name =" MakeQstrData" DependsOnTargets =" MakeQstrDefs" Inputs =" $(QstrDefsCollected);$(PyQstrDefs);$(QstrDefs)" Outputs =" $(QstrGen)" >
118133 <PropertyGroup >
119134 <TmpFile >$(QstrGen).tmp</TmpFile >
@@ -132,7 +147,7 @@ using(var outFile = System.IO.File.CreateText(OutputFile)) {
132147 <MSBuild Projects =" $(MSBuildThisFileFullPath)" Targets =" CopyFileIfDifferent" Properties =" SourceFile=$(TmpFile);DestFile=$(DestFile)" />
133148 </Target >
134149
135- <Target Name =" FreezeModules" Condition =" '$(FrozenManifest)' != ''" DependsOnTargets =" MakeQstrData" Inputs =" $(FrozenManifest)" Outputs =" $(PyBuildDir)frozen_content.c" >
150+ <Target Name =" FreezeModules" Condition =" '$(FrozenManifest)' != ''" DependsOnTargets =" MakeQstrData;MakeRootPointers " Inputs =" $(FrozenManifest)" Outputs =" $(PyBuildDir)frozen_content.c" >
136151 <ItemGroup >
137152 <ClCompile Include =" $(PyBuildDir)frozen_content.c" />
138153 <ClCompile >
0 commit comments