diff --git a/devel/Makefile b/devel/Makefile index f67634c62a0a1..84f30ccb40ca6 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -883,6 +883,7 @@ SUBDIR += godot-tools SUBDIR += godot2 SUBDIR += godot2-tools + SUBDIR += godot35 SUBDIR += goffice SUBDIR += gogs SUBDIR += golangci-lint diff --git a/devel/godot35/Makefile b/devel/godot35/Makefile new file mode 100644 index 0000000000000..361707b0d4e7e --- /dev/null +++ b/devel/godot35/Makefile @@ -0,0 +1,113 @@ +PORTNAME= godot +DISTVERSION= 3.5.1 +DISTVERSIONSUFFIX= -stable +PORTREVISION?= 0 +CATEGORIES= devel games +PKGNAMESUFFIX?= 35 + +MAINTAINER= FreeBSD@Shaneware.biz +COMMENT?= Game runtime engine - LTS v3.5 +WWW= https://godotengine.org/ + +LICENSE= MIT CC-BY-3.0 +LICENSE_COMB= multi +LICENSE_FILE_CC-BY-3.0= ${WRKSRC}/LOGO_LICENSE.md +LICENSE_FILE_MIT= ${WRKSRC}/LICENSE.txt + +BUILD_DEPENDS= yasm:devel/yasm +LIB_DEPENDS= libfreetype.so:print/freetype2 \ + libpcre2-8.so:devel/pcre2 \ + libpng.so:graphics/png \ + libvpx.so:multimedia/libvpx +RUN_DEPENDS= xdg-user-dir:devel/xdg-user-dirs \ + xdg-open:devel/xdg-utils \ + xmessage:x11/xmessage + +USES= compiler:c++14-lang cpe gl pkgconfig scons xorg +USE_XORG= x11 xcursor xext xi xinerama xrandr xrender +USE_GL= gl glew glu + +CPE_VENDOR= godotengine + +USE_GITHUB= yes +GH_ACCOUNT= godotengine + +MAKE_ARGS+= platform=x11 builtin_freetype=False \ + builtin_libpng=False builtin_libvpx=False \ + builtin_pcre2=False builtin_zlib=False verbose=True +MAKE_ARGS+= ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} +MAKE_ARGS_clang= use_llvm=True linker=lld +CXXFLAGS_i386= ${CXXFLAGS_i386_${CHOSEN_COMPILER_TYPE}} +CXXFLAGS_i386_gcc= -march=i586 + +OPTIONS_DEFINE= EXAMPLES TOOLS UDEV +OPTIONS_DEFAULT= ALSA UDEV +# Moved to devel/godot-tools +OPTIONS_EXCLUDE?= EXAMPLES TOOLS +OPTIONS_GROUP= AUDIO +OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO + +AUDIO_DESC= Audio support +ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib +ALSA_MAKE_ARGS= alsa=True +ALSA_MAKE_ARGS_OFF= alsa=False +# tagged 24/1 for 3.5.1 +EXAMPLES_GH_TUPLE= godotengine:godot-demo-projects:9e68af38d9f2:DEMOS +EXAMPLES_PORTEXAMPLES= * +PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio +PULSEAUDIO_MAKE_ARGS= pulseaudio=True +PULSEAUDIO_MAKE_ARGS_OFF= pulseaudio=False +TOOLS_DESC= Include development tools (IDE) +TOOLS_MAKE_ARGS= target=release_debug tools=True +TOOLS_MAKE_ARGS_OFF= target=release tools=False +TOOLS_DESKTOP_ENTRIES= "Godot" "${COMMENT}" "${GODOTFILE}" \ + "${GODOTFILE}" "Development;IDE;" "" +TOOLS_PLIST_FILES= share/pixmaps/${GODOTFILE}.png \ + share/pixmaps/${GODOTFILE}.svg +UDEV_DESC= Libudev support (Joystick) +UDEV_BUILD_DEPENDS= ${PREFIX}/include/linux/input.h:devel/evdev-proto +UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd +UDEV_MAKE_ARGS= udev=True +UDEV_MAKE_ARGS_OFF= udev=False + +GODOTFILE= ${PORTNAME}${PKGNAMESUFFIX} +PLIST_FILES= bin/${GODOTFILE} + +.ifmake makesum +# Always include optional distfiles +.MAKEFLAGS: WITH="${OPTIONS_DEFINE}" OPTIONS_EXCLUDE= +.endif + +.include + +.if ${ARCH:Mpowerpc*} || ${ARCH:Mriscv64*} +MAKE_ARGS+= module_embree_enabled=no \ + module_raycast_enabled=no \ + module_webm_enabled=no +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|custom_build|${OPSYS}_Ports_build|' \ + ${WRKSRC}/methods.py + @${REINPLACE_CMD} -e 's|/usr/bin|${PREFIX}/bin|' \ + ${WRKSRC}/platform/x11/os_x11.cpp + +# The official godot binary name reflects options used to compile +# We just want a simple name matching the portname +# This gives us bin/godot for runtime and bin/godot-tools for the IDE +do-install: + @${RM} ${WRKSRC}/bin/*.debugsymbols + cd ${WRKSRC}/bin && ${INSTALL_PROGRAM} godot.x11* \ + ${STAGEDIR}/${PREFIX}/bin/${GODOTFILE} + +do-install-EXAMPLES-on: + (cd ${WRKSRC_DEMOS} && ${COPYTREE_SHARE} "${PORTEXAMPLES}" \ + ${STAGEDIR}${EXAMPLESDIR}) + +do-install-TOOLS-on: + ${INSTALL_DATA} ${WRKSRC}/icon.png \ + ${STAGEDIR}${PREFIX}/share/pixmaps/${GODOTFILE}.png + ${INSTALL_DATA} ${WRKSRC}/icon.svg \ + ${STAGEDIR}${PREFIX}/share/pixmaps/${GODOTFILE}.svg + +.include diff --git a/devel/godot35/distinfo b/devel/godot35/distinfo new file mode 100644 index 0000000000000..d7ad06b4faa5e --- /dev/null +++ b/devel/godot35/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1677901671 +SHA256 (godotengine-godot-3.5.1-stable_GH0.tar.gz) = 164523c1c8aef0b69b135645794f5bece3f63788556a56aa293c118cde457023 +SIZE (godotengine-godot-3.5.1-stable_GH0.tar.gz) = 56610604 +SHA256 (godotengine-godot-demo-projects-9e68af38d9f2_GH0.tar.gz) = 0569a9862284c93cc45fd8305ed055322d4d337b1f593e639ec503ae844e2b72 +SIZE (godotengine-godot-demo-projects-9e68af38d9f2_GH0.tar.gz) = 181537053 diff --git a/devel/godot35/files/patch-platform_x11_detect.py b/devel/godot35/files/patch-platform_x11_detect.py new file mode 100644 index 0000000000000..3691baf4270f8 --- /dev/null +++ b/devel/godot35/files/patch-platform_x11_detect.py @@ -0,0 +1,20 @@ +--- platform/x11/detect.py.orig 2021-12-21 22:27:28 UTC ++++ platform/x11/detect.py +@@ -338,7 +338,7 @@ def configure(env): + else: + print("Warning: PulseAudio development libraries not found. Disabling the PulseAudio audio driver.") + +- if platform.system() == "Linux": ++ if platform.system() in ["Linux","FreeBSD"]: + env.Append(CPPDEFINES=["JOYDEV_ENABLED"]) + if env["udev"]: + if os.system("pkg-config --exists libudev") == 0: # 0 means found +@@ -365,7 +365,7 @@ def configure(env): + if env["execinfo"]: + env.Append(LIBS=["execinfo"]) + +- if not env["tools"]: ++ if not env["tools"] and False: # not building templates, just runtime + import subprocess + import re + diff --git a/devel/godot35/files/patch-platform_x11_libudev-so__wrap.c b/devel/godot35/files/patch-platform_x11_libudev-so__wrap.c new file mode 100644 index 0000000000000..64daca3247170 --- /dev/null +++ b/devel/godot35/files/patch-platform_x11_libudev-so__wrap.c @@ -0,0 +1,11 @@ +--- platform/x11/libudev-so_wrap.c.orig 2021-12-29 15:43:04 UTC ++++ platform/x11/libudev-so_wrap.c +@@ -279,7 +279,7 @@ int (*udev_util_encode_string_dylibloader_wrapper_libu + int initialize_libudev() { + void *handle; + char *error; +- handle = dlopen("libudev.so.1", RTLD_LAZY); ++ handle = dlopen("libudev.so.0", RTLD_LAZY); + if (!handle) { + fprintf(stderr, "%s\n", dlerror()); + return(1); diff --git a/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__codec.h b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__codec.h new file mode 100644 index 0000000000000..cd4e7ef205d94 --- /dev/null +++ b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__codec.h @@ -0,0 +1,20 @@ +--- thirdparty/libvpx/vpx/vpx_codec.h.orig 2019-03-23 14:24:15 UTC ++++ thirdparty/libvpx/vpx/vpx_codec.h +@@ -36,8 +36,8 @@ + * Once initialized, the instance is manged using other functions from + * the vpx_codec_* family. + */ +-#ifndef VPX_VPX_CODEC_H_ +-#define VPX_VPX_CODEC_H_ ++#ifndef VPX_VPX_VPX_CODEC_H_ ++#define VPX_VPX_VPX_CODEC_H_ + + #ifdef __cplusplus + extern "C" { +@@ -475,5 +475,5 @@ extern "C" { + #ifdef __cplusplus + } + #endif +-#endif // VPX_VPX_CODEC_H_ ++#endif // VPX_VPX_VPX_CODEC_H_ + diff --git a/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__decoder.h b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__decoder.h new file mode 100644 index 0000000000000..39b2cbdc97c01 --- /dev/null +++ b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__decoder.h @@ -0,0 +1,20 @@ +--- thirdparty/libvpx/vpx/vpx_decoder.h.orig 2019-03-23 14:46:15 UTC ++++ thirdparty/libvpx/vpx/vpx_decoder.h +@@ -7,8 +7,8 @@ + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +-#ifndef VPX_VPX_DECODER_H_ +-#define VPX_VPX_DECODER_H_ ++#ifndef VPX_VPX_VPX_DECODER_H_ ++#define VPX_VPX_VPX_DECODER_H_ + + /*!\defgroup decoder Decoder Algorithm Interface + * \ingroup codec +@@ -374,5 +374,5 @@ extern "C" { + #ifdef __cplusplus + } + #endif +-#endif // VPX_VPX_DECODER_H_ ++#endif // VPX_VPX_VPX_DECODER_H_ + diff --git a/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__frame__buffer.h b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__frame__buffer.h new file mode 100644 index 0000000000000..5f1de2543fc9a --- /dev/null +++ b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__frame__buffer.h @@ -0,0 +1,19 @@ +--- thirdparty/libvpx/vpx/vpx_frame_buffer.h.orig 2019-03-23 14:31:21 UTC ++++ thirdparty/libvpx/vpx/vpx_frame_buffer.h +@@ -8,8 +8,8 @@ + * be found in the AUTHORS file in the root of the source tree. + */ + +-#ifndef VPX_VPX_FRAME_BUFFER_H_ +-#define VPX_VPX_FRAME_BUFFER_H_ ++#ifndef VPX_VPX_VPX_FRAME_BUFFER_H_ ++#define VPX_VPX_VPX_FRAME_BUFFER_H_ + + /*!\file + * \brief Describes the decoder external frame buffer interface. +@@ -80,4 +80,4 @@ typedef int (*vpx_release_frame_buffer_cb_fn_t)( + } // extern "C" + #endif + +-#endif // VPX_VPX_FRAME_BUFFER_H_ ++#endif // VPX_VPX_VPX_FRAME_BUFFER_H_ diff --git a/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__image.h b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__image.h new file mode 100644 index 0000000000000..9b605fb36ea01 --- /dev/null +++ b/devel/godot35/files/patch-thirdparty_libvpx_vpx_vpx__image.h @@ -0,0 +1,19 @@ +--- thirdparty/libvpx/vpx/vpx_image.h.orig 2019-03-23 14:18:30 UTC ++++ thirdparty/libvpx/vpx/vpx_image.h +@@ -13,8 +13,8 @@ + * \brief Describes the vpx image descriptor and associated operations + * + */ +-#ifndef VPX_VPX_IMAGE_H_ +-#define VPX_VPX_IMAGE_H_ ++#ifndef VPX_VPX_VPX_IMAGE_H_ ++#define VPX_VPX_VPX_IMAGE_H_ + + #ifdef __cplusplus + extern "C" { +@@ -232,4 +232,4 @@ extern "C" { + } // extern "C" + #endif + +-#endif // VPX_VPX_IMAGE_H_ ++#endif // VPX_VPX_VPX_IMAGE_H_ diff --git a/devel/godot35/pkg-descr b/devel/godot35/pkg-descr new file mode 100644 index 0000000000000..5664604012782 --- /dev/null +++ b/devel/godot35/pkg-descr @@ -0,0 +1,6 @@ +Godot is a multi-platform 2D and 3D game engine. + +Easily deploy your game on IOS, Android, OSX, Linux, Steam or Windows. + +This is a runtime only port of godot. For the IDE to create games +use devel/godot-tools. diff --git a/devel/godot35/pkg-message b/devel/godot35/pkg-message new file mode 100644 index 0000000000000..760c7f9c2f16b --- /dev/null +++ b/devel/godot35/pkg-message @@ -0,0 +1,11 @@ +[ +{ type: install + message: <