| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | # Copyright 2014 Bernd Steinhauser <berniyh@exherbo.org> | 
					
						
							|  |  |  | # Copyright 2014 Julian Ospald <hasufell@posteo.de> | 
					
						
							|  |  |  | # Distributed under the terms of the GNU General Public License v2 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  | require gtk-icon-cache python | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | SUMMARY="A free, real-time strategy game" | 
					
						
							|  |  |  | HOMEPAGE="http://play0ad.com" | 
					
						
							|  |  |  | DOWNLOADS="
 | 
					
						
							|  |  |  |     mirror://sourceforge/zero-ad/${PNV}-unix-build.tar.xz | 
					
						
							|  |  |  |     mirror://sourceforge/zero-ad/${PNV}-unix-data.tar.xz | 
					
						
							|  |  |  | "
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | LICENCES="
 | 
					
						
							|  |  |  |     Arev [[ note = [ Included DejaVu Fonts ] ]] | 
					
						
							| 
									
										
										
										
											2016-02-17 01:53:28 +00:00
										 |  |  |     bitstream-font [[ note = [ Included DejaVu Fonts ] ]] | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |     BSD-3 [[ note = [ build/premake/premake4 ] ]] | 
					
						
							|  |  |  |     CCPL-Attribution-ShareAlike-3.0 [[ note = [ binaries/data/mods/{art,audio} ] ]] | 
					
						
							|  |  |  |     GPL-2 [[ note = [ | 
					
						
							|  |  |  |         source/tools/atlas | 
					
						
							|  |  |  |         Rest of binaries/data | 
					
						
							|  |  |  |         ] ]] | 
					
						
							|  |  |  |     GUST [[ note = [ Included TeXGyrePagella Fonts ] ]] | 
					
						
							|  |  |  |     ISC [[ note = [ source/lobby/pkcs5_pbkdf2.cpp ] ]] | 
					
						
							|  |  |  |     MIT [[ note = [ | 
					
						
							|  |  |  |         build/premake/*.lua | 
					
						
							|  |  |  |         libraries/source/{fcollada,nvtt} | 
					
						
							|  |  |  |         source/lib | 
					
						
							|  |  |  |         source/third_party/mongoose | 
					
						
							|  |  |  |         ] ]] | 
					
						
							|  |  |  |     ZLIB [[ note = [ source/third_party/mikktspace ] ]] | 
					
						
							|  |  |  | "
 | 
					
						
							|  |  |  | SLOT="0" | 
					
						
							|  |  |  | PLATFORMS="~amd64 ~x86" | 
					
						
							|  |  |  | MYOPTIONS="
 | 
					
						
							|  |  |  |     editor [[ description = [ Include Atlas scenario editor projects ] ]] | 
					
						
							|  |  |  |     lobby [[ description = [ Enable the multiplayer lobby ] ]] | 
					
						
							|  |  |  |     sound | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     ( providers: ijg-jpeg jpeg-turbo ) [[ number-selected = exactly-one ]] | 
					
						
							|  |  |  |     platform: amd64 x86 | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | "
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DEPENDENCIES="
 | 
					
						
							|  |  |  |     editor? ( | 
					
						
							|  |  |  |         build+run: | 
					
						
							|  |  |  |             x11-libs/wxGTK:3.0 | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     lobby? ( | 
					
						
							|  |  |  |         build+run: | 
					
						
							|  |  |  |             net-libs/gloox | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     sound? ( | 
					
						
							|  |  |  |         build+run: | 
					
						
							|  |  |  |             media-libs/libvorbis | 
					
						
							|  |  |  |             media-libs/openal | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     build: | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |         dev-lang/python:*[>=2.7] | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |         virtual/pkg-config | 
					
						
							|  |  |  |     build+run: | 
					
						
							|  |  |  |         dev-libs/boost | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |         dev-libs/icu:= | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |         dev-libs/libxml2:2.0 | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |         dev-libs/nspr | 
					
						
							|  |  |  |         providers:ijg-jpeg? ( media-libs/jpeg ) | 
					
						
							|  |  |  |         providers:jpeg-turbo? ( media-libs/libjpeg-turbo ) | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |         media-libs/libpng:= | 
					
						
							|  |  |  |         media-libs/SDL:2[X] | 
					
						
							|  |  |  |         net-libs/enet | 
					
						
							|  |  |  |         net-libs/miniupnpc | 
					
						
							|  |  |  |         net-misc/curl | 
					
						
							|  |  |  |         x11-dri/mesa | 
					
						
							|  |  |  |         x11-libs/libX11 | 
					
						
							|  |  |  |         x11-libs/libXcursor | 
					
						
							|  |  |  | "
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DEFAULT_SRC_PREPARE_PATCHES=( | 
					
						
							| 
									
										
										
										
											2016-02-17 01:53:28 +00:00
										 |  |  |     -p0 "${FILES}"/${PNV}-flags.patch | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  | src_unpack() { | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     default | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ###### spidermonkey ##### | 
					
						
							|  |  |  |     edo pushd "${WORK}"/libraries/source/spidermonkey | 
					
						
							|  |  |  |     edo tar xjf mozjs-31.2.0.rc0.tar.bz2 | 
					
						
							|  |  |  |     edo mv mozjs-31.2.0 mozjs31 | 
					
						
							|  |  |  |     edo popd | 
					
						
							|  |  |  |     ######################### | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  | src_prepare() { | 
					
						
							|  |  |  |     default | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     ###### fix premake ##### | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |     edo pushd "${WORK}"/build/premake/premake4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # The project uses an included version of premake (version 4.3.1), | 
					
						
							|  |  |  |     # which doesn't seem available on premakes website. | 
					
						
							|  |  |  |     # 4.3 does not work, 4.4 (b5) should be tested. So here we build | 
					
						
							|  |  |  |     # premakes included version for now. | 
					
						
							|  |  |  |     emake -C build/gmake.unix | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     # regenerate scripts.c so our patch applies | 
					
						
							|  |  |  |     edo ./bin/release/premake4 embed | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     edo popd | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     # rebuild premake again... | 
					
						
							|  |  |  |     emake -C "${WORK}"/build/premake/premake4/build/gmake.unix clean | 
					
						
							|  |  |  |     emake -C "${WORK}"/build/premake/premake4/build/gmake.unix | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     ######################## | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ###### spidermonkey ##### | 
					
						
							|  |  |  |     edo pushd "${WORK}"/libraries/source/spidermonkey/mozjs31 | 
					
						
							|  |  |  |     edo . ../patch.sh | 
					
						
							|  |  |  |     edo cd js/src | 
					
						
							|  |  |  |     edo perl -i.bak -pe 's/(LIBRARY_NAME\s+=).*/$1 '\''mozjs31-ps-release'\''/' \
 | 
					
						
							|  |  |  |         moz.build | 
					
						
							|  |  |  |     edo mkdir -p build-release | 
					
						
							|  |  |  |     edo popd | 
					
						
							|  |  |  |     ######################### | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | src_configure() { | 
					
						
							|  |  |  |     local myconf=( | 
					
						
							|  |  |  |         --with-system-miniupnpc | 
					
						
							|  |  |  |         --minimal-flags | 
					
						
							|  |  |  |         --without-nvtt | 
					
						
							|  |  |  |         --without-pch | 
					
						
							|  |  |  |         --without-tests | 
					
						
							|  |  |  |         $(option sound "" "--without-audio") | 
					
						
							|  |  |  |         $(option editor "--atlas" "") | 
					
						
							|  |  |  |         $(option lobby "" "--without-lobby") | 
					
						
							|  |  |  |         --collada | 
					
						
							|  |  |  |         --bindir="/usr/$(exhost --target)/bin" | 
					
						
							|  |  |  |         --libdir="/usr/$(exhost --target)/lib/${PN}" | 
					
						
							|  |  |  |         --datadir="/usr/share/${PN}" | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     # run premake to create build scripts | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |     edo pushd "${WORK}"/build/premake | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     edo ./premake4/bin/release/premake4 \
 | 
					
						
							|  |  |  |         --file="premake4.lua" \
 | 
					
						
							|  |  |  |         --outpath="../workspaces/gcc/" \
 | 
					
						
							|  |  |  |         --platform=$(option platform:amd64 "x64" "x32") \
 | 
					
						
							|  |  |  |         --os=linux \
 | 
					
						
							|  |  |  |         "${myconf[@]}" \
 | 
					
						
							|  |  |  |         gmake | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |     edo popd | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     edo sed -i -e "s:pkg-config:${PKG_CONFIG}:" \
 | 
					
						
							|  |  |  |         libraries/source/fcollada/src/Makefile \
 | 
					
						
							|  |  |  |         build/workspaces/gcc/* \
 | 
					
						
							|  |  |  |         libraries/source/spidermonkey/build.sh | 
					
						
							|  |  |  |     edo sed -i -e "s:@ar:@${AR}:" \
 | 
					
						
							|  |  |  |         -e "s:ranlib:${RANLIB}:" \
 | 
					
						
							|  |  |  |         libraries/source/fcollada/src/Makefile | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ###### spidermonkey ##### | 
					
						
							| 
									
										
										
										
											2016-02-17 01:53:28 +00:00
										 |  |  |     # build bundled and patched spidermonkey-31 | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     # | 
					
						
							|  |  |  |     # spidermonkey build system requires that SHELL is always set. | 
					
						
							|  |  |  |     # It's missing sometimes in chroot environments, so force it here. | 
					
						
							|  |  |  |     export SHELL=/bin/sh | 
					
						
							|  |  |  |     edo pushd "${WORK}"/libraries/source/spidermonkey/mozjs31/js/src/build-release/ | 
					
						
							|  |  |  |     ECONF_SOURCE="${WORK}/libraries/source/spidermonkey/mozjs31/js/src/" \
 | 
					
						
							|  |  |  |         econf \
 | 
					
						
							|  |  |  |             --hates=docdir \
 | 
					
						
							|  |  |  |             --hates=datarootdir \
 | 
					
						
							|  |  |  |             --enable-shared-js \
 | 
					
						
							|  |  |  |             --enable-gcgenerational \
 | 
					
						
							|  |  |  |             --disable-tests \
 | 
					
						
							|  |  |  |             --without-intl-api \
 | 
					
						
							|  |  |  |             --enable-optimize | 
					
						
							|  |  |  |     edo popd | 
					
						
							|  |  |  |     ######################### | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | src_compile() { | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     ###### spidermonkey ##### | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     edo pushd "${WORK}"/libraries/source/spidermonkey | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     # TARGETS= from paludis environment breaks the build | 
					
						
							|  |  |  |     env -u TARGETS emake TOOLCHAIN_PREFIX="$(exhost --tool-prefix)" \
 | 
					
						
							|  |  |  |         -C mozjs31/js/src/build-release | 
					
						
							|  |  |  |     # copy headers for building | 
					
						
							|  |  |  |     edo mkdir -p include-unix-release | 
					
						
							|  |  |  |     edo cp -R -L mozjs31/js/src/build-release/dist/include/* \
 | 
					
						
							|  |  |  |         include-unix-release/ | 
					
						
							|  |  |  |     edo mkdir -p lib/ | 
					
						
							|  |  |  |     edo cp -L mozjs31/js/src/build-release/dist/lib/libmozjs31-ps-release.so \
 | 
					
						
							|  |  |  |         lib/libmozjs31-ps-release.so | 
					
						
							|  |  |  |     edo cp -L mozjs31/js/src/build-release/dist/lib/libmozjs31-ps-release.so \
 | 
					
						
							|  |  |  |         ../../../binaries/system/libmozjs31-ps-release.so | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     edo popd | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     ######################### | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # build 3rd party fcollada | 
					
						
							|  |  |  |     emake -C libraries/source/fcollada/src | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # build 0ad | 
					
						
							|  |  |  |     emake -C build/workspaces/gcc verbose=1 | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | src_install() { | 
					
						
							|  |  |  |     if optionq editor ; then | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |         newbin binaries/system/ActorEditor 0ad-ActorEditor | 
					
						
							|  |  |  |         exeinto /usr/$(exhost --target)/lib/${PN} | 
					
						
							|  |  |  |         doexe binaries/system/libAtlasUI.so | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # TODO: Use system fonts | 
					
						
							|  |  |  |     newbin binaries/system/pyrogenesis 0ad | 
					
						
							| 
									
										
										
										
											2016-02-15 14:35:35 +00:00
										 |  |  |     exeinto /usr/$(exhost --target)/lib/${PN} | 
					
						
							|  |  |  |     doexe binaries/system/libCollada.so | 
					
						
							| 
									
										
										
										
											2016-02-15 21:39:04 +00:00
										 |  |  |     doexe libraries/source/spidermonkey/mozjs31/js/src/build-release/dist/lib/*.so | 
					
						
							| 
									
										
										
										
											2014-11-24 21:30:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     insinto /usr/share/${PN} | 
					
						
							|  |  |  |     doins -r binaries/data/* | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     insinto /usr/share/icons/hicolor/128x128/apps/ | 
					
						
							|  |  |  |     doins build/resources/${PN}.png | 
					
						
							|  |  |  |     insinto /usr/share/applications | 
					
						
							|  |  |  |     doins build/resources/0ad.desktop | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     dodoc README.txt binaries/system/readme.txt | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |