pioneerspacesim / pioneer

A game of lonely space adventure

Home Page:https://pioneerspacesim.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

20240203 release build failure

chenrui333 opened this issue Β· comments

πŸ‘‹ trying to build the latest release, but run into some build issue. The error log is as below:

error build log
  In file included from /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/Plane.h:9:
  /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/vector3.h:314:13: error: no member named 'max' in namespace 'std'; did you mean 'fmax'?
          using std::max; // support max(T) overloads
                ~~~~~^~~
                     fmax
  /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/c++/v1/cmath:419:9: note: 'fmax' declared here
  using ::fmax _LIBCPP_USING_IF_EXISTS;
          ^
  In file included from /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/BaseSphere.cpp:4:
  In file included from /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/BaseSphere.h:7:
  In file included from /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/Camera.h:10:
  In file included from /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/graphics/Frustum.h:7:
  In file included from /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/Plane.h:9:
  /tmp/pioneer-20240204-6328-fhhenj/pioneer-20240203/src/vector3.h:322:13: error: no member named 'min' in namespace 'std'
          using std::min; // support min(T) overloads
                ~~~~~^
  2 errors generated.

full build log, https://github.com/Homebrew/homebrew-core/actions/runs/7776963377/job/21204768739
relates to Homebrew/homebrew-core#161812

Apparently the header files in the implementation of the standard library of your compiler have been shuffled. I think you need to add #include <algorithm> to src/vector3.h.

trying to build the latest release

Building latest release, or current master? I'd recommend master, since there's been a lot of bug fixes since release.

trying to build the latest release

Building latest release, or current master? I'd recommend master, since there's been a lot of bug fixes since release.

this 20240203 release

Apparently the header files in the implementation of the standard library of your compiler have been shuffled. I think you need to add #include <algorithm> to src/vector3.h.

let me give it a shot.

yeah, that resolved one thing, but run into some build issues with lua folder

/tmp/pioneer-20240304-38786-i2kfsf/pioneer-20240203/src/lua/LuaTable.h:376:2: error: call to 'pi_lua_generic_push' is ambiguous
        pi_lua_generic_push(m_lua, Size() + 1);
        ^~~~~~~~~~~~~~~~~~~
/tmp/pioneer-20240304-38786-i2kfsf/pioneer-20240203/src/lua/LuaPushPull.h:21:13: note: candidate function
inline void pi_lua_generic_push(lua_State *l, int32_t value) { lua_pushinteger(l, value); }
            ^
/tmp/pioneer-20240304-38786-i2kfsf/pioneer-20240203/src/lua/LuaPushPull.h:22:13: note: candidate function
inline void pi_lua_generic_push(lua_State *l, int64_t value) { lua_pushinteger(l, value); }
            ^
/tmp/pioneer-20240304-38786-i2kfsf/pioneer-20240203/src/lua/LuaPushPull.h:23:13: note: candidate function
inline void pi_lua_generic_push(lua_State *l, uint32_t value) { lua_pushinteger(l, value); }
            ^
/tmp/pioneer-20240304-38786-i2kfsf/pioneer-20240203/src/lua/LuaPushPull.h:24:13: note: candidate function
inline void pi_lua_generic_push(lua_State *l, uint64_t value) { lua_pushinteger(l, value); }
            ^
/tmp/pioneer-20240304-38786-i2kfsf/pioneer-20240203/src/lua/LuaPushPull.h:25:13: note: candidate function
inline void pi_lua_generic_push(lua_State *l, double value) { lua_pushnumber(l, value); }
            ^
In file included from /tmp/pioneer-20240304-40345-zjcgl0/pioneer-20240203/src/lua/LuaCall.h:13:
/tmp/pioneer-20240304-40345-zjcgl0/pioneer-20240203/src/lua/LuaPushPull.h:62:2: error: call to 'pi_lua_generic_push' is ambiguous
        pi_lua_generic_push(l, value);
        ^~~~~~~~~~~~~~~~~~~
/tmp/pioneer-20240304-40345-zjcgl0/pioneer-20240203/src/lua/LuaMetaType.h:239:3: note: in instantiation of function template specialization 'LuaPush<unsigned long>' requested here
                LuaPush<Rt>(L, ret);
                ^
/tmp/pioneer-20240304-40345-zjcgl0/pioneer-20240203/src/lua/LuaMetaType.h:651:24: note: in instantiation of function template specialization 'LuaMetaTypeBase::member_fn_wrapper_<PropertyMap, unsigned long>' requested here
                lua_pushcclosure(L, &member_fn_wrapper_<T, Rt, Args...>, 2);
                                     ^
/tmp/pioneer-20240304-40345-zjcgl0/pioneer-20240203/src/lua/LuaMetaType.h:635:10: note: in instantiation of function template specialization 'LuaMetaType<PropertyMap>::AddMeta<unsigned long>' requested here
                return AddMeta(name, reinterpret_cast<member_function<T, Rt, Args...>>(fn));
                       ^
/tmp/pioneer-20240304-40345-zjcgl0/pioneer-20240203/src/lua/LuaPropertyMap.cpp:100:11: note: in instantiation of function template specialization 'LuaMetaType<PropertyMap>::AddMeta<unsigned long>' requested here
        metaType.AddMeta("__len", &PropertyMap::Size);
                 ^

I am using Clang: 15.0.0 build 1500 on sonoma arm machine

Please note that we officially do not support compiling the game on MacOS due to the state of OpenGL support on that platform, and make no promises that the game will run if successfully compiled. Additionally, we do not (yet) officially support compiling Pioneer to run on ARM64 / Apple Silicon due to the above issue.

That being said, if you're willing to submit patches to try to maintain the build system for Apple hardware it'd certainly ease the process of restoring Apple hardware support once the game is (eventually) ported to a more modern rendering API like Vulkan.

Regarding the build errors, off the top of my head I'm thinking this is an Apple-specific quirk - that call absolutely should not be ambiguous, unless unsigned long on Apple64 is not a signed or unsigned 32/64 bit integer. I don't think I can offer any support there, as I (nor the rest of the dev team) have any Apple hardware to test or debug on.

I'd recommend you try to compile a fresh checkout of master and see if the errors persist.

I'd recommend you try to compile a fresh checkout of master and see if the errors persist.

yeah, i will do that later this weekend πŸ‘

Closing as inactive.