aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-games/godot/godot-3.3.ebuild')
-rw-r--r--dev-games/godot/godot-3.3.ebuild143
1 files changed, 143 insertions, 0 deletions
diff --git a/dev-games/godot/godot-3.3.ebuild b/dev-games/godot/godot-3.3.ebuild
new file mode 100644
index 000000000..5b217fa4a
--- /dev/null
+++ b/dev-games/godot/godot-3.3.ebuild
@@ -0,0 +1,143 @@
+# 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="https://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 Boost-1.0 BSD CC-BY-3.0 MIT MPL-2.0 OFL-1.1 public-domain ZLIB"
+SLOT="0/3"
+IUSE="+bullet debug deprecated +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
+ "${FILESDIR}"/${P}-fix-CVE-2021-26825.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
+ deprecated=$(usex deprecated)
+ 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
+}