Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .azure-pipelines/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

strategy:
matrix:
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

strategy:
matrix:
Expand Down
6 changes: 6 additions & 0 deletions .azure-pipelines/tcltk-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@ jobs:
& "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=x64 /p:tcltkDir="$(OutDir)\amd64"
displayName: 'Build for amd64'

- powershell: |
& "$(msbuild)" PCbuild\tcl.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64"
& "$(msbuild)" PCbuild\tk.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64"
& "$(msbuild)" PCbuild\tix.vcxproj "@msbuild.rsp" /p:Platform=ARM64 /p:tcltkDir="$(OutDir)\arm64"
displayName: 'Build for arm64'

- publish: '$(OutDir)'
artifact: 'tcltk'
displayName: 'Publishing tcltk'
11 changes: 8 additions & 3 deletions .azure-pipelines/windows-release/msi-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,13 @@ steps:
artifactName: tcltk_lib_amd64
targetPath: $(Build.BinariesDirectory)\tcltk_lib_amd64

- task: DownloadPipelineArtifact@1
displayName: 'Download artifact: tcltk_lib_arm64'
condition: and(succeeded(), eq(variables['PublishARM64'], 'true'))
inputs:
artifactName: tcltk_lib_arm64
targetPath: $(Build.BinariesDirectory)\tcltk_lib_arm64

- powershell: |
copy $(Build.BinariesDirectory)\amd64\Activate.ps1 Lib\venv\scripts\common\Activate.ps1 -Force
displayName: 'Copy signed files into sources'
Expand Down Expand Up @@ -107,7 +114,6 @@ steps:
PYTHONHOME: $(Build.SourcesDirectory)
TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_win32
BuildForRelease: true
SuppressMinGWLib: true

- script: |
%MSBUILD% Tools\msi\bundle\releaselocal.wixproj /t:Rebuild /p:RebuildAll=true
Expand All @@ -120,7 +126,6 @@ steps:
PYTHONHOME: $(Build.SourcesDirectory)
TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_amd64
BuildForRelease: true
SuppressMinGWLib: true

- script: |
%MSBUILD% Tools\msi\bundle\releaselocal.wixproj /t:Rebuild /p:RebuildAll=true
Expand All @@ -132,8 +137,8 @@ steps:
PYTHON: $(Build.BinariesDirectory)\win32\python.exe
PythonForBuild: $(Build.BinariesDirectory)\win32\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
TclTkLibraryDir: $(Build.BinariesDirectory)\tcltk_lib_arm64
BuildForRelease: true
SuppressMinGWLib: true

- task: CopyFiles@2
displayName: 'Assemble artifact: msi (win32)'
Expand Down
19 changes: 16 additions & 3 deletions .azure-pipelines/windows-release/stage-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ jobs:
displayName: Docs build
pool:
#name: 'Windows Release'
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down Expand Up @@ -45,7 +45,7 @@ jobs:
displayName: Python build

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:
condition: and(succeeded(), ne(variables['DoPGO'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down Expand Up @@ -166,6 +166,13 @@ jobs:
platform: x64
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_amd64"

- task: MSBuild@1
displayName: 'Copy Tcl/Tk lib for publish'
inputs:
solution: PCbuild\tcltk.props
platform: ARM64
msbuildArguments: /t:CopyTclTkLib /p:OutDir="$(Build.ArtifactStagingDirectory)\tcl_arm64"

- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_win32'
inputs:
Expand All @@ -177,3 +184,9 @@ jobs:
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_amd64'
artifactName: tcltk_lib_amd64

- task: PublishPipelineArtifact@0
displayName: 'Publish artifact: tcltk_lib_arm64'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)\tcl_arm64'
artifactName: tcltk_lib_arm64
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-layout-embed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoEmbed'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
3 changes: 2 additions & 1 deletion .azure-pipelines/windows-release/stage-layout-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoLayout'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand All @@ -26,6 +26,7 @@ jobs:
HostArch: amd64
Python: $(Build.BinariesDirectory)\bin_amd64\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8

steps:
- template: ./checkout.yml
Expand Down
3 changes: 2 additions & 1 deletion .azure-pipelines/windows-release/stage-layout-msix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ jobs:
displayName: Make MSIX layout

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand All @@ -25,6 +25,7 @@ jobs:
HostArch: amd64
Python: $(Build.BinariesDirectory)\bin_amd64\python.exe
PYTHONHOME: $(Build.SourcesDirectory)
TclLibrary: $(Build.BinariesDirectory)\tcltk_lib\tcl8

steps:
- template: ./checkout.yml
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-layout-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-msi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), not(variables['SigningCertificate']))

