commit:     9146141c89bf4249e78e602b1c18e858adca2143
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 28 18:51:43 2014 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Fri Nov 28 18:53:02 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/qt.git;a=commit;h=9146141c

[app-crypt/qca] Add experimental multibuild support.

This is subject to change as upstream is still in flux.

Package-Manager: portage-2.2.14

---
 app-crypt/qca/qca-9999.ebuild | 76 +++++++++++++++++++++++++++++++------------
 1 file changed, 55 insertions(+), 21 deletions(-)

diff --git a/app-crypt/qca/qca-9999.ebuild b/app-crypt/qca/qca-9999.ebuild
index 8e313ba..f1c1452 100644
--- a/app-crypt/qca/qca-9999.ebuild
+++ b/app-crypt/qca/qca-9999.ebuild
@@ -4,7 +4,7 @@
 
 EAPI=5
 
-inherit multilib cmake-utils git-r3
+inherit cmake-utils multilib multibuild git-r3
 
 DESCRIPTION="Qt Cryptographic Architecture (QCA)"
 HOMEPAGE="http://delta.affinix.com/qca/";
@@ -15,7 +15,6 @@ SLOT="2"
 KEYWORDS=""
 
 IUSE="botan debug doc examples gcrypt gpg logger nss openssl pkcs11 +qt4 qt5 
sasl softstore test"
-REQUIRED_USE="^^ ( qt4 qt5 )"
 
 RDEPEND="
        !app-crypt/qca-cyrus-sasl
@@ -54,31 +53,66 @@ qca_plugin_use() {
        echo "-DWITH_${2:-$1}_PLUGIN=$(use $1 && echo yes || echo no)"
 }
 
+pkg_setup() {
+       MULTIBUILD_VARIANTS=()
+       if use qt4; then
+               MULTIBUILD_VARIANTS+=( qt4 )
+       fi
+       if use qt5; then
+               MULTIBUILD_VARIANTS+=( qt5 )
+       fi
+}
+
 src_configure() {
-       local mycmakeargs=(
-               -DQCA_PLUGINS_INSTALL_DIR="${EPREFIX}/usr/$(get_libdir)/$(usex 
qt4 qt4 qt5)/plugins"
-               -DQCA_FEATURE_INSTALL_DIR="${EPREFIX}/usr/$(usex qt4 share 
$(get_libdir))/$(usex qt4 qt4 qt5)/mkspecs/features"
-               $(cmake-utils_use qt4 QT4_BUILD)
-               $(qca_plugin_use botan)
-               $(qca_plugin_use gcrypt)
-               $(qca_plugin_use gpg gnupg)
-               $(qca_plugin_use logger)
-               $(qca_plugin_use nss)
-               $(qca_plugin_use openssl ossl)
-               $(qca_plugin_use pkcs11)
-               $(qca_plugin_use sasl cyrus-sasl)
-               $(qca_plugin_use softstore)
-               $(cmake-utils_use_build test TESTS)
-       )
-       cmake-utils_src_configure
+       myconfigure() {
+               local mycmakeargs=(
+                       
-DQCA_PLUGINS_INSTALL_DIR="${EPREFIX}/usr/$(get_libdir)/$(usex qt4 qt4 
qt5)/plugins"
+                       -DQCA_FEATURE_INSTALL_DIR="${EPREFIX}/usr/$(usex qt4 
share $(get_libdir))/$(usex qt4 qt4 qt5)/mkspecs/features"
+                       $(qca_plugin_use botan)
+                       $(qca_plugin_use gcrypt)
+                       $(qca_plugin_use gpg gnupg)
+                       $(qca_plugin_use logger)
+                       $(qca_plugin_use nss)
+                       $(qca_plugin_use openssl ossl)
+                       $(qca_plugin_use pkcs11)
+                       $(qca_plugin_use sasl cyrus-sasl)
+                       $(qca_plugin_use softstore)
+                       $(cmake-utils_use_build test TESTS)
+               )
+
+               if [[ ${MULTIBUILD_VARIANT} = qt4 ]]; then
+                       mycmakeargs+=( -DQT4_BUILD=true )
+               fi
+
+               if [[ ${MULTIBUILD_VARIANT} = qt5 ]]; then
+                       mycmakeargs+=( -DQCA_SUFFIX=QT5 )
+               fi
+
+               cmake-utils_src_configure
+       }
+
+       multibuild_foreach_variant myconfigure
 }
 
-src_install() {
-       cmake-utils_src_install
+src_compile() {
+       multibuild_foreach_variant cmake-utils_src_compile
 
        if use doc; then
-               pushd "${BUILD_DIR}" >/dev/null
+               pushd "${BUILD_DIR}" > /dev/null
                doxygen Doxyfile || die
+               popd > /dev/null
+       fi
+}
+
+src_test() {
+       multibuild_foreach_variant cmake-utils_src_test
+}
+
+src_install() {
+       multibuild_foreach_variant cmake-utils_src_install
+
+       if use doc; then
+               pushd "${BUILD_DIR}" > /dev/null
                dohtml apidocs/html/*
                popd >/dev/null
        fi

Reply via email to