Time Nick Message 01:46 MTDiscord Why does the build system use CMake 2.6? Is there a particular reason that such an outdated version is in use? 08:52 sfan5 why outdated? you can use any recent version of cmake 10:20 rubenwardy That's just the minimum version of CMake, you can use any version newer than that 12:18 Calinou out of curiosity, does the current build system actually work with CMake 2.6? :P 12:18 Calinou we probably want to bump the version to something like 3.4 at least 12:19 Calinou Ubuntu 16.04 (EOL in less than 1 year) has CMake 3.5, Ubuntu 18.04 has CMake 3.10 12:32 pgimeno I'm using cmake 3.16 12:52 celeron55 i seem to have an even older one, but 3.something anyway 12:55 celeron55 (debian stable has 3.13) 12:57 MTDiscord If you claim you support CMake 2.6, then the syntax needs to support it, so you can't use new features... 12:59 MTDiscord CMake doesn't have built in support for C++11 until version 3.1, for example. 13:01 MTDiscord I tried changing the minimum version to 3.16 and changing the way client libs were linked, (generator expressions instead of if clauses). The build system broke. 13:22 sfan5 we also set -std=c++11 manually in addition to set(CMAKE_CXX_STANDARD 11) 13:22 sfan5 so that wouldn't be a reason 2.6 can't work, but I have no idea what the actual minimum cmake version is 13:24 MTDiscord Right. The syntax must work, because CMake honors that for older versions. e.g. I would get a syntax error if I tried to use a generator expression without changing the minimum version to at least 2.8 14:22 rubenwardy Newer cmake is nicer - things are based more on targets rather than setting compile flags 14:22 rubenwardy for example, you no longer use include_directory much - you instead depend on a target, which has include directories 14:22 rubenwardy plus add_compile_options() is super nice 15:05 MTDiscord Indeed. I'm aiming for stuff like: cmake target_compile_features(minetest PRIVATE cpp_std_11) target_link_libraries(minetest PRIVATE $<$:${CURL_LIBRARY}> 15:05 MTDiscord That might not have worked well with the relay. I'm not sure. 15:07 MTDiscord Ideally using a variable for library headers and stuff isn't good either. The Find script should provide an interface target with the correct includes set on it. 15:19 rubenwardy for the first, set(CMAKE_CXX_STANDARD 11) is better. Minetest isn't a library, so target compile features isn't needed 15:19 rubenwardy well, it's also not a problem for other things to be compiled as 11 15:26 MTDiscord I don't know whether setting the standard globally is better; it certainly isn't worse. Setting it on the target is more consistent though; if you do it that way for a library you might as well do it that way for an executable. I don't think you lose anything by doing it that way, but correct me if I'm wrong. 19:23 lhofhansl Does anybody have some time to take a quick look at #10426 ? 19:23 ShadowBot https://github.com/minetest/minetest/issues/10426 -- Handle world mods and world game mods in the config dialog. by lhofhansl 21:08 pgimeno nice one 21:10 pgimeno I'd have to review that, I don't see how it can be implemented without something like #6898 21:10 ShadowBot https://github.com/minetest/minetest/issues/6898 -- Allow distinguishing mods by modpack 21:11 sfan5 I had no idea world//game existed 21:12 pgimeno I think he meants worlds/ not world/ 21:12 pgimeno hm, come to think about it, I don't think I took that into account in 6898 21:14 sfan5 I still didn't know that you could put a game into the world folder 21:15 MTDiscord Huh https://github.com/minetest/minetest/blob/5.3.0/doc/lua_api.txt#L119-L128 21:16 MTDiscord I guess it makes sense 21:17 MTDiscord CDB really needs to support downloadable worlds lol