Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 2f301d2

Browse files
committedFeb 12, 2024·
libobjc2: Add clang64 support
Upstream libobjc2 now has clang64 support (via gnustep/libobjc2#276). Cherry-pick that commit and add clang64 to the build matrix for libobjc2. This cherry-picked commit also fixes the ".dll.a" suffix for library objects.
1 parent e17b548 commit 2f301d2

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed
 

‎mingw-w64-libobjc2/PKGBUILD

+22-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pkgver=2.2
77
pkgrel=1
88
pkgdesc="Objective-C runtime library intended for use with Clang. (mingw-w64)"
99
arch=('any')
10-
mingw_arch=('mingw64' 'ucrt64')
10+
mingw_arch=('mingw64' 'ucrt64' 'clang64')
1111
url="https://github.com/gnustep/libobjc2"
1212
license=('spdx:MIT')
1313
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
@@ -16,14 +16,18 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
1616
'git')
1717
source=("https://github.com/gnustep/${_realname}/archive/refs/tags/v${pkgver}.zip"
1818
# Install runtime files in CMAKE_INSTALL_BINDIR when GNUstep is not installed
19-
"https://github.com/gnustep/libobjc2/commit/639c676bb8033422539e19a2e2888bdbd06507e5.patch")
19+
"https://github.com/gnustep/libobjc2/commit/639c676bb8033422539e19a2e2888bdbd06507e5.patch"
20+
# Support building on msys/clang64
21+
"https://github.com/gnustep/libobjc2/commit/1ff5e1298dd76aa370d5a12b690857f9a47b4b56.patch")
2022
sha256sums=('3f72ea4955e3e4671d64c64c339f4947b6112b1b2dd02377c5c982057bbeda04'
21-
'aaa23146b3c2ec442b5dbf20606020bddd15230041ad738ef3a06e92d13605c3')
23+
'aaa23146b3c2ec442b5dbf20606020bddd15230041ad738ef3a06e92d13605c3'
24+
'fba7d33aa03ee7383b559c5b845063acd16b45396520250849f22559577adcc9')
2225

2326
prepare() {
2427
cd ${srcdir}/${_realname}-${pkgver}
2528

2629
patch -p1 -i ${srcdir}/639c676bb8033422539e19a2e2888bdbd06507e5.patch
30+
patch -p1 -i ${srcdir}/1ff5e1298dd76aa370d5a12b690857f9a47b4b56.patch
2731
}
2832

2933
build() {
@@ -36,7 +40,14 @@ build() {
3640
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
3741
fi
3842

39-
export LDFLAGS="-fuse-ld=lld -lstdc++ -lgcc_s"
43+
case ${MSYSTEM} in
44+
MINGW*|UCRT*)
45+
export LDFLAGS="-fuse-ld=lld -lstdc++ -lgcc_s"
46+
;;
47+
CLANG*)
48+
export LDFLAGS="-lc++"
49+
;;
50+
esac
4051

4152
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
4253
"${MINGW_PREFIX}"/bin/cmake.exe \
@@ -54,14 +65,19 @@ build() {
5465
check() {
5566
cd "${srcdir}/build-${MSYSTEM}"
5667

57-
"${MINGW_PREFIX}"/bin/cmake.exe --build . --target test
68+
declare -a extra_flags
69+
70+
if [[ ${MSYSTEM} == CLANG* ]]; then
71+
extra_flags="-E UnexpectedException*"
72+
fi
73+
74+
"${MINGW_PREFIX}"/bin/ctest.exe $extra_flags
5875
}
5976

6077
package() {
6178
cd "${srcdir}/build-${MSYSTEM}"
6279

6380
DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install .
6481

65-
mv ${pkgdir}${MINGW_PREFIX}/lib/objc.lib ${pkgdir}${MINGW_PREFIX}/lib/objc.dll.a
6682
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
6783
}

0 commit comments

Comments
 (0)
Please sign in to comment.