freebsd-ports/graphics/copperspice/Makefile
John Marino 491da91ff1 Add new port: graphics/copperspice
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
2015-06-20 16:18:13 +00:00

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>