aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoss Charles Campbell <rossbridger.cc@gmail.com>2021-01-02 23:57:46 +0800
committerRoss Charles Campbell <rossbridger.cc@gmail.com>2021-01-02 23:59:18 +0800
commita4c500da08a55ab3ff4b8f78e28dcfdc4372af65 (patch)
tree203a1cad0ceffe62e76a7c0ea968709ff1765b82
parentgui-apps/sfwbar: remove empty last line (diff)
downloadguru-a4c500da.tar.gz
guru-a4c500da.tar.bz2
guru-a4c500da.zip
dev-games/godot: New Package
Closes: https://bugs.gentoo.org/532730 Closes: https://github.com/gentoo/gentoo/pull/17874 Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Ross Charles Campbell <rossbridger.cc@gmail.com>
-rw-r--r--dev-games/godot/Manifest1
-rw-r--r--dev-games/godot/files/godot-3.2.3-fix-llvm-build.patch36
-rw-r--r--dev-games/godot/godot-3.2.3.ebuild139
-rw-r--r--dev-games/godot/metadata.xml28
4 files changed, 204 insertions, 0 deletions
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
new file mode 100644
index 0000000000..36fd2278f9
--- /dev/null
+++ b/dev-games/godot/Manifest
@@ -0,0 +1 @@
+DIST godot-3.2.3.tar.gz 22459811 BLAKE2B fdebfc4fc4a259d52496feb2904ff1e311a8df3fd57568091b181380e28b789efd16d598df7a2331f22f182acebacb7af1f5aa88583f8b7e992be52f2f494198 SHA512 229a32f082e412f20533b781ee95a1e7a9039a6329fe3429f9a3388ba3aada311bcc49c2abecdeec7496ef039a81358009126b21daaeeb127c170b77c3def99f
diff --git a/dev-games/godot/files/godot-3.2.3-fix-llvm-build.patch b/dev-games/godot/files/godot-3.2.3-fix-llvm-build.patch
new file mode 100644
index 0000000000..40c45f341b
--- /dev/null
+++ b/dev-games/godot/files/godot-3.2.3-fix-llvm-build.patch
@@ -0,0 +1,36 @@
+diff --git a/SConstruct b/SConstruct
+index 26019e6..f460aef 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -170,6 +170,8 @@ opts.Add(BoolVariable("builtin_zstd", "Use the built-in Zstd library", True))
+ # Compilation environment setup
+ opts.Add("CXX", "C++ compiler")
+ opts.Add("CC", "C compiler")
++opts.Add("AR", "Archiver")
++opts.Add("RANLIB", "Random Access Library Indexer")
+ opts.Add("LINK", "Linker")
+ opts.Add("CCFLAGS", "Custom flags for both the C and C++ compilers")
+ opts.Add("CFLAGS", "Custom flags for the C compiler")
+diff --git a/platform/x11/detect.py b/platform/x11/detect.py
+index 716930d..28b1df4 100644
+--- a/platform/x11/detect.py
++++ b/platform/x11/detect.py
+@@ -130,7 +130,6 @@ def configure(env):
+ env["CXX"] = "clang++"
+ env["LINK"] = "clang++"
+ env.Append(CPPDEFINES=["TYPED_METHOD_BIND"])
+- env.extra_suffix = ".llvm" + env.extra_suffix
+
+ if env["use_lld"]:
+ if env["use_llvm"]:
+@@ -173,10 +172,6 @@ def configure(env):
+ env.Append(CCFLAGS=["-flto"])
+ env.Append(LINKFLAGS=["-flto"])
+
+- if not env["use_llvm"]:
+- env["RANLIB"] = "gcc-ranlib"
+- env["AR"] = "gcc-ar"
+-
+ env.Append(CCFLAGS=["-pipe"])
+ env.Append(LINKFLAGS=["-pipe"])
+
diff --git a/dev-games/godot/godot-3.2.3.ebuild b/dev-games/godot/godot-3.2.3.ebuild
new file mode 100644
index 0000000000..b0115ed966
--- /dev/null
+++ b/dev-games/godot/godot-3.2.3.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{7..9} )
+
+inherit desktop python-any-r1 scons-utils xdg
+
+DESCRIPTION="Multi-platform 2D and 3D game engine"
+HOMEPAGE="http://godotengine.org"
+
+SRC_URI="https://github.com/godotengine/${PN}/archive/${PV}-stable.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}-stable"
+KEYWORDS="~amd64 ~x86"
+
+LICENSE="Apache-2.0 BSD BSL-1.1 CC-BY-3.0 MIT MPL-2.0 OFL-1.1 public-domain ZLIB"
+SLOT="0"
+IUSE="+bullet debug +enet +freetype lto +mbedtls +ogg +opus pulseaudio +theora +udev +upnp +vorbis +webp"
+
+RDEPEND="
+ app-arch/lz4
+ app-arch/zstd
+ dev-libs/libpcre2[pcre32]
+ media-libs/alsa-lib
+ media-libs/libpng:0=
+ media-libs/libvpx
+ media-libs/mesa[gles2]
+ sys-libs/zlib
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXi
+ x11-libs/libXinerama
+ virtual/glu
+ virtual/opengl
+ bullet? ( >=sci-physics/bullet-2.89 )
+ enet? ( net-libs/enet:= )
+ freetype? ( media-libs/freetype:2 )
+ mbedtls? ( net-libs/mbedtls )
+ ogg? ( media-libs/libogg )
+ opus? (
+ media-libs/opus
+ media-libs/opusfile
+ )
+ pulseaudio? ( media-sound/pulseaudio )
+ theora? ( media-libs/libtheora )
+ udev? ( virtual/udev )
+ upnp? ( net-libs/miniupnpc )
+ vorbis? ( media-libs/libvorbis )
+ webp? ( media-libs/libwebp )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-lang/yasm
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}"/${P}-fix-llvm-build.patch )
+
+src_prepare() {
+ default
+ rm -r thirdparty/{bullet,enet,freetype,libogg,libpng,libtheora,libvorbis,libvpx,libwebp,mbedtls,miniupnpc,opus,pcre2,zlib,zstd} || die
+}
+
+src_configure() {
+ myesconsargs=(
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ AR="$(tc-getAR)"
+ RANLIB="$(tc-getRANLIB)"
+ )
+ # Remove builtin third-party packages, link with system ones instead
+ myesconsargs+=(
+ builtin_bullet=no
+ builtin_enet=no
+ builtin_freetype=no
+ builtin_libogg=no
+ builtin_libpng=no
+ builtin_libtheora=no
+ builtin_libvorbis=no
+ builtin_libvpx=no
+ builtin_libwebp=no
+ builtin_mbedtls=no
+ builtin_miniupnpc=no
+ builtin_opus=no
+ builtin_pcre2=no
+ builtin_pcre2_with_jit=no
+ builtin_zlib=no
+ builtin_zstd=no
+ )
+ myesconsargs+=(
+ # Mono bindings requires MSBuild which is only available on Windows
+ module_mono_enabled=no
+ module_bullet_enabled=$(usex bullet)
+ module_enet_enabled=$(usex enet)
+ module_freetype_enabled=$(usex freetype)
+ module_mbedtls_enabled=$(usex mbedtls)
+ module_ogg_enabled=$(usex ogg)
+ module_opus_enabled=$(usex opus)
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_vorbis_enabled=$(usex vorbis)
+ module_webp_enabled=$(usex webp)
+ )
+ # Misc options
+ myesconsargs+=(
+ platform=x11
+ progress=yes
+ tools=yes
+ verbose=yes
+ pulseaudio=$(usex pulseaudio)
+ target=$(usex debug debug release_debug)
+ udev=$(usex udev)
+ use_lto=$(usex lto)
+ )
+}
+
+src_compile() {
+ escons "${myesconsargs[@]}"
+}
+
+src_install() {
+ local godot_binary="${PN}.x11.opt.tools"
+
+ if [[ "${ARCH}" == "amd64" ]]; then
+ godot_binary="${godot_binary}.64"
+ elif [[ "${ARCH}" == "x86" ]]; then
+ godot_binary="${godot_binary}.32"
+ fi
+
+ newbin bin/${godot_binary} ${PN}
+ newicon icon.svg ${PN}.svg
+ doman misc/dist/linux/${PN}.6
+ domenu misc/dist/linux/org.godotengine.Godot.desktop
+ insinto /usr/share/metainfo
+ doins misc/dist/linux/org.godotengine.Godot.appdata.xml
+ insinto /usr/share/mime/application
+ doins misc/dist/linux/x-godot-project.xml
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+}
diff --git a/dev-games/godot/metadata.xml b/dev-games/godot/metadata.xml
new file mode 100644
index 0000000000..5f4bcc66cc
--- /dev/null
+++ b/dev-games/godot/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>rossbridger.cc@gmail.com</email>
+ <name>Ross Charles Campbell</name>
+ </maintainer>
+ <longdescription>
+Godot Engine is a feature-packed, cross-platform game engine to create 2D and
+3D games from a unified interface. It provides a comprehensive set of common
+tools, so users can focus on making games without having to reinvent the wheel.
+Games can be exported in one click to a number of platforms, including the major
+desktop platforms (Linux, macOS, Windows) as well as mobile (Android, iOS) and
+web-based (HTML5) platforms.
+ </longdescription>
+ <use>
+ <flag name="bullet">Enable support for <pkg>sci-physics/bullet</pkg></flag>
+ <flag name="enet">Enable support for <pkg>net-libs/enet</pkg></flag>
+ <flag name="lto">Enable support for link time optimization</flag>
+ <flag name="freetype">Enable support for <pkg>media-libs/freetype</pkg></flag>
+ <flag name="mbedtls">Enable support for <pkg>net-libs/mbedtls</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="github">godotengine/godot</remote-id>
+ <bugs-to>https://github.com/godotengine/godot/issues</bugs-to>
+ <doc lang="en">https://docs.godotengine.org/en/stable/index.html</doc>
+ </upstream>
+</pkgmetadata>