pool:
vmImage: windows-2022
vmImage: windows-2019

variables:
ReleaseUri: http://www.python.org/{arch}
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-pack-msix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ jobs:
displayName: Pack MSIX bundles

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
condition: and(succeeded(), and(eq(variables['DoMSI'], 'true'), eq(variables['DoEmbed'], 'true')))

pool:
#vmImage: windows-2022
#vmImage: windows-2019
name: 'Windows Release'

workspace:
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-publish-store.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoMSIX'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-sign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ jobs:
condition: and(succeeded(), not(variables['SigningCertificate']))

pool:
vmImage: windows-2022
vmImage: windows-2019

steps:
- checkout: none
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-test-embed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoEmbed'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-test-msi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ jobs:
displayName: Test MSI

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/windows-release/stage-test-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))

pool:
vmImage: windows-2022
vmImage: windows-2019

workspace:
clean: all
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Adds Tcl and Tk support for Windows ARM64. This also adds IDLE to the
installation.
3 changes: 2 additions & 1 deletion PCbuild/build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,10 @@ if "%~1"=="--no-tkinter" (set IncludeTkinter=false) & shift & goto CheckOpts
if "%IncludeExternals%"=="" set IncludeExternals=true
if "%IncludeCTypes%"=="" set IncludeCTypes=true
if "%IncludeSSL%"=="" set IncludeSSL=true
if "%IncludeTkinter%"=="" set IncludeTkinter=true
set IncludeTkinter=true

if "%IncludeExternals%"=="true" call "%dir%get_externals.bat"
call "%dir%prepare_tcltk.bat"

if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" (
if "%PROCESSOR_ARCHITEW6432%" NEQ "AMD64" if "%PROCESSOR_ARCHITECTURE%" NEQ "AMD64" (
Expand Down
6 changes: 3 additions & 3 deletions PCbuild/get_externals.bat
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ set libraries=%libraries% bzip2-1.0.6
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.2
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1m
set libraries=%libraries% sqlite-3.37.2.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.12.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.1
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.12.1
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tix-8.4.3.6
set libraries=%libraries% xz-5.2.2
set libraries=%libraries% zlib-1.2.11
Expand All @@ -78,7 +78,7 @@ echo.Fetching external binaries...
set binaries=
if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.2
if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1m
if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.12.0
if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.12.1
if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06

for %%b in (%binaries%) do (
Expand Down
2 changes: 1 addition & 1 deletion PCbuild/pcbuild.proj
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
<ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
<ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
<ExternalModules Include="_tkinter" Condition="$(IncludeTkinter) and $(Platform) != 'ARM' and $(Platform) != 'ARM64'" />
<ExternalModules Include="_tkinter" Condition="$(IncludeTkinter)" />
<ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
<Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
<!-- Test modules -->
Expand Down
4 changes: 4 additions & 0 deletions PCbuild/prepare_tcltk.bat
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,7 @@ call "%PCBUILD%\get_externals.bat" --tkinter-src %ORG_SETTING%
%MSBUILD% "%PCBUILD%\tcl.vcxproj" /p:Configuration=Release /p:Platform=x64
%MSBUILD% "%PCBUILD%\tk.vcxproj" /p:Configuration=Release /p:Platform=x64
%MSBUILD% "%PCBUILD%\tix.vcxproj" /p:Configuration=Release /p:Platform=x64

%MSBUILD% "%PCBUILD%\tcl.vcxproj" /p:Configuration=Release /p:Platform=ARM64
%MSBUILD% "%PCBUILD%\tk.vcxproj" /p:Configuration=Release /p:Platform=ARM64
%MSBUILD% "%PCBUILD%\tix.vcxproj" /p:Configuration=Release /p:Platform=ARM64
8 changes: 6 additions & 2 deletions PCbuild/tcl.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B5FD6F1D-129E-4BFF-9340-03606FAC7283}</ProjectGuid>
Expand All @@ -59,8 +63,8 @@
<NMakeBuildCommandLine>setlocal
set VCINSTALLDIR=$(VCInstallDir)
cd /D "$(tclDir)win"
nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) $(WarningsFlags) core shell dlls
nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) $(WarningsFlags) install-binaries install-libraries
nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) $(WarningsFlags) TCLSH_NATIVE="$(tclWin32Exe)" core shell dlls
nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) $(WarningsFlags) TCLSH_NATIVE="$(tclWin32Exe)" install-binaries install-libraries
copy /Y ..\license.terms "$(OutDir)\tcllicense.terms"
</NMakeBuildCommandLine>
</PropertyGroup>
Expand Down
5 changes: 4 additions & 1 deletion PCbuild/tcltk.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<TclMajorVersion>8</TclMajorVersion>
<TclMinorVersion>6</TclMinorVersion>
<TclPatchLevel>12</TclPatchLevel>
<TclRevision>0</TclRevision>
<TclRevision>1</TclRevision>
<TkMajorVersion>$(TclMajorVersion)</TkMajorVersion>
<TkMinorVersion>$(TclMinorVersion)</TkMinorVersion>
<TkPatchLevel>$(TclPatchLevel)</TkPatchLevel>
Expand All @@ -18,6 +18,9 @@
<tkDir>$(ExternalsDir)tk-$(TkMajorVersion).$(TkMinorVersion).$(TkPatchLevel).$(TkRevision)\</tkDir>
<tixDir>$(ExternalsDir)tix-$(TixMajorVersion).$(TixMinorVersion).$(TixPatchLevel).$(TixRevision)\</tixDir>
<tcltkDir>$(ExternalsDir)tcltk-$(TclMajorVersion).$(TclMinorVersion).$(TclPatchLevel).$(TclRevision)\$(ArchName)\</tcltkDir>
<tclWin32Exe Condition="$(Platform) == 'Win32'">$(tcltkDir)\bin\tclsh$(TclMajorVersion)$(TclMinorVersion)t.exe</tclWin32Exe>
<tclWin32Exe Condition="$(Platform) != 'Win32'">$(tcltkDir)\..\win32\bin\tclsh$(TclMajorVersion)$(TclMinorVersion)t.exe</tclWin32Exe>

