Anyways, now I'm working on getting minetest to build linked against the develop (soon to be 1.8) branch of irrlicht. I'm hitting the following build output:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
[ 40%] Building CXX object src/CMakeFiles/minetest.dir/main.cpp.o
Linking CXX executable ../bin/minetest
Undefined symbols for architecture i386:
"irr::video::IdentityMaterial", referenced from:
irr::scene::ISceneNode::getMaterial(unsigned int)in sky.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clientmap.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in farmesh.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clouds.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in sky.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clientmap.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in farmesh.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clouds.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in sky.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clientmap.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in farmesh.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clouds.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in sky.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clientmap.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in farmesh.cpp.o
irr::scene::ISceneNode::getMaterial(unsigned int)in clouds.cpp.o
"irr::core::IdentityMatrix", referenced from:
GenericCAO::addToScene(irr::scene::ISceneManager*, ITextureSource*, irr::IrrlichtDevice*) in content_cao.cpp.o
GenericCAO::updateTextures(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in content_cao.cpp.o
GenericCAO::updateTexturePos() in content_cao.cpp.o
the_game(bool&, bool, InputHandler*, irr::IrrlichtDevice*, irr::gui::IGUIFont*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned short, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ChatBackend&, SubgameSpec const&, bool)in game.cpp.o
GenericCAO::addToScene(irr::scene::ISceneManager*, ITextureSource*, irr::IrrlichtDevice*) in content_cao.cpp.o
GenericCAO::updateTextures(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in content_cao.cpp.o
GenericCAO::updateTexturePos() in content_cao.cpp.o
the_game(bool&, bool, InputHandler*, irr::IrrlichtDevice*, irr::gui::IGUIFont*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned short, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ChatBackend&, SubgameSpec const&, bool)in game.cpp.o
"_createDeviceEx", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
make[2]: *** [bin/minetest] Error 1
make[1]: *** [src/CMakeFiles/minetest.dir/all] Error 2
make: *** [all] Error 2
This seems to imply to me that the API for irrlicht has changed between 1.7.3 and 1.8. Looking at the irrlicht API docs I'm not seeing much that has changed in something as basic as getMaterial. Maybe I'm reading the linker problem wrong since I've never worked with irrlicht or minetest (but I do have 3D engine experience).
Has anyone tried to build minetest against the latest develop branch of irrlicht? Do you know anything about getting it to work?
I'm thinking that unless people have some great insight I'll try building it on a Ubuntu VM, then try building the latest irrlicht and minetest on Ubuntu and see if I get similar problems. Mostly what I want to know is if it's a difficulty with cmake's config on Mac or a mismatch between irrlicht and minetest. I'm relatively new to C++ development on Mac, so...here's to learning new things.
Oh, and yes, I've had to make some slight modifications to the cmake config already to get this far. I'll eventually submit pull requests for this stuff when I get it working.