Skip to content

Success reports here #4

jpakkane started this conversation in General
Success reports here #4
Feb 4, 2022 · 7 comments · 4 replies

If you have built and used the port successfully, write the details of your success below.

If you have found bugs, remember not to file them against the main Godot project unless you have verified that they also occur with the upstream SCons build.

Replies

7 comments
·
4 replies

Builds fine. I've got several warnings about not being able to convert modules_db.json to a File object.
And this one:

Program scons_compat.py found: YES (/home/nils/Development/godot/scripts/scons_compat.py)
WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300

Build with a Meson around version 0.61.0.rc1 from git. I'm not familiar with Godot. So not commenting on the using part.

1 reply
@jpakkane

jpakkane Feb 4, 2022
Maintainer Author

Thanks for the report. Working on fixing the issue.

Archlinux, meson 0.61.1 perfect build with default options, in 16 minutes vs 21 with scons.

0 replies

hey, getting problem and can not build successfully, seems to be caused by module_db.py with the error
AttributeError: 'NoneType' object has no attribute 'get_modules_enabled_names'

full meson log : https://paste.ee/p/tC7YG

1 reply
@jpakkane

jpakkane Feb 5, 2022
Maintainer Author

Something weird is going on but you can fix it temporarily by removing the last commit.

jpakkane
Feb 5, 2022
Maintainer Author

Rebased against current master and fixed the reported issues.

0 replies

Build and run successfully on Ubuntu 21.10 with meson 0.61.1 + ninja 1.10.1, 977286e.

0 replies

Building with -Dbuiltin_bullet=false -Dbuiltin_certs=false -Dbuiltin_enet=false -Dbuiltin_freetype=false -Dbuiltin_libogg=false -Dbuiltin_libpng=false -Dbuiltin_libtheora=false -Dbuiltin_libvorbis=false -Dbuiltin_libwebp=false -Dbuiltin_vulkan=false -Dbuiltin_zlib=false -Dbuiltin_zstd=false -Dbuiltin_harfbuzz=false -Dbuiltin_graphite=false -Dbuiltin_icu=false on Nix, found the following issues:

thirdparty/zlib/meson.build:41:4: ERROR: Tried to assign values inside an argument list.
To specify a keyword argument, use : instead of =.
thirdparty/msdfgen/meson.build:25:0: ERROR: Unknown variable "_freetype_dep_defines".
modules/text_server_adv/icu_data/meson.build:2:4: ERROR: Could not get pkg-config variable and no default provided for <PkgConfigDependency icu-uc: True None>	

Contents of /nix/store/sxgdps9vpw8ivj4g6j9x33wavkc0jk53-icu4c-70.1-dev/lib/pkgconfig/icu-uc.pc:

# CFLAGS contains only anything end users should set
CFLAGS = 
# CXXFLAGS contains only anything end users should set
CXXFLAGS =  -std=c++11
# DEFS only contains those UCONFIG_CPPFLAGS which are not auto-set by platform.h
DEFS = 
prefix = /nix/store/w5z6skcz71hqq2kffflklq6shlwqrk2r-icu4c-70.1
exec_prefix = ${prefix}
#bindir = /nix/store/sxgdps9vpw8ivj4g6j9x33wavkc0jk53-icu4c-70.1-dev/bin
libdir = /nix/store/w5z6skcz71hqq2kffflklq6shlwqrk2r-icu4c-70.1/lib
includedir = /nix/store/sxgdps9vpw8ivj4g6j9x33wavkc0jk53-icu4c-70.1-dev/include
baselibs = -lpthread -ldl -lm 
#datarootdir = ${prefix}/share
#datadir = ${datarootdir}
#sbindir = /nix/store/sxgdps9vpw8ivj4g6j9x33wavkc0jk53-icu4c-70.1-dev/sbin
#mandir = /nix/store/sxgdps9vpw8ivj4g6j9x33wavkc0jk53-icu4c-70.1-dev/share/man
#sysconfdir = ${prefix}/etc
UNICODE_VERSION=14.0
ICUPREFIX=icu
ICULIBSUFFIX=
LIBICU=lib${ICUPREFIX}
#SHAREDLIBCFLAGS=-fPIC
pkglibdir=${libdir}/icu${ICULIBSUFFIX}/70.1
#pkgdatadir=${datadir}/icu${ICULIBSUFFIX}/70.1
ICUDATA_NAME = icudt70l
#ICUPKGDATA_DIR=/nix/store/w5z6skcz71hqq2kffflklq6shlwqrk2r-icu4c-70.1/lib
#ICUDATA_DIR=${pkgdatadir}
ICUDESC=International Components for Unicode

