* [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