diff options
Diffstat (limited to 'PC/layout/support/props.py')
-rw-r--r-- | PC/layout/support/props.py | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/PC/layout/support/props.py b/PC/layout/support/props.py deleted file mode 100644 index b1560b5..0000000 --- a/PC/layout/support/props.py +++ /dev/null @@ -1,100 +0,0 @@ -""" -Provides .props file. -""" - -import os - -from .constants import * - -__all__ = ["get_props_layout"] - -PYTHON_PROPS_NAME = "python.props" - -PROPS_DATA = { - "PYTHON_TAG": VER_DOT, - "PYTHON_VERSION": os.getenv("PYTHON_NUSPEC_VERSION"), - "PYTHON_PLATFORM": os.getenv("PYTHON_PROPS_PLATFORM"), - "PYTHON_TARGET": "", -} - -if not PROPS_DATA["PYTHON_VERSION"]: - PROPS_DATA["PYTHON_VERSION"] = "{}.{}{}{}".format( - VER_DOT, VER_MICRO, "-" if VER_SUFFIX else "", VER_SUFFIX - ) - -PROPS_DATA["PYTHON_TARGET"] = "_GetPythonRuntimeFilesDependsOn{}{}_{}".format( - VER_MAJOR, VER_MINOR, PROPS_DATA["PYTHON_PLATFORM"] -) - -PROPS_TEMPLATE = r"""<?xml version="1.0" encoding="utf-8"?> -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup Condition="$(Platform) == '{PYTHON_PLATFORM}'"> - <PythonHome Condition="$(Configuration) == 'Debug'">$([msbuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), "python_d.exe")</PythonHome> - <PythonHome Condition="$(PythonHome) == ''">$([msbuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), "python.exe")</PythonHome> - <PythonInclude>$(PythonHome)\include</PythonInclude> - <PythonLibs>$(PythonHome)\libs</PythonLibs> - <PythonTag>{PYTHON_TAG}</PythonTag> - <PythonVersion>{PYTHON_VERSION}</PythonVersion> - - <IncludePythonExe Condition="$(IncludePythonExe) == ''">true</IncludePythonExe> - <IncludeDistutils Condition="$(IncludeDistutils) == ''">false</IncludeDistutils> - <IncludeLib2To3 Condition="$(IncludeLib2To3) == ''">false</IncludeLib2To3> - <IncludeVEnv Condition="$(IncludeVEnv) == ''">false</IncludeVEnv> - - <GetPythonRuntimeFilesDependsOn>{PYTHON_TARGET};$(GetPythonRuntimeFilesDependsOn)</GetPythonRuntimeFilesDependsOn> - </PropertyGroup> - - <ItemDefinitionGroup Condition="$(Platform) == '{PYTHON_PLATFORM}'"> - <ClCompile> - <AdditionalIncludeDirectories>$(PythonInclude);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - </ClCompile> - <Link> - <AdditionalLibraryDirectories>$(PythonLibs);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - </Link> - </ItemDefinitionGroup> - - <Target Name="GetPythonRuntimeFiles" Returns="@(PythonRuntime)" DependsOnTargets="$(GetPythonRuntimeFilesDependsOn)" /> - - <Target Name="{PYTHON_TARGET}" Returns="@(PythonRuntime)"> - <ItemGroup> - <_PythonRuntimeExe Include="$(PythonHome)\python*.dll" /> - <_PythonRuntimeExe Include="$(PythonHome)\python*.exe" Condition="$(IncludePythonExe) == 'true'" /> - <_PythonRuntimeExe> - <Link>%(Filename)%(Extension)</Link> - </_PythonRuntimeExe> - <_PythonRuntimeDlls Include="$(PythonHome)\DLLs\*.pyd" /> - <_PythonRuntimeDlls Include="$(PythonHome)\DLLs\*.dll" /> - <_PythonRuntimeDlls> - <Link>DLLs\%(Filename)%(Extension)</Link> - </_PythonRuntimeDlls> - <_PythonRuntimeLib Include="$(PythonHome)\Lib\**\*" Exclude="$(PythonHome)\Lib\**\*.pyc;$(PythonHome)\Lib\site-packages\**\*" /> - <_PythonRuntimeLib Remove="$(PythonHome)\Lib\distutils\**\*" Condition="$(IncludeDistutils) != 'true'" /> - <_PythonRuntimeLib Remove="$(PythonHome)\Lib\lib2to3\**\*" Condition="$(IncludeLib2To3) != 'true'" /> - <_PythonRuntimeLib Remove="$(PythonHome)\Lib\ensurepip\**\*" Condition="$(IncludeVEnv) != 'true'" /> - <_PythonRuntimeLib Remove="$(PythonHome)\Lib\venv\**\*" Condition="$(IncludeVEnv) != 'true'" /> - <_PythonRuntimeLib> - <Link>Lib\%(RecursiveDir)%(Filename)%(Extension)</Link> - </_PythonRuntimeLib> - <PythonRuntime Include="@(_PythonRuntimeExe);@(_PythonRuntimeDlls);@(_PythonRuntimeLib)" /> - </ItemGroup> - - <Message Importance="low" Text="Collected Python runtime from $(PythonHome):%0D%0A@(PythonRuntime->' %(Link)','%0D%0A')" /> - </Target> -</Project> -""" - - -def get_props_layout(ns): - if ns.include_all or ns.include_props: - # TODO: Filter contents of props file according to included/excluded items - d = dict(PROPS_DATA) - if not d.get("PYTHON_PLATFORM"): - d["PYTHON_PLATFORM"] = { - "win32": "Win32", - "amd64": "X64", - "arm32": "ARM", - "arm64": "ARM64", - }[ns.arch] - props = PROPS_TEMPLATE.format_map(d) - yield "python.props", ("python.props", props.encode("utf-8")) |