Change XZ build configure to absolute path #27
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: ['main'] | |
pull_request: | |
branches: ['main'] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
fetch: | |
name: Fetch | |
runs-on: ubuntu-latest | |
outputs: | |
xz: ${{ fromJson(steps.ver.outputs.result).xz }} | |
steps: | |
- name: Get version information | |
id: ver | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { data: xz } = await github.rest.repos.getLatestRelease({ | |
owner: "tukaani-project", | |
repo: "xz", | |
}) | |
return { xz: xz.tag_name.slice(1) } | |
build: | |
name: Build | |
needs: fetch | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.13-dev'] | |
build: | |
- target: 'iphoneos.arm64' | |
sdk: 'iphoneos' | |
host: 'arm64-apple-ios' | |
- target: 'iphonesimulator.arm64' | |
sdk: 'iphonesimulator' | |
host: 'arm64-apple-ios-simulator' | |
- target: 'iphonesimulator.x86_64' | |
sdk: 'iphonesimulator' | |
host: 'x86_64-apple-ios-simulator' | |
steps: | |
- name: Checkout ${{ github.repository }} | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
id: py | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
check-latest: true | |
- name: Set version information | |
id: pyver | |
run: | | |
echo "py=$(python -V | cut -wf 2)" >> $GITHUB_OUTPUT | |
- name: Download XZ Utils | |
run: | | |
gh release download v${{ needs.fetch.outputs.xz }} -R tukaani-project/xz -p xz-${{ needs.fetch.outputs.xz }}.tar.gz | |
tar -xzf xz-${{ needs.fetch.outputs.xz }}.tar.gz | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Configure XZ Utils Build | |
working-directory: xz-${{ needs.fetch.outputs.xz }} | |
run: > | |
./configure | |
CC="xcrun --sdk ${{ matrix.build.sdk }} clang -target ${{ matrix.build.host }}" | |
CFLAGS="--sysroot=$(xcrun --sdk ${{ matrix.build.sdk }} --show-sdk-path) -mios-version-min=13.0" | |
--disable-shared | |
--enable-static | |
--host=${{ matrix.build.host }} | |
--build=arm64-apple-darwin | |
--prefix="${{ github.workspace }}/xz-${{ needs.fetch.outputs.xz }}/install" | |
- name: Build XZ Utils | |
working-directory: xz-${{ needs.fetch.outputs.xz }} | |
run: | | |
make | |
make install | |
- name: Clone python/cpython ${{ matrix.python-version }} | |
run: > | |
gh repo clone python/cpython | |
-- -b v${{ steps.pyver.outputs.py }} --depth=1 | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Add iOS/Resources/bin to PATH | |
working-directory: cpython | |
run: echo "$(pwd)/iOS/Resources/bin" >> $GITHUB_PATH | |
- name: Configure | |
working-directory: cpython | |
run: > | |
./configure | |
LIBLZMA_CFLAGS="-I../xz-{{ needs.fetch.outputs.xz }}/install/include" | |
LIBLZMA_LIBS="-L../xz-{{ needs.fetch.outputs.xz }}/install/lib -llzma" | |
--enable-framework="./iOS/Frameworks/main/" | |
--host=${{ matrix.build.host }} | |
--build=arm64-apple-darwin | |
--with-build-python="${{ steps.py.outputs.python-path }}" | |
- name: Build Python.framework | |
working-directory: cpython | |
run: | | |
make | |
make install | |
- name: Create an archive | |
working-directory: cpython | |
run: > | |
tar -czf | |
./iOS/Frameworks/dist/Python.framework.tar.gz | |
./iOS/Frameworks/dist/Python.framework |