gcc on mac can't build cmake

I hope #include <memory> is added to cmMachO.h. ‘string’ of libc++ includes ‘memory’. But ‘string’ of libstdc++ does not. As a result, though clang can compile cmMachO.cxx, gcc can not. Consider please.

Nothing in cmMachO.h needs anything from the memory header. All it needs is std::string, for which string is the correct C++ header to include. The cmMachO.cxx file includes cm/memory, which does include memory. It sounds to me like you might be using a misconfigured compiler, possibly mixing headers from multiple compilers.

Thank you for reply. When version became 3.16, Internal, which is a member of cmMachO and defined in the last line of cmMachO.h, changed to a smart pointer. <memory> is required before this line. cmMachO.h is included at the top of cmMachO.cxx. So, #include <cm/memory> after #include <cmMachO.h> is late. Is this interpretation wrong?

Ah, yes you are correct. I missed the std::unique_ptr. That looks like a bug, I’ll see if I can put a fix together for it.

Thank you very much!

Please try the branch in merge request 6835.