View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007086CMakeCMakepublic2008-05-23 16:372008-06-06 11:49
Reporteraxel.roebel 
Assigned To 
PrioritynormalSeverityblockReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionCMake-2-6 
Target VersionFixed in Version 
Summary0007086: Xcode generator generates invalid project
DescriptionDear Developpers

I added the flag
--param large-function-growth=400
to the compiler flags variable CMAKE_C_FLAGS_RELEASE and CMAKE_CXX_FLAGS_RELEASE and generated an XCode project. The generated project uses command lines containing the flags
  --param large-function
where the -growth=400 part is missing. Accordingly compilation fails.
I studied the code to see what happens and found the somewhat shortsighted
code in cmake-2.6.0/Source/cmGlobalXCodeGenerator.cxx that extratcts the
-g comamnd line flag using the ExtractFlag function. Unfortunatley this function does not check whether the -g that it finds is the start of
a parameter and accordingly it removes -growth=400 and destrois the flag.

Please find a patch fixing this behavior below

Besides this and another problem with Xcode that I report next
I am really very happy with cmake.

Thanks a lot.

Axel
Additional Information*** Source/cmGlobalXCodeGenerator.cxx Fri May 23 22:31:12 2008
--- cmake-2.6.0/Source/cmGlobalXCodeGenerator.cxx Mon May 5 20:25:55 2008
***************
*** 997,1003 ****
  {
    std::string retFlag;
    std::string::size_type pos = flags.find(flag);
! if(pos != flags.npos && (pos ==0 || flags[pos]==' '))
      {
      while(pos < flags.size() && flags[pos] != ' ')
        {
--- 997,1003 ----
  {
    std::string retFlag;
    std::string::size_type pos = flags.find(flag);
! if(pos != flags.npos)
      {
      while(pos < flags.size() && flags[pos] != ' ')
        {
***************
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0012098)
axel.roebel (reporter)
2008-05-23 16:42

The other problem I was signaling seems to be fixed in 2.6.
So now there is only one ;-)
(0012276)
Bill Hoffman (manager)
2008-06-06 11:14

Can you re-work your patch for 2.6 or CVS CMake?
(0012279)
axel.roebel (reporter)
2008-06-06 11:24

*** Source/cmGlobalXCodeGenerator.cxx Fri May 23 22:31:12 2008
 --- cmake-2.6.0/Source/cmGlobalXCodeGenerator.cxx Mon May 5 20:25:55 2008
 
Hm, I don't understand your question, this IS a patch
for 2.6.0. So there is no rework to be done.
(0012281)
Bill Hoffman (manager)
2008-06-06 11:49

Sorry, my mistake. I have made the fix in CVS, it will be in 2.6.1.

$ cvs commit -m "ENH: fix for flags that have sub-string matches" cmGlobalXCode
Generator.cxx
/cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v <-- cmGlobalXCodeGene
rator.cxx
new revision: 1.189; previous revision: 1.188

 Issue History
Date Modified Username Field Change
2008-05-23 16:37 axel.roebel New Issue
2008-05-23 16:42 axel.roebel Note Added: 0012098
2008-06-06 11:14 Bill Hoffman Note Added: 0012276
2008-06-06 11:24 axel.roebel Note Added: 0012279
2008-06-06 11:49 Bill Hoffman Note Added: 0012281
2008-06-06 11:49 Bill Hoffman Status new => closed
2008-06-06 11:49 Bill Hoffman Resolution open => fixed


Copyright © 2000 - 2018 MantisBT Team