Version: 70.1
Cflags: -I${includedir}
# end of icu.pc.in
Description: International Components for Unicode: Common and Data libraries
Name: icu-uc
Libs: -L${libdir} -licuuc -licudata
Libs.private: ${baselibs}
FAILED: libgodot_all.a.p/platform_linuxbsd_os_linuxbsd.cpp.o 
g++ -Ilibgodot_all.a.p -I. -I.. -Ithirdparty -I../thirdparty -Iplatform/linuxbsd -I../platform/linuxbsd -Ithirdparty/msdfgen -I../thirdparty/msdfgen -I../thirdparty/mbedtls/include -Ithirdparty/minizip -I../thirdparty/minizip -Ithirdparty/misc -I../thirdparty/misc -I../thirdparty/spirv-reflect/include -Isplash -Imodules -Iplatform -Iplatform/android -Iplatform/iphone -Iplatform/javascript -Iplatform/osx -Iplatform/uwp -Iplatform/windows -Icore -Icore/input -Icore/io -Iscene/resources/default_theme -Iservers/rendering/renderer_rd/shaders -Ieditor -I/nix/store/cs726l6czhh2ipi364k0v5idwasmphwn-libX11-1.7.2-dev/include -I/nix/store/hdb729hdszgix5m0m1na7b4ryyhgzgpg-xorgproto-2021.5/include -I/nix/store/4v2xjskhj33vy8lxbfb5n0pq5bkh5iwc-libXcursor-1.2.0-dev/include -I/nix/store/g17vmwscic0whbh840iddxc1zqgnillm-libXinerama-1.1.4-dev/include -I/nix/store/zs42gna7bvbl868kazl451x41w1l05s7-libXext-1.3.4-dev/include -I/nix/store/2csj1vfwhbvcnw364g1z8sc52ir4dcbi-libXrandr-1.5.2-dev/include -I/nix/store/10g100afm66siw202xd6wx377jbhn6rc-libXrender-0.9.10-dev/include -I/nix/store/pmcy0m1yk1zbhkqmnja3bk7agf9sq1si-libXi-1.8-dev/include -I/nix/store/19s1dxgpnafcx14q67yghjq0jkw33bik-zlib-1.2.11-dev/include -I/nix/store/d8ksgz6d9mrlm5lf5f3b9blmicd3sw5d-zstd-1.5.1-dev/include -I/nix/store/wwhkcpq839qfpdwq8x511jbv91yr2lyr-freetype-2.11.1-dev/include/freetype2 -I/nix/store/vzjk1v3hb0qm5ddjzjz3i0czcaan44gd-vulkan-headers-1.2.198.0/include -I/nix/store/y91ij7z7drvm17wpw8pm1ypqw6hjil9z-libpng-apng-1.6.37-dev/include/libpng16 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -std=c++17 -g -D_DEBUG -fPIC -pthread -Wno-cpp -DDEBUG_ENABLED -DDISABLE_FORCED_INLINE -DNO_EDITOR_SPLASH -DTOOLS_ENABLED -DUNIX_ENABLED -DVULKAN_ENABLED -DX11_ENABLED -DHAVE_MNTENT -DVK_USE_PLATFORM_XLIB_KHR -MD -MQ libgodot_all.a.p/platform_linuxbsd_os_linuxbsd.cpp.o -MF libgodot_all.a.p/platform_linuxbsd_os_linuxbsd.cpp.o.d -o libgodot_all.a.p/platform_linuxbsd_os_linuxbsd.cpp.o -c ../platform/linuxbsd/os_linuxbsd.cpp
In file included from ../platform/linuxbsd/display_server_x11.h:54,
                 from ../platform/linuxbsd/os_linuxbsd.cpp:37:
../drivers/vulkan/rendering_device_vulkan.h:45:10: fatal error: vk_mem_alloc.h: No such file or directory
   45 | #include "vk_mem_alloc.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.

Looks like that actually comes from a different library:

https://github.com/jpakkane/godot/tree/meson/thirdparty#vulkan

2 replies
@jpakkane

jpakkane Feb 8, 2022
Maintainer Author

Fixed the first two. The third one is a bit strange, because at least Debian does not install an icudt<number>.dat file that the code expects. Thus it may be that tools can only built with the local ICU. If they can, then someone familiar with the code would need to tell how it is supposed to be set up.

For the last one, Debian again does not have vk_mem_alloc.h in any package so it would seem that only the builtin Vulkan implementation can be used in practice.

@jtojnar

Yeah, they are doing something weird there as described by the thirdparty readme:

  1. The dependency is actually vulkan-headers.pc, not vulkan.pc (vulkan-loader package in Nix).
  2. It is not just a single dependency – they add extra headers from two completely different packages and then a custom .cpp file:
  • vk_enum_string_helper.h is in vulkan-validation-layers.headers package ( /nix/store/mzrhh130kzvz82zd685wpsydqfg6hbpp-vulkan-validation-layers-1.2.198.0-headers/include/vulkan/vk_enum_string_helper.h), no .pc file
  • vk_mem_alloc.h is from https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator, currently only packaged by AUR according to repology will need to add it
  • vk_mem_alloc.cpp is a Godot file

So I assume it might work if we use dependency('vulkan-headers') and declare_dependency for each of the third-party header. Not sure what to do about the .cpp file.

Successfully built 9ad5b65 with meson . _build --buildtype=debugoptimized in Arch Linux 5..16.8-arch1-1 AMD ATI 04:00.0 Renoir, meson 0.61.2 with mesa. Apparently everything is working fine. Keep up the good work! :)

0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
7 participants