View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003417CMakeCMakepublic2006-06-16 13:552006-06-16 14:07
ReporterHans Johnson 
Assigned ToBill Hoffman 
PriorityurgentSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0003417: Error building large projects under XCode
DescriptionXCode buid had an error in a custom file when too many libs needed to be run through ranlib.

The following patch seems to fix the problem:

Index: Source/cmGlobalXCodeGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v
retrieving revision 1.117
diff -r1.117 cmGlobalXCodeGenerator.cxx
951,952c951,953
< char c = '1' + count++;
< tname[&cc] = std::string(target.GetName()) + c;
---
> cmOStringStream str;
> str << "_buildpart_" << count++ ;
> tname[&cc] = std::string(target.GetName()) + str.str();

The previous code produced makefile sub-target names that had a single charater appended to base target name to distinguish between them. It starts with ASCII code #49='1' and increments, The problem with this is that if there are a lot of sub-targets, this scheme does not work. Eventually you end up with subtargets that end in '*' or '^' or some unprintable character. Ths really makes xcodebuild unhappy and fails to parse the file correctly.

The new code does not seem to have the problem, and is infinitely extensible.
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0004276)
Bill Hoffman (manager)
2006-06-16 14:07

Thanks, good catch. I have commited the fix to cvs, and will put it in 2.4.3.

 Issue History
Date Modified Username Field Change


Copyright © 2000 - 2018 MantisBT Team