2014-11-22 16:54:57 -04:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<PropertyGroup Label="Globals">
|
|
|
|
<ProjectGuid>{CC9B93A2-439D-4058-9D29-6DCF43774405}</ProjectGuid>
|
|
|
|
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
|
|
|
|
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
|
|
|
|
<IncludeExtensions Condition="'$(IncludeExtensions)' == ''">true</IncludeExtensions>
|
2015-09-04 01:43:54 -03:00
|
|
|
<IncludeExternals Condition="'$(IncludeExternals)' == ''">true</IncludeExternals>
|
2014-11-22 16:54:57 -04:00
|
|
|
<IncludeTests Condition="'$(IncludeTest)' == ''">true</IncludeTests>
|
2019-05-17 14:07:24 -03:00
|
|
|
<IncludeCTypes Condition="'$(IncludeCTypes)' == ''">true</IncludeCTypes>
|
2014-11-22 16:54:57 -04:00
|
|
|
<IncludeSSL Condition="'$(IncludeSSL)' == ''">true</IncludeSSL>
|
2015-09-04 01:43:54 -03:00
|
|
|
<IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter>
|
2018-12-10 22:52:57 -04:00
|
|
|
<IncludeUwp Condition="'$(IncludeUwp)' == ''">false</IncludeUwp>
|
2014-11-22 16:54:57 -04:00
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<ItemDefinitionGroup>
|
|
|
|
<Projects>
|
|
|
|
<Platform>$(Platform)</Platform>
|
|
|
|
<Configuration>$(Configuration)</Configuration>
|
|
|
|
<Properties></Properties>
|
|
|
|
<BuildTarget>Build</BuildTarget>
|
|
|
|
<CleanTarget>Clean</CleanTarget>
|
|
|
|
<CleanAllTarget>CleanAll</CleanAllTarget>
|
|
|
|
<BuildInParallel>true</BuildInParallel>
|
|
|
|
</Projects>
|
2016-07-16 20:13:19 -03:00
|
|
|
<Projects2>
|
|
|
|
<Platform>$(Platform)</Platform>
|
|
|
|
<Configuration>$(Configuration)</Configuration>
|
|
|
|
<Properties></Properties>
|
|
|
|
<BuildTarget>Build</BuildTarget>
|
|
|
|
<CleanTarget>Clean</CleanTarget>
|
|
|
|
<CleanAllTarget>CleanAll</CleanAllTarget>
|
2016-12-12 15:17:59 -04:00
|
|
|
<BuildInParallel>false</BuildInParallel>
|
2016-07-16 20:13:19 -03:00
|
|
|
</Projects2>
|
2014-11-22 16:54:57 -04:00
|
|
|
</ItemDefinitionGroup>
|
|
|
|
<ItemGroup>
|
|
|
|
<!-- pythonXY.dll -->
|
|
|
|
<!--
|
|
|
|
Parallel build is explicitly disabled for this project because it
|
|
|
|
causes many conflicts between pythoncore and projects that depend
|
2015-09-04 01:43:54 -03:00
|
|
|
on pythoncore. Once the core DLL has been built, subsequent
|
2014-11-22 16:54:57 -04:00
|
|
|
projects will be built in parallel.
|
|
|
|
-->
|
|
|
|
<Projects Include="pythoncore.vcxproj">
|
|
|
|
<BuildInParallel>false</BuildInParallel>
|
|
|
|
</Projects>
|
|
|
|
<!-- python3.dll -->
|
|
|
|
<Projects Include="python3dll.vcxproj" />
|
|
|
|
<!-- py[w].exe -->
|
|
|
|
<Projects Include="pylauncher.vcxproj;pywlauncher.vcxproj" />
|
2016-07-16 20:17:33 -03:00
|
|
|
<!-- pyshellext.dll -->
|
|
|
|
<Projects Include="pyshellext.vcxproj" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<!-- Extension modules -->
|
bpo-40503: PEP 615: Tests and implementation for zoneinfo (GH-19909)
This is the initial implementation of PEP 615, the zoneinfo module,
ported from the standalone reference implementation (see
https://www.python.org/dev/peps/pep-0615/#reference-implementation for a
link, which has a more detailed commit history).
This includes (hopefully) all functional elements described in the PEP,
but documentation is found in a separate PR. This includes:
1. A pure python implementation of the ZoneInfo class
2. A C accelerated implementation of the ZoneInfo class
3. Tests with 100% branch coverage for the Python code (though C code
coverage is less than 100%).
4. A compile-time configuration option on Linux (though not on Windows)
Differences from the reference implementation:
- The module is arranged slightly differently: the accelerated module is
`_zoneinfo` rather than `zoneinfo._czoneinfo`, which also necessitates
some changes in the test support function. (Suggested by Victor
Stinner and Steve Dower.)
- The tests are arranged slightly differently and do not include the
property tests. The tests live at test/test_zoneinfo/test_zoneinfo.py
rather than test/test_zoneinfo.py or test/test_zoneinfo/__init__.py
because we may do some refactoring in the future that would likely
require this separation anyway; we may:
- include the property tests
- automatically run all the tests against both pure Python and C,
rather than manually constructing C and Python test classes (similar
to the way this works with test_datetime.py, which generates C
and Python test cases from datetimetester.py).
- This includes a compile-time configuration option on Linux (though not
on Windows); added with much help from Thomas Wouters.
- Integration into the CPython build system is obviously different from
building a standalone zoneinfo module wheel.
- This includes configuration to install the tzdata package as part of
CI, though only on the coverage jobs. Introducing a PyPI dependency as
part of the CI build was controversial, and this is seen as less of a
major change, since the coverage jobs already depend on pip and PyPI.
Additional changes that were introduced as part of this PR, most / all of
which were backported to the reference implementation:
- Fixed reference and memory leaks
With much debugging help from Pablo Galindo
- Added smoke tests ensuring that the C and Python modules are built
The import machinery can be somewhat fragile, and the "seamlessly falls
back to pure Python" nature of this module makes it so that a problem
building the C extension or a failure to import the pure Python version
might easily go unnoticed.
- Adjustments to zoneinfo.__dir__
Suggested by Petr Viktorin.
- Slight refactorings as suggested by Steve Dower.
- Removed unnecessary if check on std_abbr
Discovered this because of a missing line in branch coverage.
2020-05-16 05:20:06 -03:00
|
|
|
<ExtensionModules Include="_asyncio;_zoneinfo;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound;_uuid" />
|
2019-05-17 14:07:24 -03:00
|
|
|
<ExtensionModules Include="_ctypes" Condition="$(IncludeCTypes)" />
|
2015-09-04 01:43:54 -03:00
|
|
|
<!-- Extension modules that require external sources -->
|
|
|
|
<ExternalModules Include="_bz2;_lzma;_sqlite3" />
|
2018-12-10 22:52:57 -04:00
|
|
|
<!-- venv launchers -->
|
|
|
|
<Projects Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
|
2015-09-04 01:43:54 -03:00
|
|
|
<ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
|
|
|
|
<ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
|
2019-11-20 13:30:47 -04:00
|
|
|
<ExternalModules Include="_tkinter" Condition="$(IncludeTkinter) and $(Platform) != 'ARM' and $(Platform) != 'ARM64'" />
|
2015-09-04 01:43:54 -03:00
|
|
|
<ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
|
|
|
|
<!-- Test modules -->
|
2019-04-18 06:37:26 -03:00
|
|
|
<TestModules Include="_ctypes_test;_testbuffer;_testcapi;_testinternalcapi;_testembed;_testimportmultiple;_testmultiphase;_testconsole" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<TestModules Include="xxlimited" Condition="'$(Configuration)' == 'Release'" />
|
2020-12-08 12:36:53 -04:00
|
|
|
<TestModules Include="xxlimited_35" Condition="'$(Configuration)' == 'Release'" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<Projects Include="@(TestModules->'%(Identity).vcxproj')" Condition="$(IncludeTests)">
|
|
|
|
<!-- Disable parallel build for test modules -->
|
|
|
|
<BuildInParallel>false</BuildInParallel>
|
|
|
|
</Projects>
|
2019-04-18 06:37:26 -03:00
|
|
|
|
2021-08-30 20:25:11 -03:00
|
|
|
<!-- _freeze_module -->
|
|
|
|
<Projects2 Condition="$(Platform) != 'ARM' and $(Platform) != 'ARM64'" Include="_freeze_module.vcxproj" />
|
2016-07-13 23:58:21 -03:00
|
|
|
<!-- python[w].exe -->
|
2016-12-12 15:17:59 -04:00
|
|
|
<Projects2 Include="python.vcxproj;pythonw.vcxproj" />
|
2018-12-10 22:52:57 -04:00
|
|
|
<Projects2 Include="python_uwp.vcxproj;pythonw_uwp.vcxproj" Condition="$(IncludeUwp)" />
|
2018-12-10 12:11:21 -04:00
|
|
|
<!-- venv[w]launcher.exe -->
|
|
|
|
<Projects2 Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" />
|
2014-11-22 16:54:57 -04:00
|
|
|
</ItemGroup>
|
|
|
|
|
|
|
|
<Target Name="Build">
|
|
|
|
<MSBuild Projects="@(Projects)"
|
|
|
|
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
|
|
|
|
BuildInParallel="%(BuildInParallel)"
|
2016-07-13 23:58:21 -03:00
|
|
|
StopOnFirstFailure="true"
|
2014-11-22 16:54:57 -04:00
|
|
|
Targets="%(BuildTarget)" />
|
2016-07-16 20:13:19 -03:00
|
|
|
<MSBuild Projects="@(Projects2)"
|
|
|
|
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
|
|
|
|
BuildInParallel="%(BuildInParallel)"
|
|
|
|
StopOnFirstFailure="true"
|
|
|
|
Targets="%(BuildTarget)" />
|
2014-11-22 16:54:57 -04:00
|
|
|
</Target>
|
|
|
|
|
|
|
|
<Target Name="Clean">
|
2016-07-16 20:13:19 -03:00
|
|
|
<MSBuild Projects="@(Projects2)"
|
|
|
|
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
|
|
|
|
BuildInParallel="%(BuildInParallel)"
|
|
|
|
StopOnFirstFailure="false"
|
|
|
|
Condition="%(CleanTarget) != ''"
|
|
|
|
Targets="%(CleanTarget)" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<MSBuild Projects="@(Projects)"
|
|
|
|
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
|
|
|
|
BuildInParallel="%(BuildInParallel)"
|
|
|
|
StopOnFirstFailure="false"
|
|
|
|
Condition="%(CleanTarget) != ''"
|
|
|
|
Targets="%(CleanTarget)" />
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
<Target Name="CleanAll">
|
2016-07-16 20:13:19 -03:00
|
|
|
<MSBuild Projects="@(Projects2)"
|
|
|
|
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
|
|
|
|
BuildInParallel="%(BuildInParallel)"
|
|
|
|
StopOnFirstFailure="false"
|
|
|
|
Condition="%(CleanAllTarget) != ''"
|
|
|
|
Targets="%(CleanAllTarget)" />
|
2014-11-22 16:54:57 -04:00
|
|
|
<MSBuild Projects="@(Projects)"
|
|
|
|
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
|
|
|
|
BuildInParallel="%(BuildInParallel)"
|
|
|
|
StopOnFirstFailure="false"
|
|
|
|
Condition="%(CleanAllTarget) != ''"
|
|
|
|
Targets="%(CleanAllTarget)" />
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
|
|
|
|
<Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" />
|
2017-09-06 21:29:37 -03:00
|
|
|
</Project>
|