On Wed, Jan 4, 2012 at 12:36 PM, Axel Roebel <axel.roe...@ircam.fr> wrote: > On 4/1/12 5:05 PM, David Cole wrote: >> What project are you running through CMake? Is it available for us to >> try to reproduce here? > > It is the SDIF/EASDIF_SDIF project that is on sourceforge. > http://sourceforge.net/projects/sdif/files/Easdif/ > >> I've not heard of anything like this... > > Thanks for the feedback. So I took the cmake sources and compiled in > debug mode to see what is the problem. In my opinion there is a bug in > > cmGlobalXCodeGenerator::CreateBuildSettings > > in function ExtractFlag(const char* flag, std::string& flags) > > In my case I loop endlessly in > > std::string gflag = this->ExtractFlag("-g", flags); > > while I have these flags > > -DGCC_HAS_VISIBILITY -fvisibility=hidden -fstrict-aliasing > -maccumulate-outgoing-args -DNDEBUG -DNDEBUG -funroll-loops -Wall > -Wno-switch -Wno-unused-function -finline-limit=5000 --param > large-function-insns=5000 --param large-function-growth=500 --param > inline-unit-growth=100 -fPIC > > You see the -g is not there but something is found here > > inline-unit-growth=100 -fPIC > > and as the function is implemented > it does not handle this case correctly. > > I suggest the following fix for the ExtractfFlag function > that ensures that a flag that is found will never be refound even > if it is nor removed (see FIX section below). The fix works for me. > > std::string cmGlobalXCodeGenerator::ExtractFlag(const char* flag, > std::string& flags) > { > std::string retFlag; > std::string::size_type pos = flags.rfind(flag); > bool saved = false; > > while(pos != flags.npos) > { > if(pos == 0 || flags[pos-1]==' ') > { > while(pos < flags.size() && flags[pos] != ' ') > { > if(!saved) > { > retFlag += flags[pos]; > } > flags[pos] = ' '; > pos++; > } > } > saved = true; > // FIX IS HERE > // original version > // pos = flags.rfind(flag); > // corrected version > if(pos) > pos = flags.rfind(flag, pos-1); > else > pos = flags.npos; > // END OF FIX > } > return retFlag; > } > > Cheers > Axel > >> Can you use Activity Monitor to inspect the process and grab a sample >> showing a call stack of what's happening when it's "hung"? >> >> Does CMake have any child processes that run during the configure of >> this project? (i.e. -- do you call execute_process with anything) >> >> What else did you upgrade at the same time? :-) >> >> >> Thx, >> David >> >> >> >> On Wed, Jan 4, 2012 at 10:08 AM, Axel Roebel <axel.roe...@ircam.fr> wrote: >>> Hello >>> >>> I just upgraded from 2.8.1 to 2.8.6 to be able to use the recently added >>> generator expressions in add_custom_command. Unfortunately, whenever I >>> try to generate a project for Xcode (Mac OSX 10.6.8, Xcode 3.2.6) the >>> project generator (command line as well as gui) hangs in the last phase >>> when it writes the project files. Is Xcode 3.2.6 no longer supported, or >>> does anybody have an idea what might be the problem? >>> >>> I used cmake that comes from macports repository, but after that failed >>> I tried version 2.8.7 from the cmake download page, but that gave the >>> same result (None). >>> >>> Cheers >>> Axel >>> >>> -- >>> Axel Roebel >>> Head of the Analysis/Synthesis Team, IRCAM >>> Phone: ++33-1-4478 4845 | Fax: ++33-1-4478 1540 >>> -- >>> >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Please keep messages on-topic and check the CMake FAQ at: >>> http://www.cmake.org/Wiki/CMake_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://www.cmake.org/mailman/listinfo/cmake >> > > > -- > Axel Roebel > Head of the Analysis/Synthesis Team, IRCAM > Phone: ++33-1-4478 4845 | Fax: ++33-1-4478 1540
Wow. Nice, quick work. Thanks for the patch. I'll get it applied and pushed to our 'next' branch so this can get into the next release... Thanks, David -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake