Re: [cgma-dev] Missing include on Mavericks (+patch)
Thank you, David! I've double checked on linux platform, and it works too. Already check it in the cgm system, revision 6114. Jane On Mon, Jan 20, 2014 at 12:22 PM, David Thompson <[email protected]
wrote:
Hi all,
I've found a fix for the Mavericks compile issue. The new Apple libc++ uses a specialization for std::vector<bool> that prevents DLIList<bool> from re-using the std::vector<X>::const_reference typedef blindly. The following fixes things for me:
--- a/util/DLIList.hpp +++ b/util/DLIList.hpp @@ -40,7 +40,7 @@ public: friend class DLIListIterator<X>;
typedef typename std::vector<X>::reference reference; - typedef typename std::vector<X>::const_reference const_reference; + typedef const typename std::vector<X>::value_type& const_reference; typedef typename std::vector<X>::pointer pointer; typedef typename std::vector<X>::const_pointer const_pointer;
and should work for other platforms.
David
On Dec 10, 2013, at 1:21 PM, David Thompson <[email protected]> wrote:
Hi Rajeev,
I’m getting similar error on Mavericks. Did you find a solution?
Not yet. My workaround is to use svn version 6078 with the patch at the start of this thread.
David
From: David Thompson <[email protected]> Subject: Re: [cgma-dev] Missing include on Mavericks (+patch) Date: December 2, 2013 at 6:31:03 PM CST To: Jane Hu <[email protected]> Cc: CGMA Development <[email protected]>
Hi Jane,
Current trunk is only buildable with occ, there's a bug which prevent cubit build on cgm14.0 and I am working on it.
I am using OCC, so that's not the problem.
... Please let us know when you figured out the cause.
OK.
Thanks, David
On Mon, Dec 2, 2013 at 3:08 PM, David Thompson < [email protected]> wrote: Hi Jane,
It's just been done. Happy coding!
Thanks! However, when I updated to catch this fix, I ran into another issue:
libtool: compile: clang++ -I. -I/Users/dcthomp/Source/cgm/geom -I.. -I../geom/parallel -I../itaps -I/Users/dcthomp/Source/cgm/util -I. -g -Wall -mmacosx-version-min=10.9 --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -arch x86_64 -Wall -pipe -pedantic -MT CubitAttribManager.lo -MD -MP -MF .deps/CubitAttribManager.Tpo -c /Users/dcthomp/Source/cgm/geom/CubitAttribManager.cpp -fno-common -DPIC -o .libs/CubitAttribManager.o /Users/dcthomp/Source/cgm/geom/CubitAttribManager.cpp:108:28: error: no viable conversion from 'CubitBoolean' (aka 'bool') to 'const_reference' (aka '__bit_const_reference<std::__1::vector<bool, std::__1::allocator<bool> > ') mAutoActuateFlags.append(auto_actuate_flag); ^~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__bit_reference:124:7: note:
candidate constructor (the implicit copy constructor) not viable:
no known conversion from 'CubitBoolean' (aka 'bool') to
'const std::__1::__bit_const_reference<std::__1::vector<bool,
std::__1::allocator<bool> > > &' for 1st argument
class __bit_const_reference ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__bit_reference:140:5: note:
candidate constructor not viable: no known conversion from
'CubitBoolean' (aka 'bool') to 'const
__bit_reference<std::__1::vector<bool, std::__1::allocator<bool>
&' for 1st argument
__bit_const_reference(const __bit_reference<_Cp>& __x) _NOEXCEPT ^ /Users/dcthomp/Source/cgm/util/DLIList.hpp:448:31: note: passing argument to parameter 'new_item' here void append(const_reference new_item); ^
I haven't been able to figure out the source of this problem. Both Apple's new C++ library and the old GNU one specialize vector<bool>, so that does not appear to be the cause. If it helps, I had not updated since before you moved the cubit-14 branch to the trunk.
David
On Mon, Dec 2, 2013 at 12:43 PM, David Thompson < [email protected]> wrote: Hi all,
When I try building on OS X Mavericks using the latest Xcode, I get an error that pid_t is not defined in util/CubitProcess.h. It appears that <unistd.h> must be included for this type to be defined. A patch is below. Could someone apply it or help me revise it so I can build without patching CGM?
Thanks, David
--- a/util/CubitProcess.hpp +++ b/util/CubitProcess.hpp @@ -20,6 +20,7 @@ #include <windows.h> typedef PROCESS_INFORMATION PidType; #else +# include <unistd.h> typedef pid_t PidType; #endif
-- Jane Hu
Asst. Researcher Dept. of Engineering Physics UW @ Madison
"And we know that for those who love God, that is, for those who are called according to his purpose, all things are working together for good." (Romans 8:28)
-- Jane Hu
Asst. Researcher Dept. of Engineering Physics UW @ Madison
"And we know that for those who love God, that is, for those who are called according to his purpose, all things are working together for good." (Romans 8:28)
-- Jane Hu Asst. Researcher Dept. of Engineering Physics UW @ Madison "And we know that for those who love God, that is, for those who are called according to his purpose, all things are working together for good." (Romans 8:28)
participants (1)
-
Jane Hu