devel/objfw: Portable, lightweight framework for the Objective-C language

ObjFW is a highly portable, lightweight, general purpose, open source
Objective-C framework with full Objective-C 2.0, blocks and ARC support,
providing not only basic classes like strings, arrays and dictionaries,
but also providing abstractions for OS-dependant functionality like
asynchronous sockets.

While a lot of the core API is similar to Foundation, it breaks with
Foundation's API on purpose in many places to embrace new features which
Foundation can't use completely due to its backwards compatibility. One
such example are exceptions, which are a first class citizen in ObjFW
and not merely to inform the programmer of his wrongdoings like in
Foundation.

ObjFW runs on a huge list of platforms and offers the same API on all of
them so that software written using ObjFW runs on all platforms
supported by ObjFW without #ifdef hells or the like. It does not only
run on almost any POSIX system that supports GCC >= 4, but it also works
on Windows and niche platforms like the PlayStation Portable.

WWW: https://objfw.nil.im/

PR:		273835
This commit is contained in:
Jonathan Schleifer 2023-09-16 19:17:06 +02:00 committed by Robert Clausecker
parent 6db214401e
commit 6e494f266b
5 changed files with 1666 additions and 0 deletions

View file

@ -1663,6 +1663,7 @@
SUBDIR += obby
SUBDIR += objconv
SUBDIR += objecthash
SUBDIR += objfw
SUBDIR += ocaml-annexlib
SUBDIR += ocaml-calendar
SUBDIR += ocaml-camljava

67
devel/objfw/Makefile Normal file
View file

@ -0,0 +1,67 @@
PORTNAME= objfw
DISTVERSION= 1.0.3
CATEGORIES= devel lang
MASTER_SITES= https://objfw.nil.im/downloads/
MAINTAINER= js@nil.im
COMMENT= Portable, lightweight framework for the Objective-C language
WWW= https://objfw.nil.im/
LICENSE= QPL GPLv2 GPLv3
LICENSE_COMB= dual
LICENSE_NAME_QPL= Q Public License
LICENSE_FILE_QPL= ${WRKSRC}/LICENSE.QPL
LICENSE_PERMS_QPL= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BROKEN_armv6= test suite fails
BROKEN_armv7= test suite fails
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
TEST_TARGET= check
OPTIONS_DEFINE= DOCS
OPTIONS_SINGLE= SSL
OPTIONS_SINGLE_SSL= OPENSSL GNUTLS NOSSL
OPTIONS_DEFAULT= OPENSSL
NOSSL_DESC= no SSL/TLS support
DOCS_BUILD_DEPENDS= doxygen:devel/doxygen
OPENSSL_CONFIGURE_ON= --with-tls=openssl
OPENSSL_PLIST_SUB= TLS=""
OPENSSL_CPPFLAGS= -I${OPENSSLINC}
OPENSSL_LDFLAGS= -L${OPENSSLLIB}
OPENSSL_USES= ssl
GNUTLS_CONFIGURE_ON= --with-tls=gnutls
GNUTLS_PLIST_SUB= TLS=""
GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
GNUTLS_USES= pkgconfig
NOSSL_CONFIGURE_ON= --without-tls
NOSSL_PLIST_SUB= TLS="@comment "
do-build-DOCS-on:
cd ${WRKSRC} && ${DO_MAKE_BUILD} docs
do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/objfw)
post-install:
.for i in objfw-new ofarc ofdns ofhash ofhttp
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/$i
.endfor
.for i in libobjfw.so.1 libobjfwrt.so.1
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/$i
.endfor
post-install-OPENSSL-on:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libobjfwtls.so.1
post-install-GNUTLS-on:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libobjfwtls.so.1
.include <bsd.port.mk>

3
devel/objfw/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1694727422
SHA256 (objfw-1.0.3.tar.gz) = 1c81d7d03578b2d9084fc5d8722d4eaa4bdc2f3f09ce41231e7ceab8212fae17
SIZE (objfw-1.0.3.tar.gz) = 787055

18
devel/objfw/pkg-descr Normal file
View file

@ -0,0 +1,18 @@
ObjFW is a highly portable, lightweight, general purpose, open source
Objective-C framework with full Objective-C 2.0, blocks and ARC support,
providing not only basic classes like strings, arrays and dictionaries,
but also providing abstractions for OS-dependant functionality like
asynchronous sockets.
While a lot of the core API is similar to Foundation, it breaks with
Foundation's API on purpose in many places to embrace new features which
Foundation can't use completely due to its backwards compatibility. One
such example are exceptions, which are a first class citizen in ObjFW
and not merely to inform the programmer of his wrongdoings like in
Foundation.
ObjFW runs on a huge list of platforms and offers the same API on all of
them so that software written using ObjFW runs on all platforms
supported by ObjFW without #ifdef hells or the like. It does not only
run on almost any POSIX system that supports GCC >= 4, but it also works
on Windows and niche platforms like the PlayStation Portable.

1577
devel/objfw/pkg-plist Normal file

File diff suppressed because it is too large Load diff