Time Nick Message 02:46 rubenwardy Merging #10536 in 10 02:46 ShadowBot https://github.com/minetest/minetest/issues/10536 -- Add roadmap by rubenwardy 05:43 VanessaE @rubenwardy: are you aware that within that ^, you link to at least one closed issue (as something that's still on the roadmap) 05:43 VanessaE (sorry, I missed the "*gunshot* I OBJECT!" window :P ) 05:45 VanessaE specifically, https://github.com/minetest/minetest/pull/10536/files#diff-a738e8f06c88ead0388a35f869ac4428e62a5966751c2c824fcbf62b47170eb1R37 13:55 MTDiscord When Minetest links to Irrlicht, do Irrlicht's private dependencies need to be linked for Irrlicht? Or only when Irrlicht is built? I thought it'd be the later, but Minetest does link JPEG and PNG just for Irrlicht I think. 13:59 sfan5 for dynamic linking the case is this: libIrrlichtMt.so links to JPEG+PNG. Minetest links to libIrrlichtMt.so, it does not need to know about jpeg or png 14:04 MTDiscord Are the JPEG and PNG in Minetest there for static linking? 14:10 MTDiscord I could fix this by removing the target_link_libraries from Irrlicht, or by moving it to the Config, or by building Irrlicht in CI instead of downloading a binary. 14:16 sfan5 the last isn't a viable solution 14:16 sfan5 if you removed target_link_libraries wouldn't Irrlicht itself fail to link? 14:17 sfan5 and yes Minetest used to pull in jpeg, png, opengl and x11 so that static linking would work 14:17 MTDiscord I'd have to use link_libraries instead. 14:17 sfan5 these should be removed if the cmake config works 14:18 MTDiscord I removed JPEG and PNG, I didn't know OpenGL and X11 could be removed. 14:19 sfan5 well perhaps not x11 14:21 MTDiscord I still need to prove it is the issue, but it seems almost certain that IrrlichtMtTargets.cmake references zlib somewhere and that's the issue... 14:47 MTDiscord I'm getting suspicious now. The zlib path it didn't find looks exactly like the path specified in the CI script. 14:57 MTDiscord Is it possible Minetest relies on the Irrlicht archive containing zlib.dll.a for the CI? 14:57 MTDiscord This isn't an Irrlicht CMake issue at all, I thin it's totally a Minetest issue. 14:59 MTDiscord Huh looks like zlib is downloaded seperately. IDK what to think. 15:05 sfan5 cmake is trying to link the zlib Irrlicht linked to at its built time (to satisfy Irrlicht's deps) 15:06 sfan5 but this is nonsense for shared libraries, it's not needed at all 15:09 sfan5 all it needs to do is 1) include $libdir/irrlicht/include/irrlichtmt and 2) link to $libdir/irrlicht/lib/libIrrlichtMt.dll.a 15:17 MTDiscord Are you sure it's the one Irrlicht linked to at build time? 15:18 sfan5 yes 16:12 MTDiscord Yeah, that is how it is supposed to work according to the docs, so I'll be debugging the Irrlicht export and figure out why it's doing this. 18:38 MTDiscord All the libraries are in the interface libraries for the target. ? 18:39 MTDiscord I think link_libraries did it. 19:04 MTDiscord Yep forgot to specify PRIVATE on link_libraries oof. 20:28 MTDiscord Why was documentation for tileable_vertical and tileable_horizontal removed by #10487 ? It seems that at least tileable_verticalis still necessary for leveled plantlike nodes, so shouldn't it still be documented? 20:28 ShadowBot https://github.com/minetest/minetest/issues/10487 -- Remove all bump mapping and parallax occlusion related code. by lhofhansl 20:32 MTDiscord Also, the Lua API doc says the leveled paramtype2 is only valid for plantlike_rooted nodes, but it seemingly works just fine for regular plantlike nodes as well. 22:09 MTDiscord Irrlicht links to an X11 extension library called Xxf86vm on Unix based systems. Why? I removed it and it builds fine on my computer. I only found one place it's included and it's in a header file, not a source file. 22:09 sfan5 and which file is that? 22:12 MTDiscord CIrrDeviceLinux.h 22:13 MTDiscord If I remember correctly. 22:14 sfan5 that's still used 22:15 MTDiscord Does it use functions from it? 22:16 sfan5 comment it out and see 22:16 MTDiscord I built without it and it worked so... 22:16 Pexin also not hard to do global search for those funcs 22:17 Pexin oh a whole lib 22:17 MTDiscord I grepped for all X11 includes. 22:17 sfan5 linking is a different issue, modern systems may have that included in libX11 or whatever 22:18 MTDiscord Good thought, I should make sure. 22:18 sfan5 hm I don't see libIrrlichtMt.so importing this function even though it's in the code 22:19 sfan5 nevermind grepped the wrong command 22:20 sfan5 @Techy5 what would paramtype leveled do on a plantlike node? cut off the plant at a certain height? 22:21 MTDiscord If you figure out which source/header files need to link to it I'd be happy to know. I'm linking everything to its respective object library to fix the bug; I should've just taken the time to do that in the first place. 22:22 sfan5 CIrrDeviceLinux.cpp 22:22 MTDiscord Thank you! 22:23 sfan5 splitting libraries up even futher doesn't sound good however... 22:23 MTDiscord Shouldn't it also include the correch header? Relying on transitive headers is bad practice. 22:24 MTDiscord I'm keeping the OpenGl stuff in one place and I marked it PRIVATE, but the other stuff is only needed in one or two places. 22:24 sfan5 "CIrrDeviceLinux.cpp -> CIrrDeviceLinux.h -> Xxf86vm include" doesn't sound wrong to me 22:25 sfan5 can't the dependencies be marked as private entirely? (doesn't this already happen?) 22:26 MTDiscord No link_libraries made them PUBLIC by default. I fixed that already, but I thought adding the libraries to each object target might keep them relevant to the code that actually needs them, and in particular not all of them actually should be PRIVATE. 22:27 MTDiscord Some headers should technically be INTERFACE. 22:28 MTDiscord Working around that will be tricky because Minetest needs PNG headers but the CI won't have access to them (?). 22:29 sfan5 it does not 22:30 MTDiscord I thought it might because Irrlicht has PNG includes in header files that are installed in the lib. 22:31 MTDiscord So if Irrlicht is built as a static library and Minetest includes it, it might have unresolved PNG headers. 22:31 sfan5 no header files from source/Irrlicht/ are ever installed 22:31 MTDiscord Uh oh, I believe they are so I better see whether that needs fixing. 22:32 MTDiscord I had it backwards, they aren't. 22:32 MTDiscord Thanks. 22:33 sfan5 the zip contains everything needed to build minetest w/ irrlichtmt, you can be sure of that since it worked previously 22:36 MTDiscord link_libraries has no option for PRIVATE, I didn't fix it. 22:36 MTDiscord Well shoot. 22:37 sfan5 ? 22:42 MTDiscord Wait, Irrlicht uses SDL headers? 22:47 sfan5 optionally but that doesn't work 23:11 MTDiscord This is actually a minefield of issues. Thonse object targets are tough to work with. 23:14 MTDiscord I shouldn't need to link anything to the object targets. 23:17 MTDiscord Nevermind, I think I do. 23:19 MTDiscord Do we need to use OBJECT targets or could we use simple lists?