aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES8
-rw-r--r--Mk/Uses/qmake.mk66
2 files changed, 74 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 4ee947add96e..a432eff5b785 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,14 @@ in the release notes and/or placed into UPDATING.
All ports committers are allowed to commit to this file.
+20131008:
+AUTHOR: makc@FreeBSD.org
+
+ New USES: qmake, configure tool widely used among Qt based projects.
+ New framework is stage-friendly. To convert existing ports remove
+ custom configure target, adjust QMAKE_ENV, QMAKE_ARGS, QMAKE_PRO if
+ required (see Mk/Uses/qmake.mk for details).
+
20131005:
AUTHOR: bdrewery@FreeBSD.org
diff --git a/Mk/Uses/qmake.mk b/Mk/Uses/qmake.mk
new file mode 100644
index 000000000000..f22f2b560896
--- /dev/null
+++ b/Mk/Uses/qmake.mk
@@ -0,0 +1,66 @@
+# $FreeBSD$
+#
+# Provide support for qmake based projects
+#
+# MAINTAINER: kde@FreeBSD.org
+#
+# Feature: qmake
+# Usage: USES=qmake or USES=qmake:ARGS
+# Must be used along with 'USE_QT4= qmake_build'
+# Valid ARGS: norecursive
+# ARGS description:
+# norecursive Don't pass -recursive argument to qmake binary
+#
+#
+# Variables for ports:
+# QMAKE_ENV - Environment passed to qmake.
+# Default: ${CONFIGURE_ENV}
+# QMAKE_ARGS - Arguments passed to qmake
+# Default: see below
+# QMAKE_PRO - qmake project file.
+# Default: empty (autodetect)
+#
+# User defined variables:
+# QMAKE_VERBOSE - Enable verbose configure output
+#
+
+.if !defined(_INCLUDE_USES_QMAKE_MK)
+_INCLUDE_USES_QMAKE_MK= yes
+
+.if !defined(NO_STAGE)
+DESTDIRNAME= INSTALL_ROOT
+.endif
+
+.if defined(qmake_ARGS)
+. if ${qmake_ARGS} == "norecursive"
+QMAKE_NORECURSIVE= yes
+. else
+IGNORE= Incorrect 'USES+= qmake' usage: argument '${qmake_ARGS}' is not recognized
+. endif
+.endif
+
+.if ${USE_QT4:Mqmake_build} == "" && ${USE_QT4:Mqmake} == ""
+IGNORE= 'USES+= qmake' must be accompanied with 'USE_QT4= qmake_build'
+.endif
+
+# CC is respected via QMAKESPEC (see Mk/bsd.qt.mk)
+QMAKE_ARGS+= -spec ${QMAKESPEC} \
+ QMAKE_CFLAGS="${CFLAGS}" \
+ QMAKE_CXXFLAGS="${CXXFLAGS}" \
+ QMAKE_LFLAGS="${LDFLAGS}" \
+ PREFIX=${PREFIX}
+
+.if !defined(QMAKE_NORECURSIVE)
+QMAKE_ARGS+= -recursive
+.endif
+
+.if defined(QMAKE_VERBOSE)
+QMAKE_ARGS+= -d
+.endif
+
+.if !target(do-configure)
+do-configure:
+ @cd ${CONFIGURE_WRKSRC} && ${SETENV} ${QMAKE_ENV} ${QMAKE} ${QMAKE_ARGS} ${QMAKE_PRO}
+.endif
+
+.endif #!defined(_INCLUDE_USES_QMAKE_MK)