Create .frameworks for macOS and iOS differently

FossilOrigin-Name: 5abbdc7a0a39925071a56d373ab4b27ac1b952b782b923d6cf6ab8c2fb459583
This commit is contained in:
Jonathan Schleifer 2023-09-10 23:30:05 +00:00
parent 4f1b6289ee
commit b723a43c45
2 changed files with 59 additions and 32 deletions

View file

@ -153,6 +153,7 @@ AC_DEFUN([BUILDSYS_CHECK_IOS], [
#endif
], [
host_is_ios="yes"
AC_SUBST(HOST_IS_IOS, yes)
], [
host_is_ios="no"
])
@ -318,11 +319,10 @@ AC_DEFUN([BUILDSYS_FRAMEWORK], [
case "$host_os" in
darwin*)
AS_IF([test x"$host_is_ios" = x"yes"], [
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
AS_IF([test x"$host_is_ios" = x"yes"], [
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/Frameworks/$$out/$${out%.framework}'
], [
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}'
])

View file

@ -208,28 +208,54 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
${FRAMEWORK} ${FRAMEWORK_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
${LINK_STATUS}
out="$@"; \
if test x"@HOST_IS_IOS@" = x"yes"; then \
if rm -fr $@ && \
${MKDIR_P} $@/Versions/${LIB_MAJOR} && \
${MAKE} @MAKEFLAGS_SILENT@ \
COPY_HEADERS_IF_SUBDIR=${includesubdir} \
COPY_HEADERS_DESTINATION=$$PWD/$@/Headers \
copy-headers-into-framework && \
if test -f Info.plist; then \
${INSTALL} -m 644 Info.plist $@/Info.plist; \
fi && \
if test -f module.modulemap; then \
${MKDIR_P} $@/Modules && \
${INSTALL} -m 644 module.modulemap \
$@/Modules/module.modulemap; \
fi && \
${LD} -o $@/$${out%.framework} \
${LIB_OBJS} ${LIB_OBJS_EXTRA} ${FRAMEWORK_LDFLAGS} \
${FRAMEWORK_LDFLAGS_INSTALL_NAME} ${LDFLAGS} \
${FRAMEWORK_LIBS} && \
${CODESIGN} -fs ${CODESIGN_IDENTITY} $@; then \
${LINK_OK}; \
else \
rm -fr $$out; false; \
${LINK_FAILED}; \
fi; \
else \
versiondir="$@/Versions/${LIB_MAJOR}"; \
if rm -fr $@ && \
${MKDIR_P} $$versiondir && \
${LN_S} ${LIB_MAJOR} $@/Versions/Current && \
${MAKE} @MAKEFLAGS_SILENT@ \
COPY_HEADERS_IF_SUBDIR=${includesubdir} \
COPY_HEADERS_DESTINATION=$$PWD/$@/Versions/${LIB_MAJOR}/Headers\
COPY_HEADERS_DESTINATION=$$PWD/$$versiondir/Headers \
copy-headers-into-framework && \
${LN_S} Versions/Current/Headers $@/Headers && \
if test -f Info.plist; then \
${MKDIR_P} $@/Versions/${LIB_MAJOR}/Resources && \
${MKDIR_P} $$versiondir/Resources && \
${INSTALL} -m 644 Info.plist \
$@/Versions/${LIB_MAJOR}/Resources/Info.plist && \
$$versiondir/Resources/Info.plist && \
${LN_S} Versions/Current/Resources $@/Resources; \
fi && \
if test -f module.modulemap; then \
${MKDIR_P} $@/Versions/${LIB_MAJOR}/Modules && \
${MKDIR_P} $$versiondir/Modules && \
${INSTALL} -m 644 module.modulemap \
$@/Versions/${LIB_MAJOR}/Modules/module.modulemap && \
$$versiondir/Modules/module.modulemap && \
${LN_S} Versions/Current/Modules $@/Modules; \
fi && \
${LD} -o $@/Versions/${LIB_MAJOR}/$${out%.framework} ${LIB_OBJS} \
${LIB_OBJS_EXTRA} ${FRAMEWORK_LDFLAGS} \
${LD} -o $$versiondir/$${out%.framework} \
${LIB_OBJS} ${LIB_OBJS_EXTRA} ${FRAMEWORK_LDFLAGS} \
${FRAMEWORK_LDFLAGS_INSTALL_NAME} ${LDFLAGS} \
${FRAMEWORK_LIBS} && \
${LN_S} Versions/Current/$${out%.framework} \
@ -239,6 +265,7 @@ ${FRAMEWORK} ${FRAMEWORK_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
else \
rm -fr $$out; false; \
${LINK_FAILED}; \
fi; \
fi
copy-headers-into-framework: