瀏覽代碼

Better qca ebuild. merged with one from gentoo devs

Ri0n 10 年之前
父節點
當前提交
a2514f56b6
共有 1 個文件被更改,包括 56 次插入46 次删除
  1. 56 46
      app-crypt/qca/qca-9999-r1.ebuild

+ 56 - 46
app-crypt/qca/qca-9999-r1.ebuild

@@ -4,40 +4,54 @@
 
 EAPI="5"
 
-inherit eutils multilib cmake-utils git-2
+inherit eutils multilib multibuild cmake-utils git-2
 
 DESCRIPTION="Qt Cryptographic Architecture (QCA)"
 HOMEPAGE="http://delta.affinix.com/qca/"
 EGIT_REPO_URI="git://anongit.kde.org/qca"
 
-LICENSE="LGPL-2"
+LICENSE="LGPL-2.1"
 SLOT="2"
 KEYWORDS=""
-IUSE="aqua botan debug doc examples gpg gcrypt logger nss pkcs11 +qt4 qt5 sasl softstore ssl test"
+IUSE="botan debug doc examples gpg gcrypt logger nss pkcs11 +qt4 qt5 sasl softstore ssl test"
 RESTRICT="test"
 
-RDEPEND="botan? ( dev-libs/botan )
-	gpg? ( app-crypt/gnupg )
+RDEPEND="
+	!<app-crypt/qca-cyrus-sasl-2.1.0
+	!<app-crypt/qca-gnupg-2.1.0
+	!<app-crypt/qca-logger-2.1.0
+	!<app-crypt/qca-ossl-2.1.0
+	!<app-crypt/qca-pkcs11-2.1.0
+	botan? ( dev-libs/botan )
 	gcrypt? ( dev-libs/libgcrypt )
+	gpg? ( app-crypt/gnupg )
 	nss? ( dev-libs/nss )
-	sasl? ( dev-libs/cyrus-sasl )
-	ssl? ( dev-libs/openssl )
 	pkcs11? ( dev-libs/pkcs11-helper )
 	qt4? ( dev-qt/qtcore:4[debug?] )
 	qt5? ( dev-qt/qtcore:5[debug?]
-	       dev-qt/qtnetwork:5[debug?] )"
+	       dev-qt/qtnetwork:5[debug?] )
+	sasl? ( dev-libs/cyrus-sasl )
+	ssl? ( dev-libs/openssl )"
+
 DEPEND="${RDEPEND} qt4? ( dev-qt/qttest:4[debug?] )
 	qt5? ( dev-qt/qttest:5[debug?] )"
+
 REQUIRED_USE="|| ( qt4 qt5 )"
 
-wrap_stage() {
-	stage=$1
-	for qt in qt4 qt5; do
-		use $qt && {
-			BUILD_DIR="${WORKDIR}/${PN}-${qt}-build" \
-			QT=$qt $stage
-		}
-	done
+DOCS=( README TODO )
+
+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()
@@ -51,48 +65,44 @@ src_configure()
 			-DQCA_MAN_INSTALL_DIR="${EPREFIX}/usr/share/man"
 			-DQCA_INCLUDE_INSTALL_DIR="${EPREFIX}"/usr/include
 			-DBUILD_PLUGINS=none
+			$(qca_plugin_use botan)
+			$(qca_plugin_use gcrypt)
+			$(qca_plugin_use gpg gnupg)
+			$(qca_plugin_use logger)
+			$(qca_plugin_use nss)
+			$(qca_plugin_use pkcs11)
+			$(qca_plugin_use sasl cyrus-sasl)
+			$(qca_plugin_use softstore)
+			$(qca_plugin_use ssl ossl)
+			$(cmake-utils_use_build test TESTS)
 		)
-		[ "$QT" = qt4 ] && mycmakeargs+=("-DQT4_BUILD=1")
-		[ "$QT" = qt5 ] && mycmakeargs+=("-DQCA_SUFFIX=qt5")
-		use test || mycmakeargs+=("-DBUILD_TESTS=OFF")
-		use botan && mycmakeargs+=("-DWITH_botan_PLUGIN=yes")
-		use gcrypt && mycmakeargs+=("-DWITH_gcrypt_PLUGIN=yes")
-		use gpg && mycmakeargs+=("-DWITH_gnupg_PLUGIN=yes")
-		use logger && mycmakeargs+=("-DWITH_logger_PLUGIN=yes")
-		use nss && mycmakeargs+=("-DWITH_nss_PLUGIN=yes")
-		use pkcs11 && mycmakeargs+=("-DWITH_pkcs11_PLUGIN=yes")
-		use sasl && mycmakeargs+=("-DWITH_cyrus-sasl_PLUGIN=yes")
-		use softstore && mycmakeargs+=("-DWITH_softstore_PLUGIN=yes")
-		use ssl && mycmakeargs+=("-DWITH_ossl_PLUGIN=yes")
-		#use wincrypto && mycmakeargs+=("-DWITH_wincrypto_PLUGIN=yes")
+		[ "$MULTIBUILD_VARIANT" = qt4 ] && mycmakeargs+=("-DQT4_BUILD=1")
+		[ "$MULTIBUILD_VARIANT" = qt5 ] && mycmakeargs+=("-DQCA_SUFFIX=qt5")
+
 		cmake-utils_src_configure
 	}
-	wrap_stage my_configure
+	multibuild_foreach_variant my_configure
 }
 
 src_compile()
 {
-	wrap_stage cmake-utils_src_compile
+	multibuild_foreach_variant cmake-utils_src_compile
 }
 
 src_test()
 {
-	wrap_stage enable_cmake-utils_src_test
+	multibuild_foreach_variant enable_cmake-utils_src_test
 }
 
 src_install() {
-	my_install() {
-		cmake-utils_src_install
-		dodoc README TODO || die "dodoc failed"
-
-		if use doc; then
-			dohtml "${S}"/apidocs/html/* || die "Failed to install documentation"
-		fi
-
-		if use examples; then
-			insinto /usr/share/doc/${PF}/
-			doins -r "${S}"/examples || die "Failed to install examples"
-		fi
-	}
-	wrap_stage my_install
+	multibuild_foreach_variant cmake-utils_src_install
+
+	if use doc; then
+		dohtml "${S}"/apidocs/html/*
+	fi
+
+	if use examples; then
+		insinto /usr/share/doc/${PF}/
+		doins -r "${S}"/examples
+	fi
 }