<!--<TclDebugExt Condition="'$(Configuration)' == 'Debug'">g</TclDebugExt>-->
<tclDLLName>tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).dll</tclDLLName>
<tclLibName>tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).lib</tclLibName>
Expand Down
6 changes: 5 additions & 1 deletion PCbuild/tix.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}</ProjectGuid>
Expand All @@ -53,7 +57,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

<PropertyGroup>
<TixDirs>BUILDDIRTOP="$(BuildDirTop)" TCL_DIR="$(tclDir.TrimEnd(`\`))" TK_DIR="$(tkDir.TrimEnd(`\`))" INSTALL_DIR="$(OutDir.TrimEnd(`\`))"</TixDirs>
<TixDirs>BUILDDIRTOP="$(BuildDirTop)" TCL_DIR="$(tclDir.TrimEnd(`\`))" TK_DIR="$(tkDir.TrimEnd(`\`))" INSTALL_DIR="$(OutDir.TrimEnd(`\`))" TCLSH_EXE="$(tclWin32Exe)"</TixDirs>
<DebugFlags Condition="'$(Configuration)' == 'Debug'">DEBUG=1 NODEBUG=0 TCL_DBGX=g TK_DBGX=g</DebugFlags>
<DebugFlags Condition="'$(Configuration)' != 'Debug'">DEBUG=0 NODEBUG=1</DebugFlags>
<CFlags>-c -W3 -nologo -MD -wd4028 -wd4090 -wd4244 -wd4267 -wd4312</CFlags>
Expand Down
8 changes: 6 additions & 2 deletions PCbuild/tk.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
Expand Down Expand Up @@ -60,8 +64,8 @@
<NMakeBuildCommandLine>setlocal
set VCINSTALLDIR=$(VCInstallDir)
cd /D "$(tkDir)win"
nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) $(WarningsFlags) all
nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) $(WarningsFlags) install-binaries install-libraries
nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) $(WarningsFlags) TCLSH_NATIVE="$(tclWin32Exe)" all
nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) $(WarningsFlags) TCLSH_NATIVE="$(tclWin32Exe)" install-binaries install-libraries
copy /Y ..\license.terms "$(OutDir)\tklicense.terms"
</NMakeBuildCommandLine>
</PropertyGroup>
Expand Down
Loading