public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds
@ 2013-02-05 20:19 Michał Górny
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 1/3] Move header consistency checking func into multilib-build Michał Górny
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Michał Górny @ 2013-02-05 20:19 UTC (permalink / raw
  To: gentoo-dev; +Cc: kde

The idea is the same as in autotools-multilib. The eclass
is a straightfoward wrapper for cmake-utils which inherits
multilib-build and runs cmake phase functions for all ABIs (using
out-of-source build).

The eclass uses the same header consistency check as autotools-multilib
(therefore, I move the function to multilib-build).

I'm attaching an ebuild for virtualgl as an example of use.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev] [PATCH 1/3] Move header consistency checking func into multilib-build.
  2013-02-05 20:19 [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Michał Górny
@ 2013-02-05 20:19 ` Michał Górny
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils Michał Górny
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 19+ messages in thread
From: Michał Górny @ 2013-02-05 20:19 UTC (permalink / raw
  To: gentoo-dev; +Cc: kde, Michał Górny

There it can be reused by eclasses & ebuilds.
---
 gx86/eclass/autotools-multilib.eclass | 29 +-------------------------
 gx86/eclass/multilib-build.eclass     | 38 +++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/gx86/eclass/autotools-multilib.eclass b/gx86/eclass/autotools-multilib.eclass
index 97abfe6..ff7e8b8 100644
--- a/gx86/eclass/autotools-multilib.eclass
+++ b/gx86/eclass/autotools-multilib.eclass
@@ -50,34 +50,7 @@ autotools-multilib_src_install() {
 		autotools-utils_src_install
 
 		# Make sure all headers are the same for each ABI.
-		autotools-multilib_cksum() {
-			find "${ED}"usr/include -type f \
-				-exec cksum {} + | sort -k2
-		}
-
-		local cksum=$(autotools-multilib_cksum)
-		local cksum_file=${T}/.autotools-multilib_cksum
-
-		if [[ -f ${cksum_file} ]]; then
-			local cksum_prev=$(< "${cksum_file}")
-
-			if [[ ${cksum} != ${cksum_prev} ]]; then
-				echo "${cksum}" > "${cksum_file}.new"
-
-				eerror "Header files have changed between ABIs."
-
-				if type -p diff &>/dev/null; then
-					eerror "$(diff -du "${cksum_file}" "${cksum_file}.new")"
-				else
-					eerror "Old checksums in: ${cksum_file}"
-					eerror "New checksums in: ${cksum_file}.new"
-				fi
-
-				die "Header checksum mismatch, aborting."
-			fi
-		else
-			echo "${cksum}" > "${cksum_file}"
-		fi
+		multilib_check_headers
 	}
 
 	multilib_foreach_abi autotools-multilib_secure_install
diff --git a/gx86/eclass/multilib-build.eclass b/gx86/eclass/multilib-build.eclass
index 4298a54..2b6c8b5 100644
--- a/gx86/eclass/multilib-build.eclass
+++ b/gx86/eclass/multilib-build.eclass
@@ -137,5 +137,43 @@ multilib_parallel_foreach_abi() {
 	multijob_finish
 }
 
+# @FUNCTION: multilib_check_headers
+# @DESCRIPTION:
+# Check whether the header files are consistent between ABIs.
+#
+# This function needs to be called after each ABI's installation phase.
+# It obtains the header file checksums and compares them with previous
+# runs (if any). Dies if header files differ.
+multilib_check_headers() {
+	_multilib_header_cksum() {
+		find "${ED}"usr/include -type f \
+			-exec cksum {} + | sort -k2
+	}
+
+	local cksum=$(_multilib_header_cksum)
+	local cksum_file=${T}/.multilib_header_cksum
+
+	if [[ -f ${cksum_file} ]]; then
+		local cksum_prev=$(< "${cksum_file}")
+
+		if [[ ${cksum} != ${cksum_prev} ]]; then
+			echo "${cksum}" > "${cksum_file}.new"
+
+			eerror "Header files have changed between ABIs."
+
+			if type -p diff &>/dev/null; then
+				eerror "$(diff -du "${cksum_file}" "${cksum_file}.new")"
+			else
+				eerror "Old checksums in: ${cksum_file}"
+				eerror "New checksums in: ${cksum_file}.new"
+			fi
+
+			die "Header checksum mismatch, aborting."
+		fi
+	else
+		echo "${cksum}" > "${cksum_file}"
+	fi
+}
+
 _MULTILIB_BUILD=1
 fi
-- 
1.8.1.2



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils.
  2013-02-05 20:19 [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Michał Górny
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 1/3] Move header consistency checking func into multilib-build Michał Górny
@ 2013-02-05 20:19 ` Michał Górny
  2013-02-06  1:32   ` Alexis Ballier
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib Michał Górny
  2013-02-07  8:36 ` [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Ben de Groot
  3 siblings, 1 reply; 19+ messages in thread
From: Michał Górny @ 2013-02-05 20:19 UTC (permalink / raw
  To: gentoo-dev; +Cc: kde, Michał Górny

---
 gx86/eclass/cmake-multilib.eclass | 83 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 gx86/eclass/cmake-multilib.eclass

diff --git a/gx86/eclass/cmake-multilib.eclass b/gx86/eclass/cmake-multilib.eclass
new file mode 100644
index 0000000..9f41e5c
--- /dev/null
+++ b/gx86/eclass/cmake-multilib.eclass
@@ -0,0 +1,83 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/cmake-multilib.eclass,v 1.8 2013/02/01 21:39:50 mgorny Exp $
+
+# @ECLASS: cmake-multilib.eclass
+# @MAINTAINER:
+# Michał Górny <mgorny@gentoo.org>
+# @BLURB: cmake-utils wrapper for multilib builds
+# @DESCRIPTION:
+# The cmake-multilib.eclass is a cmake-utils.eclass(5) wrapper
+# introducing support for building for more than one ABI (multilib).
+#
+# Inheriting this eclass sets IUSE and exports cmake-utils phase
+# function wrappers which build the package for each supported ABI
+# if the appropriate flag is enabled.
+#
+# Note that the multilib support requires out-of-source builds to be
+# enabled. Thus, it is impossible to use CMAKE_IN_SOURCE_BUILD with
+# it.
+
+# EAPI=5 is required for meaningful MULTILIB_USEDEP.
+case ${EAPI:-0} in
+	5) ;;
+	*) die "EAPI=${EAPI} is not supported" ;;
+esac
+
+if [[ ${CMAKE_IN_SOURCE_BUILD} ]]; then
+	die "${ECLASS}: multilib support requires out-of-source builds."
+fi
+
+inherit cmake-utils multilib-build
+
+EXPORT_FUNCTIONS src_configure src_compile src_test src_install
+
+cmake-multilib_src_configure() {
+	multilib_parallel_foreach_abi cmake-utils_src_configure
+}
+
+cmake-multilib_src_compile() {
+	multilib_foreach_abi cmake-utils_src_compile
+}
+
+cmake-multilib_src_test() {
+	multilib_foreach_abi cmake-utils_src_test
+}
+
+cmake-multilib_src_install() {
+	cmake-multilib_secure_install() {
+		cmake-utils_src_install
+
+		# Make sure all headers are the same for each ABI.
+		cmake-multilib_cksum() {
+			find "${ED}"usr/include -type f \
+				-exec cksum {} + | sort -k2
+		}
+
+		local cksum=$(cmake-multilib_cksum)
+		local cksum_file=${T}/.cmake-multilib_cksum
+
+		if [[ -f ${cksum_file} ]]; then
+			local cksum_prev=$(< "${cksum_file}")
+
+			if [[ ${cksum} != ${cksum_prev} ]]; then
+				echo "${cksum}" > "${cksum_file}.new"
+
+				eerror "Header files have changed between ABIs."
+
+				if type -p diff &>/dev/null; then
+					eerror "$(diff -du "${cksum_file}" "${cksum_file}.new")"
+				else
+					eerror "Old checksums in: ${cksum_file}"
+					eerror "New checksums in: ${cksum_file}.new"
+				fi
+
+				die "Header checksum mismatch, aborting."
+			fi
+		else
+			echo "${cksum}" > "${cksum_file}"
+		fi
+	}
+
+	multilib_foreach_abi cmake-multilib_secure_install
+}
-- 
1.8.1.2



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib.
  2013-02-05 20:19 [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Michał Górny
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 1/3] Move header consistency checking func into multilib-build Michał Górny
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils Michał Górny
@ 2013-02-05 20:19 ` Michał Górny
  2013-02-06  1:35   ` Alexis Ballier
  2013-02-07 23:08   ` [gentoo-dev] Re: [PATCH 3/3] " Maciej Mrozowski
  2013-02-07  8:36 ` [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Ben de Groot
  3 siblings, 2 replies; 19+ messages in thread
From: Michał Górny @ 2013-02-05 20:19 UTC (permalink / raw
  To: gentoo-dev; +Cc: kde, Michał Górny

---
 gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild | 75 +++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild

diff --git a/gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild b/gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild
new file mode 100644
index 0000000..9e00995
--- /dev/null
+++ b/gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/virtualgl/virtualgl-2.3.2.ebuild,v 1.3 2013/02/05 17:38:27 pacho Exp $
+
+EAPI=5
+inherit cmake-multilib multilib
+
+DESCRIPTION="Run OpenGL applications remotely with full 3D hardware acceleration"
+HOMEPAGE="http://www.virtualgl.org/"
+
+MY_PN="VirtualGL"
+MY_P="${MY_PN}-${PV}"
+S="${WORKDIR}/${MY_P}"
+SRC_URI="mirror://sourceforge/${PN}/${MY_PN}/${PV}/${MY_P}.tar.gz"
+
+SLOT="0"
+LICENSE="LGPL-2.1 wxWinLL-3.1 FLTK"
+KEYWORDS="~amd64 ~x86"
+IUSE="ssl"
+
+RDEPEND="ssl? ( dev-libs/openssl )
+	media-libs/libjpeg-turbo
+	x11-libs/libX11
+	x11-libs/libXext
+	x11-libs/libXv
+	abi_x86_32? ( app-emulation/emul-linux-x86-xlibs
+		app-emulation/emul-linux-x86-baselibs
+		app-emulation/emul-linux-x86-opengl )
+	virtual/glu
+	virtual/opengl"
+DEPEND="${RDEPEND}"
+
+CMAKE_VERBOSE=1
+
+src_prepare() {
+	# Use /var/lib, bug #428122
+	sed -e "s#/etc/opt#/var/lib#g" -i doc/unixconfig.txt doc/index.html doc/advancedopengl.txt \
+		server/vglrun server/vglgenkey server/vglserver_config || die
+
+	default
+}
+
+src_configure() {
+	local mycmakeargs=(
+		$(cmake-utils_use ssl VGL_USESSL)
+		-DVGL_DOCDIR=/usr/share/doc/${PF}
+		-DTJPEG_INCLUDE_DIR=/usr/include
+	)
+
+	abi_configure() {
+		local mycmakeargs=(
+			"${mycmakeargs[@]}"
+			-DVGL_LIBDIR=/usr/$(get_libdir)
+			-DTJPEG_LIBRARY=/usr/$(get_libdir)/libturbojpeg.so
+			-DCMAKE_LIBRARY_PATH=/usr/$(get_libdir)
+			-DVGL_FAKELIBDIR=/usr/fakelib/${ABI}
+		)
+		cmake-utils_src_configure
+	}
+	multilib_parallel_foreach_abi abi_configure
+}
+
+src_install() {
+	cmake-multilib_src_install
+
+	# Make config dir
+	dodir /var/lib/VirtualGL
+	fowners root:video /var/lib/VirtualGL
+	fperms 0750 /var/lib/VirtualGL
+	newinitd "${FILESDIR}/vgl.initd-r1" vgl
+	newconfd "${FILESDIR}/vgl.confd-r1" vgl
+
+	# Rename glxinfo to vglxinfo to avoid conflict with x11-apps/mesa-progs
+	mv "${D}"/usr/bin/{,v}glxinfo || die
+}
-- 
1.8.1.2



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils.
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils Michał Górny
@ 2013-02-06  1:32   ` Alexis Ballier
  2013-02-06  9:56     ` Michał Górny
  0 siblings, 1 reply; 19+ messages in thread
From: Alexis Ballier @ 2013-02-06  1:32 UTC (permalink / raw
  To: gentoo-dev

On Tue,  5 Feb 2013 21:19:23 +0100
Michał Górny <mgorny@gentoo.org> wrote:

> +cmake-multilib_src_install() {
> +	cmake-multilib_secure_install() {
> +		cmake-utils_src_install
> +
> +		# Make sure all headers are the same for each ABI.
> +		cmake-multilib_cksum() {
> +			find "${ED}"usr/include -type f \
> +				-exec cksum {} + | sort -k2
> +		}
> +
> +		local cksum=$(cmake-multilib_cksum)
> +		local cksum_file=${T}/.cmake-multilib_cksum
> +
> +		if [[ -f ${cksum_file} ]]; then
> +			local cksum_prev=$(< "${cksum_file}")
> +
> +			if [[ ${cksum} != ${cksum_prev} ]]; then
> +				echo "${cksum}" > "${cksum_file}.new"
> +
> +				eerror "Header files have changed
> between ABIs." +
> +				if type -p diff &>/dev/null; then
> +					eerror "$(diff -du
> "${cksum_file}" "${cksum_file}.new")"
> +				else
> +					eerror "Old checksums in:
> ${cksum_file}"
> +					eerror "New checksums in:
> ${cksum_file}.new"
> +				fi
> +
> +				die "Header checksum mismatch,
> aborting."
> +			fi
> +		else
> +			echo "${cksum}" > "${cksum_file}"
> +		fi
> +	}

> The eclass uses the same header consistency check as
> autotools-multilib
> (therefore, I move the function to multilib-build).


You probably forgot to use it here


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib.
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib Michał Górny
@ 2013-02-06  1:35   ` Alexis Ballier
  2013-02-06 10:07     ` [gentoo-dev] [PATCH] " Michał Górny
  2013-02-07 23:08   ` [gentoo-dev] Re: [PATCH 3/3] " Maciej Mrozowski
  1 sibling, 1 reply; 19+ messages in thread
From: Alexis Ballier @ 2013-02-06  1:35 UTC (permalink / raw
  To: gentoo-dev

A real diff would be easier to read than a whole new ebuild :)

On Tue,  5 Feb 2013 21:19:24 +0100
Michał Górny <mgorny@gentoo.org> wrote:

> +RDEPEND="ssl? ( dev-libs/openssl )
> +	media-libs/libjpeg-turbo
> +	x11-libs/libX11
> +	x11-libs/libXext
> +	x11-libs/libXv
> +	abi_x86_32? ( app-emulation/emul-linux-x86-xlibs
> +		app-emulation/emul-linux-x86-baselibs
> +		app-emulation/emul-linux-x86-opengl )

this sounds bad: x86 will depend on the emul libs

why not convert the libs it needs first and then use MULTILIB_USE_DEP
to forget about emul libs ?


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils.
  2013-02-06  1:32   ` Alexis Ballier
@ 2013-02-06  9:56     ` Michał Górny
  2013-02-06 10:02       ` [gentoo-dev] [PATCH] " Michał Górny
  0 siblings, 1 reply; 19+ messages in thread
From: Michał Górny @ 2013-02-06  9:56 UTC (permalink / raw
  To: gentoo-dev; +Cc: aballier

[-- Attachment #1: Type: text/plain, Size: 1501 bytes --]

On Tue, 5 Feb 2013 22:32:59 -0300
Alexis Ballier <aballier@gentoo.org> wrote:

> On Tue,  5 Feb 2013 21:19:23 +0100
> Michał Górny <mgorny@gentoo.org> wrote:
> 
> > +cmake-multilib_src_install() {
> > +	cmake-multilib_secure_install() {
> > +		cmake-utils_src_install
> > +
> > +		# Make sure all headers are the same for each ABI.
> > +		cmake-multilib_cksum() {
> > +			find "${ED}"usr/include -type f \
> > +				-exec cksum {} + | sort -k2
> > +		}
> > +
> > +		local cksum=$(cmake-multilib_cksum)
> > +		local cksum_file=${T}/.cmake-multilib_cksum
> > +
> > +		if [[ -f ${cksum_file} ]]; then
> > +			local cksum_prev=$(< "${cksum_file}")
> > +
> > +			if [[ ${cksum} != ${cksum_prev} ]]; then
> > +				echo "${cksum}" > "${cksum_file}.new"
> > +
> > +				eerror "Header files have changed
> > between ABIs." +
> > +				if type -p diff &>/dev/null; then
> > +					eerror "$(diff -du
> > "${cksum_file}" "${cksum_file}.new")"
> > +				else
> > +					eerror "Old checksums in:
> > ${cksum_file}"
> > +					eerror "New checksums in:
> > ${cksum_file}.new"
> > +				fi
> > +
> > +				die "Header checksum mismatch,
> > aborting."
> > +			fi
> > +		else
> > +			echo "${cksum}" > "${cksum_file}"
> > +		fi
> > +	}
> 
> > The eclass uses the same header consistency check as
> > autotools-multilib
> > (therefore, I move the function to multilib-build).
> 
> 
> You probably forgot to use it here

lolcorrect.

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev] [PATCH] Introduce cmake-multilib wrapper for cmake-utils.
  2013-02-06  9:56     ` Michał Górny
@ 2013-02-06 10:02       ` Michał Górny
  2013-04-13  1:04         ` Pass "${@}" in phase functions " Michael Weber
  0 siblings, 1 reply; 19+ messages in thread
From: Michał Górny @ 2013-02-06 10:02 UTC (permalink / raw
  To: gentoo-dev; +Cc: aballier, Michał Górny

---
 gx86/eclass/cmake-multilib.eclass | 56 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 gx86/eclass/cmake-multilib.eclass

diff --git a/gx86/eclass/cmake-multilib.eclass b/gx86/eclass/cmake-multilib.eclass
new file mode 100644
index 0000000..7e929b2
--- /dev/null
+++ b/gx86/eclass/cmake-multilib.eclass
@@ -0,0 +1,56 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/cmake-multilib.eclass,v 1.8 2013/02/01 21:39:50 mgorny Exp $
+
+# @ECLASS: cmake-multilib.eclass
+# @MAINTAINER:
+# Michał Górny <mgorny@gentoo.org>
+# @BLURB: cmake-utils wrapper for multilib builds
+# @DESCRIPTION:
+# The cmake-multilib.eclass is a cmake-utils.eclass(5) wrapper
+# introducing support for building for more than one ABI (multilib).
+#
+# Inheriting this eclass sets IUSE and exports cmake-utils phase
+# function wrappers which build the package for each supported ABI
+# if the appropriate flag is enabled.
+#
+# Note that the multilib support requires out-of-source builds to be
+# enabled. Thus, it is impossible to use CMAKE_IN_SOURCE_BUILD with
+# it.
+
+# EAPI=5 is required for meaningful MULTILIB_USEDEP.
+case ${EAPI:-0} in
+	5) ;;
+	*) die "EAPI=${EAPI} is not supported" ;;
+esac
+
+if [[ ${CMAKE_IN_SOURCE_BUILD} ]]; then
+	die "${ECLASS}: multilib support requires out-of-source builds."
+fi
+
+inherit cmake-utils multilib-build
+
+EXPORT_FUNCTIONS src_configure src_compile src_test src_install
+
+cmake-multilib_src_configure() {
+	multilib_parallel_foreach_abi cmake-utils_src_configure
+}
+
+cmake-multilib_src_compile() {
+	multilib_foreach_abi cmake-utils_src_compile
+}
+
+cmake-multilib_src_test() {
+	multilib_foreach_abi cmake-utils_src_test
+}
+
+cmake-multilib_src_install() {
+	cmake-multilib_secure_install() {
+		cmake-utils_src_install
+
+		# Make sure all headers are the same for each ABI.
+		multilib_check_headers
+	}
+
+	multilib_foreach_abi cmake-multilib_secure_install
+}
-- 
1.8.1.2



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [gentoo-dev] [PATCH] Convert virtualgl to cmake-multilib.
  2013-02-06  1:35   ` Alexis Ballier
@ 2013-02-06 10:07     ` Michał Górny
  2013-02-06 14:02       ` Alexis Ballier
  0 siblings, 1 reply; 19+ messages in thread
From: Michał Górny @ 2013-02-06 10:07 UTC (permalink / raw
  To: gentoo-dev; +Cc: aballier, Michał Górny

---
 ...algl-2.3.2.ebuild => virtualgl-2.3.2-r1.ebuild} | 77 +++++-----------------
 1 file changed, 17 insertions(+), 60 deletions(-)
 copy gx86/x11-misc/virtualgl/{virtualgl-2.3.2.ebuild => virtualgl-2.3.2-r1.ebuild} (52%)

diff --git a/gx86/x11-misc/virtualgl/virtualgl-2.3.2.ebuild b/gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild
similarity index 52%
copy from gx86/x11-misc/virtualgl/virtualgl-2.3.2.ebuild
copy to gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild
index bd3d565..9e00995 100644
--- a/gx86/x11-misc/virtualgl/virtualgl-2.3.2.ebuild
+++ b/gx86/x11-misc/virtualgl/virtualgl-2.3.2-r1.ebuild
@@ -2,8 +2,8 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Header: /var/cvsroot/gentoo-x86/x11-misc/virtualgl/virtualgl-2.3.2.ebuild,v 1.3 2013/02/05 17:38:27 pacho Exp $
 
-EAPI="4"
-inherit cmake-utils multilib
+EAPI=5
+inherit cmake-multilib multilib
 
 DESCRIPTION="Run OpenGL applications remotely with full 3D hardware acceleration"
 HOMEPAGE="http://www.virtualgl.org/"
@@ -16,14 +16,14 @@ SRC_URI="mirror://sourceforge/${PN}/${MY_PN}/${PV}/${MY_P}.tar.gz"
 SLOT="0"
 LICENSE="LGPL-2.1 wxWinLL-3.1 FLTK"
 KEYWORDS="~amd64 ~x86"
-IUSE="multilib ssl"
+IUSE="ssl"
 
 RDEPEND="ssl? ( dev-libs/openssl )
 	media-libs/libjpeg-turbo
 	x11-libs/libX11
 	x11-libs/libXext
 	x11-libs/libXv
-	multilib? ( app-emulation/emul-linux-x86-xlibs
+	abi_x86_32? ( app-emulation/emul-linux-x86-xlibs
 		app-emulation/emul-linux-x86-baselibs
 		app-emulation/emul-linux-x86-opengl )
 	virtual/glu
@@ -31,7 +31,6 @@ RDEPEND="ssl? ( dev-libs/openssl )
 DEPEND="${RDEPEND}"
 
 CMAKE_VERBOSE=1
-build32_dir="${WORKDIR}/${P}_build32"
 
 src_prepare() {
 	# Use /var/lib, bug #428122
@@ -42,69 +41,27 @@ src_prepare() {
 }
 
 src_configure() {
-	# Configure 32bit version on multilib
-	use amd64 && use multilib && (
-		einfo "Configuring 32bit libs..."
-
-		local ABI=x86
-		local CFLAGS="${CFLAGS--O2 -march=native -pipe} -m32"
-		local CXXFLAGS="${CFLAGS}"
-		local LDFLAGS="${LDFLAGS} -m32"
-		local BUILD_DIR="${build32_dir}"
+	local mycmakeargs=(
+		$(cmake-utils_use ssl VGL_USESSL)
+		-DVGL_DOCDIR=/usr/share/doc/${PF}
+		-DTJPEG_INCLUDE_DIR=/usr/include
+	)
 
-		mycmakeargs=(
-			$(cmake-utils_use ssl VGL_USESSL)
-			-DVGL_DOCDIR=/usr/share/doc/"${P}"
+	abi_configure() {
+		local mycmakeargs=(
+			"${mycmakeargs[@]}"
 			-DVGL_LIBDIR=/usr/$(get_libdir)
-			-DTJPEG_INCLUDE_DIR=/usr/include
 			-DTJPEG_LIBRARY=/usr/$(get_libdir)/libturbojpeg.so
-			-DCMAKE_LIBRARY_PATH=/usr/lib32
-			-DVGL_FAKELIBDIR=/usr/fakelib/32
+			-DCMAKE_LIBRARY_PATH=/usr/$(get_libdir)
+			-DVGL_FAKELIBDIR=/usr/fakelib/${ABI}
 		)
 		cmake-utils_src_configure
-
-		einfo "Configuring 64bit libs..."
-	)
-
-	# Configure native version
-	mycmakeargs=(
-		$(cmake-utils_use ssl VGL_USESSL)
-		-DVGL_DOCDIR=/usr/share/doc/"${P}"
-		-DVGL_LIBDIR=/usr/$(get_libdir)
-		-DTJPEG_INCLUDE_DIR=/usr/include
-		-DTJPEG_LIBRARY=/usr/$(get_libdir)/libturbojpeg.so
-		-DCMAKE_LIBRARY_PATH=/usr/lib64
-		-DVGL_FAKELIBDIR=/usr/fakelib/64
-	)
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	# Make 32bit version on multilib
-	use amd64 && use multilib && (
-		einfo "Building 32bit libs..."
-		local BUILD_DIR="${build32_dir}"
-		cmake-utils_src_compile
-
-		einfo "Building 64bit libs..."
-	)
-
-	# Make native version
-	cmake-utils_src_compile
+	}
+	multilib_parallel_foreach_abi abi_configure
 }
 
 src_install() {
-	# Install 32bit version on multilib
-	use amd64 && use multilib && (
-		einfo "Installing 32bit libs..."
-		local BUILD_DIR="${build32_dir}"
-		cmake-utils_src_install
-
-		einfo "Installing 64bit libs..."
-	)
-
-	# Install native version
-	cmake-utils_src_install
+	cmake-multilib_src_install
 
 	# Make config dir
 	dodir /var/lib/VirtualGL
-- 
1.8.1.2



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] [PATCH] Convert virtualgl to cmake-multilib.
  2013-02-06 10:07     ` [gentoo-dev] [PATCH] " Michał Górny
@ 2013-02-06 14:02       ` Alexis Ballier
  2013-02-06 14:09         ` Michał Górny
  0 siblings, 1 reply; 19+ messages in thread
From: Alexis Ballier @ 2013-02-06 14:02 UTC (permalink / raw
  To: gentoo-dev

On Wed,  6 Feb 2013 11:07:21 +0100
Michał Górny <mgorny@gentoo.org> wrote:

>  RDEPEND="ssl? ( dev-libs/openssl )
>  	media-libs/libjpeg-turbo
>  	x11-libs/libX11
>  	x11-libs/libXext
>  	x11-libs/libXv
> -	multilib? ( app-emulation/emul-linux-x86-xlibs
> +	abi_x86_32? ( app-emulation/emul-linux-x86-xlibs
>  		app-emulation/emul-linux-x86-baselibs
>  		app-emulation/emul-linux-x86-opengl )


again, this will pull in emul libs on x86
there are only two options: convert its deps to multilib before
committing or protect the emul libs dep by amd64? () meanwhile


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] [PATCH] Convert virtualgl to cmake-multilib.
  2013-02-06 14:02       ` Alexis Ballier
@ 2013-02-06 14:09         ` Michał Górny
  0 siblings, 0 replies; 19+ messages in thread
From: Michał Górny @ 2013-02-06 14:09 UTC (permalink / raw
  To: gentoo-dev; +Cc: aballier

[-- Attachment #1: Type: text/plain, Size: 841 bytes --]

On Wed, 6 Feb 2013 11:02:35 -0300
Alexis Ballier <aballier@gentoo.org> wrote:

> On Wed,  6 Feb 2013 11:07:21 +0100
> Michał Górny <mgorny@gentoo.org> wrote:
> 
> >  RDEPEND="ssl? ( dev-libs/openssl )
> >  	media-libs/libjpeg-turbo
> >  	x11-libs/libX11
> >  	x11-libs/libXext
> >  	x11-libs/libXv
> > -	multilib? ( app-emulation/emul-linux-x86-xlibs
> > +	abi_x86_32? ( app-emulation/emul-linux-x86-xlibs
> >  		app-emulation/emul-linux-x86-baselibs
> >  		app-emulation/emul-linux-x86-opengl )
> 
> 
> again, this will pull in emul libs on x86
> there are only two options: convert its deps to multilib before
> committing or protect the emul libs dep by amd64? () meanwhile

Ah, sorry, I didn't understand you properly the first time. I agree
that 'amd64?' is necessary too.

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 316 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds
  2013-02-05 20:19 [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Michał Górny
                   ` (2 preceding siblings ...)
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib Michał Górny
@ 2013-02-07  8:36 ` Ben de Groot
  2013-02-07  8:38   ` Ben de Groot
  3 siblings, 1 reply; 19+ messages in thread
From: Ben de Groot @ 2013-02-07  8:36 UTC (permalink / raw
  To: gentoo-dev

On 6 February 2013 04:19, Michał Górny <mgorny@gentoo.org> wrote:
> The idea is the same as in autotools-multilib. The eclass
> is a straightfoward wrapper for cmake-utils which inherits
> multilib-build and runs cmake phase functions for all ABIs (using
> out-of-source build).
>
> The eclass uses the same header consistency check as autotools-multilib
> (therefore, I move the function to multilib-build).
>
> I'm attaching an ebuild for virtualgl as an example of use.
>
>

I see no attachments...

-- 
Cheers,

Ben | yngwin
Gentoo developer
Gentoo Qt project lead, Gentoo Wiki admin


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds
  2013-02-07  8:36 ` [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Ben de Groot
@ 2013-02-07  8:38   ` Ben de Groot
  0 siblings, 0 replies; 19+ messages in thread
From: Ben de Groot @ 2013-02-07  8:38 UTC (permalink / raw
  To: gentoo-dev

On 7 February 2013 16:36, Ben de Groot <yngwin@gentoo.org> wrote:
> On 6 February 2013 04:19, Michał Górny <mgorny@gentoo.org> wrote:
>> The idea is the same as in autotools-multilib. The eclass
>> is a straightfoward wrapper for cmake-utils which inherits
>> multilib-build and runs cmake phase functions for all ABIs (using
>> out-of-source build).
>>
>> The eclass uses the same header consistency check as autotools-multilib
>> (therefore, I move the function to multilib-build).
>>
>> I'm attaching an ebuild for virtualgl as an example of use.
>>
>>
>
> I see no attachments...

Because you used separate emails.

Ignore the noise please.
-- 
Cheers,

Ben | yngwin
Gentoo developer
Gentoo Qt project lead, Gentoo Wiki admin


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev] Re: [PATCH 3/3] Convert virtualgl to cmake-multilib.
  2013-02-05 20:19 ` [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib Michał Górny
  2013-02-06  1:35   ` Alexis Ballier
@ 2013-02-07 23:08   ` Maciej Mrozowski
  1 sibling, 0 replies; 19+ messages in thread
From: Maciej Mrozowski @ 2013-02-07 23:08 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 520 bytes --]

On Tuesday 05 of February 2013 21:19:24 you wrote:

> +CMAKE_VERBOSE=1

This is already eclass default.

> +	abi_configure() {
> +		local mycmakeargs=(
> +			"${mycmakeargs[@]}"
> +			-DVGL_LIBDIR=/usr/$(get_libdir)
> +			-DTJPEG_LIBRARY=/usr/$(get_libdir)/libturbojpeg.so
> +			-DCMAKE_LIBRARY_PATH=/usr/$(get_libdir)
> +			-DVGL_FAKELIBDIR=/usr/fakelib/${ABI}

No no, we should patch CMake instead to avoid doing things like those for 
every single ebuild. So to teach CMake to know our libsuffix and such.

regards
MM

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Pass "${@}" in phase functions Re: [gentoo-dev] [PATCH] Introduce cmake-multilib wrapper for cmake-utils.
  2013-02-06 10:02       ` [gentoo-dev] [PATCH] " Michał Górny
@ 2013-04-13  1:04         ` Michael Weber
  2013-04-13 15:50           ` Michał Górny
                             ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Michael Weber @ 2013-04-13  1:04 UTC (permalink / raw
  To: gentoo-dev

Hi,

I'm not sure if it's a sane way to push make -j1 via

src_compile() {
    cmake-multilib_src_compile -j1
}

but I detected a lack of functionality in the current
cmake-multilib.eclass. Both cmake-utils.eclass and multilib-build.eclass
have it, so it might be sound to continue with this behavior.

Comments, pls.

   Michael


Index: cmake-multilib.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/cmake-multilib.eclass,v
retrieving revision 1.1
diff -u -B -r1.1 cmake-multilib.eclass
--- cmake-multilib.eclass       10 Feb 2013 11:44:55 -0000      1.1
+++ cmake-multilib.eclass       13 Apr 2013 00:58:17 -0000
@@ -33,24 +33,24 @@
 EXPORT_FUNCTIONS src_configure src_compile src_test src_install

 cmake-multilib_src_configure() {
-       multilib_parallel_foreach_abi cmake-utils_src_configure
+       multilib_parallel_foreach_abi cmake-utils_src_configure "${@}"
 }

 cmake-multilib_src_compile() {
-       multilib_foreach_abi cmake-utils_src_compile
+       multilib_foreach_abi cmake-utils_src_compile "${@}"
 }

 cmake-multilib_src_test() {
-       multilib_foreach_abi cmake-utils_src_test
+       multilib_foreach_abi cmake-utils_src_test "${@}"
 }

 cmake-multilib_src_install() {
        cmake-multilib_secure_install() {
-               cmake-utils_src_install
+               cmake-utils_src_install "${@}"

                # Make sure all headers are the same for each ABI.
                multilib_check_headers
        }

-       multilib_foreach_abi cmake-multilib_secure_install
+       multilib_foreach_abi cmake-multilib_secure_install "${@}"
 }


-- 
Michael Weber
Gentoo Developer
web: https://xmw.de/
mailto: Michael Weber <xmw@gentoo.org>


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Pass "${@}" in phase functions Re: [gentoo-dev] [PATCH] Introduce cmake-multilib wrapper for cmake-utils.
  2013-04-13  1:04         ` Pass "${@}" in phase functions " Michael Weber
@ 2013-04-13 15:50           ` Michał Górny
  2013-04-13 19:15             ` Michael Weber
  2013-04-13 16:00           ` [gentoo-dev] Re: Pass "${@}" in phase functions " Steven J. Long
  2013-04-13 16:47           ` Pass "${@}" in phase functions Re: [gentoo-dev] " Ciaran McCreesh
  2 siblings, 1 reply; 19+ messages in thread
From: Michał Górny @ 2013-04-13 15:50 UTC (permalink / raw
  To: gentoo-dev; +Cc: xmw

[-- Attachment #1: Type: text/plain, Size: 509 bytes --]

On Sat, 13 Apr 2013 03:04:51 +0200
Michael Weber <xmw@gentoo.org> wrote:

> Hi,
> 
> I'm not sure if it's a sane way to push make -j1 via
> 
> src_compile() {
>     cmake-multilib_src_compile -j1
> }
> 
> but I detected a lack of functionality in the current
> cmake-multilib.eclass. Both cmake-utils.eclass and multilib-build.eclass
> have it, so it might be sound to continue with this behavior.

That's my mistake most likely. Please commit the patch.

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 966 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [gentoo-dev] Re: Pass "${@}" in phase functions Re: [PATCH] Introduce cmake-multilib wrapper for cmake-utils.
  2013-04-13  1:04         ` Pass "${@}" in phase functions " Michael Weber
  2013-04-13 15:50           ` Michał Górny
@ 2013-04-13 16:00           ` Steven J. Long
  2013-04-13 16:47           ` Pass "${@}" in phase functions Re: [gentoo-dev] " Ciaran McCreesh
  2 siblings, 0 replies; 19+ messages in thread
From: Steven J. Long @ 2013-04-13 16:00 UTC (permalink / raw
  To: gentoo-dev

On Sat, Apr 13, 2013 at 03:04:51AM +0200, Michael Weber wrote:
> I'm not sure if it's a sane way to push make -j1 via
> 
> src_compile() {
>     cmake-multilib_src_compile -j1
> }
> 
> but I detected a lack of functionality in the current
> cmake-multilib.eclass. Both cmake-utils.eclass and multilib-build.eclass
> have it, so it might be sound to continue with this behavior.
> 
> Comments, pls.

  I can't speak to the cmake bit, but passing "$@" makes a lot of sense,
and puts the decision in the hands of the ebuild author, where it belongs.
 
-- 
#friendly-coders -- We're friendly, but we're not /that/ friendly ;-)


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Pass "${@}" in phase functions Re: [gentoo-dev] [PATCH] Introduce cmake-multilib wrapper for cmake-utils.
  2013-04-13  1:04         ` Pass "${@}" in phase functions " Michael Weber
  2013-04-13 15:50           ` Michał Górny
  2013-04-13 16:00           ` [gentoo-dev] Re: Pass "${@}" in phase functions " Steven J. Long
@ 2013-04-13 16:47           ` Ciaran McCreesh
  2 siblings, 0 replies; 19+ messages in thread
From: Ciaran McCreesh @ 2013-04-13 16:47 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 294 bytes --]

On Sat, 13 Apr 2013 03:04:51 +0200
Michael Weber <xmw@gentoo.org> wrote:
> I'm not sure if it's a sane way to push make -j1 via
> 
> src_compile() {
>     cmake-multilib_src_compile -j1
> }

Well the Council doesn't approve of it for default phase functions...

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Pass "${@}" in phase functions Re: [gentoo-dev] [PATCH] Introduce cmake-multilib wrapper for cmake-utils.
  2013-04-13 15:50           ` Michał Górny
@ 2013-04-13 19:15             ` Michael Weber
  0 siblings, 0 replies; 19+ messages in thread
From: Michael Weber @ 2013-04-13 19:15 UTC (permalink / raw
  To: gentoo-dev

On 04/13/2013 05:50 PM, Michał Górny wrote:
> That's my mistake most likely. Please commit the patch.
done.

+  13 Apr 2013; Michael Weber <xmw@gentoo.org> cmake-multilib.eclass:
+  Pass ${@} in phase functions. Approved by author on dev-ml.
+


-- 
Michael Weber
Gentoo Developer
web: https://xmw.de/
mailto: Michael Weber <xmw@gentoo.org>


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-04-13 19:15 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-05 20:19 [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Michał Górny
2013-02-05 20:19 ` [gentoo-dev] [PATCH 1/3] Move header consistency checking func into multilib-build Michał Górny
2013-02-05 20:19 ` [gentoo-dev] [PATCH 2/3] Introduce cmake-multilib wrapper for cmake-utils Michał Górny
2013-02-06  1:32   ` Alexis Ballier
2013-02-06  9:56     ` Michał Górny
2013-02-06 10:02       ` [gentoo-dev] [PATCH] " Michał Górny
2013-04-13  1:04         ` Pass "${@}" in phase functions " Michael Weber
2013-04-13 15:50           ` Michał Górny
2013-04-13 19:15             ` Michael Weber
2013-04-13 16:00           ` [gentoo-dev] Re: Pass "${@}" in phase functions " Steven J. Long
2013-04-13 16:47           ` Pass "${@}" in phase functions Re: [gentoo-dev] " Ciaran McCreesh
2013-02-05 20:19 ` [gentoo-dev] [PATCH 3/3] Convert virtualgl to cmake-multilib Michał Górny
2013-02-06  1:35   ` Alexis Ballier
2013-02-06 10:07     ` [gentoo-dev] [PATCH] " Michał Górny
2013-02-06 14:02       ` Alexis Ballier
2013-02-06 14:09         ` Michał Górny
2013-02-07 23:08   ` [gentoo-dev] Re: [PATCH 3/3] " Maciej Mrozowski
2013-02-07  8:36 ` [gentoo-dev] New eclass: cmake-multilib for cmake multilib package builds Ben de Groot
2013-02-07  8:38   ` Ben de Groot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox