Skip to content

Commit 0c971c6

Browse files
committed
chore: Add windows build
1 parent 16d1624 commit 0c971c6

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

.github/workflows/ci.yml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,22 @@ on:
66
workflow_dispatch:
77

88
jobs:
9-
build:
9+
build-windows:
10+
permissions:
11+
contents: write
12+
issues: write
13+
pull-requests: write
14+
15+
runs-on: windows-latest
16+
17+
steps:
18+
- name: (Python) Add msbuild to PATH
19+
uses: microsoft/setup-msbuild@v2
20+
21+
- name: (Python) Download 3.11.8 win32 source
22+
run: . scripts\ci\win32\build-python.ps1
23+
24+
build-linux:
1025
permissions:
1126
contents: write
1227
issues: write
@@ -35,8 +50,6 @@ jobs:
3550
libssl-dev:i386 \
3651
libreadline-dev:i386 \
3752
libffi-dev:i386 \
38-
wget \
39-
curl \
4053
libbz2-dev:i386 \
4154
libsqlite3-dev:i386 \
4255
liblzma-dev:i386 \

scripts/build.ps1

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# download python 3.11.8 source code
2+
curl -o Python-3.11.8.tgz https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz
3+
# extract the tarball
4+
tar -xzvf Python-3.11.8.tgz >nul 2>&1
5+
6+
Set-Location Python-3.11.8
7+
8+
$vcxprojPath = "PCbuild/pythoncore.vcxproj"
9+
$content = Get-Content $vcxprojPath -Raw # Read the entire content as a single string
10+
11+
$pattern = '</ClCompile>'
12+
$replacement = @"
13+
<RuntimeLibrary Condition="'`$(Configuration)|`$(Platform)'=='Release|Win32'">MultiThreaded</RuntimeLibrary>
14+
<RuntimeLibrary Condition="'`$(Configuration)|`$(Platform)'=='Debug|Win32'">MultiThreadedDebug</RuntimeLibrary>
15+
</ClCompile>
16+
"@
17+
18+
$modifiedContent = $content -replace [regex]::Escape($pattern), $replacement
19+
$modifiedContent | Set-Content $vcxprojPath
20+
21+
# get python external libs before build
22+
./PCbuild/get_externals.bat
23+
# build python 3.11.8 as win32 and release
24+
msbuild PCBuild/pcbuild.sln /p:Configuration=Release /p:Platform=Win32 /p:RuntimeLibrary=MT
25+
msbuild PCBuild/pcbuild.sln /p:Configuration=Debug /p:Platform=Win32 /p:RuntimeLibrary=MT
26+
# verify python is installed
27+
PCbuild/win32/python.exe --version
28+
29+
30+
mkdir D:/a/Millennium/Millennium/build/python
31+
# Move the python311.dll binary to the release directory
32+
Copy-Item D:/a/Millennium/Millennium/Python-3.11.8/PCbuild/win32/python311.dll D:/a/Millennium/Millennium/build/python/python311.dll
33+
Copy-Item D:/a/Millennium/Millennium/Python-3.11.8/PCbuild/win32/python311_d.dll D:/a/Millennium/Millennium/build/python/python311_d.dll
34+
Copy-Item D:/a/Millennium/Millennium/Python-3.11.8/PCbuild/win32/python311.lib D:/a/Millennium/Millennium/build/python/python311.lib
35+
Copy-Item D:/a/Millennium/Millennium/Python-3.11.8/PCbuild/win32/python311_d.lib D:/a/Millennium/Millennium/build/python/python311_d.lib

0 commit comments

Comments
 (0)