Skip to content

Commit 9720624

Browse files
committed
Migrate xz to generate static XCFramework
1 parent 0cab09c commit 9720624

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

Makefile

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ downloads/bzip2-$(BZIP2_VERSION).tgz:
144144
clean-XZ:
145145
rm -rf build/*/xz-$(XZ_VERSION)-* \
146146
build/*/xz \
147-
build/*/Support/XZ
147+
build/*/Support/XZ.xcframework
148148

149149
# Download original XZ source code archive.
150150
downloads/xz-$(XZ_VERSION).tgz:
@@ -426,10 +426,22 @@ $$(BZIP2_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(BZIP2_DIR-$
426426
mkdir -p build/$(os)/bzip2/lib/$(sdk)
427427
xcrun --sdk $(sdk) libtool -static -o $$@ $$^
428428

429+
###########################################################################
430+
# SDK: XZ (LZMA)
431+
###########################################################################
432+
433+
XZ_FATLIB-$$(sdk)=build/$(os)/xz/lib/$(sdk)/liblzma.a
434+
435+
$$(XZ_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(XZ_DIR-$$(target))/src/liblzma/.libs/liblzma.a)
436+
mkdir -p build/$(os)/xz/lib/$(sdk)
437+
xcrun --sdk $(sdk) libtool -static -o $$@ $$^
438+
429439
# Dump environment variables (for debugging purposes)
430440
vars-$(sdk):
431441
@echo "SDK_TARGETS-$(sdk): $$(SDK_TARGETS-$(sdk))"
432442
@echo "SDK_ARCHES-$(sdk): $$(SDK_ARCHES-$(sdk))"
443+
@echo "BZIP2_FATLIB-$(sdk): $$(BZIP2_FATLIB-$(sdk))"
444+
@echo "XZ_FATLIB-$(sdk): $$(XZ_FATLIB-$(sdk))"
433445

434446
endef # build-sdk
435447

@@ -456,7 +468,7 @@ $(os): dist/Python-$(PYTHON_VER)-$(os)-support.$(BUILD_NUMBER).tar.gz
456468
clean-$(os):
457469
rm -rf build/$(os)
458470

459-
dist/Python-$(PYTHON_VER)-$(os)-support.$(BUILD_NUMBER).tar.gz: $$(BZIP2_XCFRAMEWORK-$(os)) $$(XZ_FRAMEWORK-$(os)) $$(OPENSSL_FRAMEWORK-$(os)) $$(LIBFFI_FRAMEWORK-$(os)) $$(PYTHON_FRAMEWORK-$(os))
471+
dist/Python-$(PYTHON_VER)-$(os)-support.$(BUILD_NUMBER).tar.gz: $$(BZIP2_XCFRAMEWORK-$(os)) $$(XZ_XCFRAMEWORK-$(os)) $$(OPENSSL_FRAMEWORK-$(os)) $$(LIBFFI_FRAMEWORK-$(os)) $$(PYTHON_FRAMEWORK-$(os))
460472
mkdir -p dist
461473
echo "Python version: $(PYTHON_VERSION) " > build/$(os)/Support/VERSIONS
462474
echo "Build: $(BUILD_NUMBER)" >> build/$(os)/Support/VERSIONS
@@ -520,24 +532,14 @@ $$(BZIP2_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(BZIP2_FATLIB-$$(sd
520532
# Build: XZ (LZMA)
521533
###########################################################################
522534

523-
XZ_FRAMEWORK-$(os)=build/$(os)/Support/XZ
524-
525-
XZ-$(os): $$(XZ_FRAMEWORK-$(os))
526-
527-
$$(XZ_FRAMEWORK-$(os)): build/$(os)/xz/lib/liblzma.a
528-
# Create framework directory structure
529-
mkdir -p $$(XZ_FRAMEWORK-$(os))
530-
531-
# Copy the headers
532-
cp -f -r build/$(os)/xz/include $$(XZ_FRAMEWORK-$(os))/Headers
535+
XZ_XCFRAMEWORK-$(os)=build/$(os)/Support/XZ.xcframework
533536

534-
# Create the fat library
535-
xcrun libtool -no_warning_for_no_symbols -static \
536-
-o $$(XZ_FRAMEWORK-$(os))/libxz.a $$^
537+
XZ-$(os): $$(XZ_XCFRAMEWORK-$(os))
537538

538-
build/$(os)/xz/lib/liblzma.a: $$(foreach target,$$(TARGETS-$(os)),$$(XZ_DIR-$$(target))/src/liblzma/.libs/liblzma.a)
539-
mkdir -p build/$(os)
540-
xcrun lipo -create -o $$@ $$^
539+
$$(XZ_XCFRAMEWORK-$(os)): $$(foreach sdk,$$(SDKS-$(os)),$$(XZ_FATLIB-$$(sdk)))
540+
mkdir -p $$(XZ_XCFRAMEWORK-$(os))
541+
xcodebuild -create-xcframework \
542+
-output $$@ $$(foreach sdk,$$(SDKS-$(os)),-library $$(XZ_FATLIB-$$(sdk)) -headers build/$(os)/xz/include)
541543

542544
###########################################################################
543545
# Build: libFFI
@@ -609,7 +611,7 @@ $$(PYTHON_DIR-$(os))/Makefile: downloads/Python-$(PYTHON_VERSION).tgz
609611
$$(PYTHON_CONFIGURE-$(os))
610612

611613
# Build Python
612-
$$(PYTHON_DIR-$(os))/dist/lib/libpython$(PYTHON_VER).a: $$(BZIP2_XCFRAMEWORK-$(os)) $$(XZ_FRAMEWORK-$(os)) $$(OPENSSL_FRAMEWORK-$(os)) $$(LIBFFI_FRAMEWORK-$(os)) $$(PYTHON_DIR-$(os))/Makefile
614+
$$(PYTHON_DIR-$(os))/dist/lib/libpython$(PYTHON_VER).a: $$(BZIP2_XCFRAMEWORK-$(os)) $$(XZ_XCFRAMEWORK-$(os)) $$(OPENSSL_FRAMEWORK-$(os)) $$(LIBFFI_FRAMEWORK-$(os)) $$(PYTHON_DIR-$(os))/Makefile
613615
# Build target Python
614616
cd $$(PYTHON_DIR-$(os)) && PATH="$(PROJECT_DIR)/$(PYTHON_DIR-$(os))/dist/bin:$(PATH)" make all install
615617

@@ -653,7 +655,7 @@ vars-$(os): $$(foreach target,$$(TARGETS-$(os)),vars-$$(target)) $$(foreach arch
653655
@echo "ARCHES-$(os): $$(ARCHES-$(os))"
654656
@echo "OPENSSL_FRAMEWORK-$(os): $$(OPENSSL_FRAMEWORK-$(os))"
655657
@echo "BZIP2_XCFRAMEWORK-$(os): $$(BZIP2_XCFRAMEWORK-$(os))"
656-
@echo "XZ_FRAMEWORK-$(os): $$(XZ_FRAMEWORK-$(os))"
658+
@echo "XZ_XCFRAMEWORK-$(os): $$(XZ_XCFRAMEWORK-$(os))"
657659
@echo "LIBFFI_FRAMEWORK-$(os): $$(LIBFFI_FRAMEWORK-$(os))"
658660
@echo "PYTHON_FRAMEWORK-$(os): $$(PYTHON_FRAMEWORK-$(os))"
659661
@echo "LIBFFI_DIR-$(os): $$(LIBFFI_DIR-$(os))"

0 commit comments

Comments
 (0)