Skip to content

Change XZ build configure to absolute path #27

Change XZ build configure to absolute path

Change XZ build configure to absolute path #27

Workflow file for this run

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