I would consider copperspice "experimental" for the time being. The developers tested it on linux, windows, and macos, but not BSD. Several issues have been identified already: * differences in BSD install from GNU install caused fatal build failure (already fixed in v1.0.2) * It's not jobs safe (not reproducible on Linux, I suspect this is another difference of the install programs * specs don't exist for any BSD * qmutex was implemented for non-linux, non-windows * libtool is missing --tag * Makefile template missing dozens of lines to support OSTYPE_FREEBSD (or OSTYPE_BSD ?) which also needs to be implemented * FreeBSD 9 (and presumably 8) fails with "to_string" is not recognized as std namespace despite using gcc48 to build * FreeBSD10/i386 fails because of c++11 narrowing rules violations The upsteam is already aware of some of these issues and is committed to make CopperSpice work on BSD as a first class citizen. So this initial import might be considered a work in progress. I've been working on a jobs-safe problem workaround but hit another jobs-safe failure. ===== Copperspice is a C++ library derived from the existing Qt 4.8 framework. The goal was to change the core design of the libraries, leveraging template functionality and C++11 capabilities. The redesign allowed the Qt Meta-Object Compiler (moc) system to be completely removed. Moc is a code generator and does not support many aspects of C++ including templates, complex data types, static type checking, and relies heavily on string comparisons. Removing moc improves runtime performance, reduces the complexity of the build process, and allows more issues to be detected at compile time. Key features: * Qt Meta-Object Compiler (moc) is obsolete * Written in C++11 * Library links directory to any standard C++ application * A template class can inherit from QObject * Copperspice includes several Qt5 classes
66 lines
1.9 KiB
Makefile
66 lines
1.9 KiB
Makefile
# Created by: marino@FreeBSD.org
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= copperspice
|
|
PORTVERSION= 1.0.3
|
|
CATEGORIES= graphics
|
|
MASTER_SITES= http://download.copperspice.com/copperspice/source/
|
|
|
|
MAINTAINER= marino@FreeBSD.org
|
|
COMMENT= Modern cross-platform C++ GUI library (derived from Qt 4.8)
|
|
|
|
LICENSE= LGPL21
|
|
|
|
BUILD_DEPENDS= fc-cache:${PORTSDIR}/x11-fonts/fontconfig
|
|
LIB_DEPENDS= libaudio.so:${PORTSDIR}/audio/nas \
|
|
libfreetype.so:${PORTSDIR}/print/freetype2
|
|
|
|
USES= compiler:c++11-lib gmake iconv libtool pkgconfig \
|
|
tar:bz2
|
|
USE_XORG= ice sm x11 xcursor xext xi xinerama xrandr
|
|
USE_GNOME= glib20
|
|
USE_GL= gl
|
|
GNU_CONFIGURE= yes
|
|
INSTALL_TARGET= install-strip
|
|
CFLAGS+= -I${LOCALBASE}/include \
|
|
-I${LOCALBASE}/include/glib-2.0 \
|
|
-I${LOCALBASE}/lib/glib-2.0/include \
|
|
-I${LOCALBASE}/include/freetype2
|
|
LDFLAGS+= -L${ICONV_PREFIX}/lib ${ICONV_LIB} -L${LOCALBASE}/lib
|
|
|
|
CONFIGURE_ARGS= INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
|
|
INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
|
|
INSTALL_DATA="${INSTALL_DATA}" \
|
|
INSTALL="${INSTALL}" \
|
|
OSTYPE=FREEBSD
|
|
CONFIGURE_ENV= ZLIB_LIBS="-lz" ZLIB_CFLAGS="-I/usr/include -L/usr/lib"
|
|
MAKE_ENV= INSTALL_STRIP_PROGRAM="${INSTALL_PROGRAM}"
|
|
PLIST_SUB= SHORT_VER=0 LONG_VER=0.0.0
|
|
|
|
MAKE_JOBS_UNSAFE= yes
|
|
WITH_OPENSSL_PORT= yes
|
|
|
|
BROKEN_FreeBSD_8= error: 'to_string' is not a member of 'std'
|
|
BROKEN_FreeBSD_9= error: 'to_string' is not a member of 'std'
|
|
BROKEN_i386= qx11embed_x11.cpp:470:20: non-constant-expression\
|
|
cannot be narrowed from type 'unsigned int' to 'long'\
|
|
in initializer list [-Wc++11-narrowing]
|
|
|
|
#OPTIONS_DEFINE= OPENSSL #MYSQL PGSQL
|
|
#OPTIONS_DEFAULT= OPENSSL
|
|
#OPENSSL_USE= OPENSSL
|
|
#.include <bsd.port.options.mk>
|
|
|
|
post-extract:
|
|
${MKDIR} ${WRKSRC}/mkspecs/bsd-g++
|
|
|
|
post-patch:
|
|
${REINPLACE_CMD} -e 's|@INSTALL@|${INSTALL}|g' \
|
|
${WRKSRC}/src/webkit/Makefile.in
|
|
|
|
post-configure:
|
|
${REINPLACE_CMD} -e '/^hardcode_libdir_flag/ \
|
|
s|spec=.*|spec="-Wl,-rpath,${LOCALBASE}/lib"|' \
|
|
${WRKSRC}/libtool
|
|
|
|
.include <bsd.port.mk>
|