doesn't always reflect the correct settings and may confuse the user
with false information, especially for settings that automatically adapt
for different configurations.
+
+Add a new project
+-----------------
+
+For example, add a new _testclinic_limited project to build a new
+_testclinic_limited extension, the file Modules/_testclinic_limited.c:
+
+* In PCbuild/, copy _testclinic.vcxproj to _testclinic_limited.vcxproj,
+ replace RootNamespace value with `_testclinic_limited`, replace
+ `_asyncio.c` with `_testclinic_limited.c`.
+* Open Visual Studio, open PCbuild\pcbuild.sln solution, add the
+ PCbuild\_testclinic_limited.vcxproj project to the solution ("add existing
+ project).
+* Add a dependency on the python project to the new _testclinic_limited
+ project.
+* Save and exit Visual Studio.
+* Add `;_testclinic_limited` to `<TestModules Include="...">` in
+ PCbuild\pcbuild.proj.
+* Update "exts" in Tools\msi\lib\lib_files.wxs file or in
+ Tools\msi\test\test_files.wxs file (for tests).
+* PC\layout\main.py needs updating if you add a test-only extension whose name
+ doesn't start with "_test".
+* Add the extension to PCbuild\readme.txt (this file).
+* Build Python from scratch (clean the solution) to check that the new project
+ is built successfully.
+* Ensure the new .vcxproj and .vcxproj.filters files are added to your commit,
+ as well as the changes to pcbuild.sln, pcbuild.proj and any other modified
+ files.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <?define exts=_testcapi;_ctypes_test;_testbuffer;_testimportmultiple;_testmultiphase;_testsinglephase;_testconsole;_testinternalcapi;_testclinic ?>
+ <?define exts=_testcapi;_ctypes_test;_testbuffer;_testimportmultiple;_testmultiphase;_testsinglephase;_testconsole;_testinternalcapi;_testclinic;_testclinic_limited ?>
<Fragment>
<ComponentGroup Id="test_extensions">
<?foreach ext in $(var.exts)?>
-
+
<Component Id="$(var.ext).pyd" Directory="DLLs" Guid="*">
<File Name="$(var.ext).pyd" KeyPath="yes" />
</Component>
-
+
<?endforeach ?>
</ComponentGroup>
</Fragment>
-
+
<Fragment>
<ComponentGroup Id="test_extensions_symbols">
<?foreach ext in $(var.exts)?>
-
+
<Component Id="$(var.ext).pdb" Directory="DLLs" Guid="*">
<File Name="$(var.ext).pdb" />
</Component>
-
+
<?endforeach ?>
</ComponentGroup>
</Fragment>
-
+
<Fragment>
<ComponentGroup Id="test_extensions_d">
<?foreach ext in $(var.exts)?>
-
+
<Component Id="$(var.ext)_d.pyd" Directory="DLLs" Guid="*">
<File Name="$(var.ext)_d.pyd" />
</Component>
<Component Id="$(var.ext)_d.pdb" Directory="DLLs" Guid="*">
<File Name="$(var.ext)_d.pdb" />
</Component>
-
+
<?endforeach ?>
</ComponentGroup>
</Fragment>