[Cmake-commits] [cmake-commits] hoffman committed CMakeLists.txt 1.397.2.3 1.397.2.4 cmELF.cxx 1.8.2.2 1.8.2.3 cmExtraEclipseCDT4Generator.cxx 1.13.2.1 1.13.2.2 cmGlobalUnixMakefileGenerator3.cxx 1.126.2.3 1.126.2.4 cmGlobalXCodeGenerator.cxx 1.186.2.5 1.186.2.6 cmLocalGenerator.cxx 1.269.2.5 1.269.2.6 cmLocalVisualStudio7Generator.cxx 1.217.2.8 1.217.2.9 cmMakefile.cxx 1.463.2.6 1.463.2.7 cmMakefileLibraryTargetGenerator.cxx 1.58.2.2 1.58.2.3 cmMakefileLibraryTargetGenerator.h 1.6.2.1 1.6.2.2 cmSourceFileLocation.cxx 1.3.2.3 1.3.2.4 cmSourceFileLocation.h 1.2 1.2.2.1 cmTarget.cxx 1.207.2.8 1.207.2.9 cmTarget.h 1.109.2.5 1.109.2.6 cmake.cxx 1.375.2.10 1.375.2.11 cmake.h 1.109.2.5 1.109.2.6 cmakemain.cxx 1.80.2.1 1.80.2.2

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Aug 6 17:04:22 EDT 2008


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv12802/Source

Modified Files:
      Tag: CMake-2-6
	CMakeLists.txt cmELF.cxx cmExtraEclipseCDT4Generator.cxx 
	cmGlobalUnixMakefileGenerator3.cxx cmGlobalXCodeGenerator.cxx 
	cmLocalGenerator.cxx cmLocalVisualStudio7Generator.cxx 
	cmMakefile.cxx cmMakefileLibraryTargetGenerator.cxx 
	cmMakefileLibraryTargetGenerator.h cmSourceFileLocation.cxx 
	cmSourceFileLocation.h cmTarget.cxx cmTarget.h cmake.cxx 
	cmake.h cmakemain.cxx 
Log Message:
ENH: merge in fixes from main tree 2.6.2 RC 1


Index: cmSourceFileLocation.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSourceFileLocation.cxx,v
retrieving revision 1.3.2.3
retrieving revision 1.3.2.4
diff -C 2 -d -r1.3.2.3 -r1.3.2.4
*** cmSourceFileLocation.cxx	30 Jul 2008 18:54:49 -0000	1.3.2.3
--- cmSourceFileLocation.cxx	6 Aug 2008 21:04:19 -0000	1.3.2.4
***************
*** 153,180 ****
  
  //----------------------------------------------------------------------------
  bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
  {
!   if(this->AmbiguousExtension || loc.AmbiguousExtension)
      {
!     // Need to compare without the file extension.
!     std::string thisName;
!     if(this->AmbiguousExtension)
!       {
!       thisName = this->Name;
!       }
!     else
!       {
!       thisName = cmSystemTools::GetFilenameWithoutLastExtension(this->Name);
!       }
!     std::string locName;
!     if(loc.AmbiguousExtension)
        {
!       locName = loc.Name;
        }
!     else
        {
!       locName = cmSystemTools::GetFilenameWithoutLastExtension(loc.Name);
        }
!     if(thisName != locName)
        {
        return false;
--- 153,218 ----
  
  //----------------------------------------------------------------------------
+ bool
+ cmSourceFileLocation
+ ::MatchesAmbiguousExtension(cmSourceFileLocation const& loc) const
+ {
+   // This location's extension is not ambiguous but loc's extension
+   // is.  See if the names match as-is.
+   if(this->Name == loc.Name)
+     {
+     return true;
+     }
+ 
+   // Check if loc's name could possibly be extended to our name by
+   // adding an extension.
+   if(!(this->Name.size() > loc.Name.size() &&
+        this->Name.substr(0, loc.Name.size()) == loc.Name &&
+        this->Name[loc.Name.size()] == '.'))
+     {
+     return false;
+     }
+ 
+   // Only a fixed set of extensions will be tried to match a file on
+   // disk.  One of these must match if loc refers to this source file.
+   std::string ext = this->Name.substr(loc.Name.size()+1);
+   cmMakefile* mf = this->Makefile;
+   const std::vector<std::string>& srcExts = mf->GetSourceExtensions();
+   if(std::find(srcExts.begin(), srcExts.end(), ext) != srcExts.end())
+     {
+     return true;
+     }
+   const std::vector<std::string>& hdrExts = mf->GetHeaderExtensions();
+   if(std::find(hdrExts.begin(), hdrExts.end(), ext) != hdrExts.end())
+     {
+     return true;
+     }
+   return false;
+ }
+ 
+ //----------------------------------------------------------------------------
  bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
  {
!   if(this->AmbiguousExtension && loc.AmbiguousExtension)
      {
!     // Both extensions are ambiguous.  Since only the old fixed set of
!     // extensions will be tried, the names must match at this point to
!     // be the same file.
!     if(this->Name != loc.Name)
        {
!       return false;
        }
!     }
!   else if(this->AmbiguousExtension)
!     {
!     // Only "this" extension is ambiguous.
!     if(!loc.MatchesAmbiguousExtension(*this))
        {
!       return false;
        }
!     }
!   else if(loc.AmbiguousExtension)
!     {
!     // Only "loc" extension is ambiguous.
!     if(!this->MatchesAmbiguousExtension(loc))
        {
        return false;
***************
*** 183,187 ****
    else
      {
!     // Compare with extension.
      if(this->Name != loc.Name)
        {
--- 221,225 ----
    else
      {
!     // Neither extension is ambiguous.
      if(this->Name != loc.Name)
        {

Index: cmLocalVisualStudio7Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v
retrieving revision 1.217.2.8
retrieving revision 1.217.2.9
diff -C 2 -d -r1.217.2.8 -r1.217.2.9
*** cmLocalVisualStudio7Generator.cxx	30 Jun 2008 20:10:32 -0000	1.217.2.8
--- cmLocalVisualStudio7Generator.cxx	6 Aug 2008 21:04:19 -0000	1.217.2.9
***************
*** 400,403 ****
--- 400,404 ----
    {"StructMemberAlignment", "Zp4", "struct align 4 byte ",     "3", 0},
    {"StructMemberAlignment", "Zp8", "struct align 8 byte ",     "4", 0},
+   {"WarningLevel", "W0", "Warning level", "0", 0},
    {"WarningLevel", "W1", "Warning level", "1", 0},
    {"WarningLevel", "W2", "Warning level", "2", 0},

Index: cmake.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmake.h,v
retrieving revision 1.109.2.5
retrieving revision 1.109.2.6
diff -C 2 -d -r1.109.2.5 -r1.109.2.6
*** cmake.h	25 Jun 2008 13:51:32 -0000	1.109.2.5
--- cmake.h	6 Aug 2008 21:04:20 -0000	1.109.2.6
***************
*** 315,318 ****
--- 315,321 ----
    void SetDebugOutputOn(bool b) { this->DebugOutput = b;}
  
+   // Do we want trace output during the cmake run.
+   bool GetTrace() { return this->Trace;}
+   void SetTrace(bool b) {  this->Trace = b;}
    // Define a property
    void DefineProperty(const char *name, cmProperty::ScopeType scope,
***************
*** 439,442 ****
--- 442,446 ----
    bool ScriptMode;
    bool DebugOutput;
+   bool Trace;
    std::string CMakeEditCommand;
    std::string CMakeCommand;

Index: cmGlobalUnixMakefileGenerator3.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalUnixMakefileGenerator3.cxx,v
retrieving revision 1.126.2.3
retrieving revision 1.126.2.4
diff -C 2 -d -r1.126.2.3 -r1.126.2.4
*** cmGlobalUnixMakefileGenerator3.cxx	13 Jun 2008 12:55:17 -0000	1.126.2.3
--- cmGlobalUnixMakefileGenerator3.cxx	6 Aug 2008 21:04:19 -0000	1.126.2.4
***************
*** 60,65 ****
      if(!mf->GetDefinition(langComp.c_str()))
        {
!       cmSystemTools::Error(langComp.c_str(), 
!                            " not set, after EnableLanguage");
        continue;
        }
--- 60,68 ----
      if(!mf->GetDefinition(langComp.c_str()))
        {
!       if(!optional)
!         {
!         cmSystemTools::Error(langComp.c_str(), 
!                              " not set, after EnableLanguage");
!         }
        continue;
        }

Index: cmSourceFileLocation.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSourceFileLocation.h,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C 2 -d -r1.2 -r1.2.2.1
*** cmSourceFileLocation.h	18 Jun 2007 15:59:23 -0000	1.2
--- cmSourceFileLocation.h	6 Aug 2008 21:04:19 -0000	1.2.2.1
***************
*** 95,98 ****
--- 95,100 ----
    std::string Name;
  
+   bool MatchesAmbiguousExtension(cmSourceFileLocation const& loc) const;
+ 
    // Update the location with additional knowledge.
    void Update(cmSourceFileLocation const& loc);

Index: cmake.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmake.cxx,v
retrieving revision 1.375.2.10
retrieving revision 1.375.2.11
diff -C 2 -d -r1.375.2.10 -r1.375.2.11
*** cmake.cxx	31 Jul 2008 15:52:24 -0000	1.375.2.10
--- cmake.cxx	6 Aug 2008 21:04:20 -0000	1.375.2.11
***************
*** 141,144 ****
--- 141,145 ----
  cmake::cmake()
  {
+   this->Trace = false;
    this->SuppressDevWarnings = false;
    this->DoSuppressDevWarnings = false;
***************
*** 619,622 ****
--- 620,628 ----
        this->SetDebugOutputOn(true);
        }
+     else if(arg.find("--trace",0) == 0)
+       {
+       std::cout << "Running with trace output on.\n";
+       this->SetTrace(true);
+       }
      else if(arg.find("-G",0) == 0)
        {
***************
*** 852,856 ****
    std::string cpackCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
      "/cpack" + cmSystemTools::GetFilenameExtension(cMakeSelf);
!   if(cmSystemTools::FileExists(ctestCommand.c_str()))
      {
      this->CacheManager->AddCacheEntry
--- 858,862 ----
    std::string cpackCommand = cmSystemTools::GetFilenamePath(cMakeSelf) +
      "/cpack" + cmSystemTools::GetFilenameExtension(cMakeSelf);
!   if(cmSystemTools::FileExists(cpackCommand.c_str()))
      {
      this->CacheManager->AddCacheEntry
***************
*** 1182,1186 ****
          << "\n";
        return 0;
!     }
  
      // Command to calculate the md5sum of a file
--- 1188,1192 ----
          << "\n";
        return 0;
!       }
  
      // Command to calculate the md5sum of a file

Index: cmLocalGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalGenerator.cxx,v
retrieving revision 1.269.2.5
retrieving revision 1.269.2.6
diff -C 2 -d -r1.269.2.5 -r1.269.2.6
*** cmLocalGenerator.cxx	30 Jul 2008 18:54:49 -0000	1.269.2.5
--- cmLocalGenerator.cxx	6 Aug 2008 21:04:19 -0000	1.269.2.6
***************
*** 1574,1578 ****
        {
        rpath += cli.GetRuntimeFlag();
!       rpath += this->Convert(ri->c_str(), FULL, SHELL, false);
        rpath += " ";
        }
--- 1574,1578 ----
        {
        rpath += cli.GetRuntimeFlag();
!       rpath += this->Convert(ri->c_str(), NONE, SHELL, false);
        rpath += " ";
        }
***************
*** 1741,1744 ****
--- 1741,1753 ----
      return inName;
      }
+ 
+   // Check for a source file in this directory that matches the
+   // dependency.
+   if(cmSourceFile* sf = this->Makefile->GetSource(inName))
+     {
+     name = sf->GetFullPath();
+     return name;
+     }
+ 
    // Treat the name as relative to the source directory in which it
    // was given.
***************
*** 2580,2584 ****
      flags |= cmsysSystem_Shell_Flag_VSIDE;
      }
!   else
      {
      flags |= cmsysSystem_Shell_Flag_Make;
--- 2589,2593 ----
      flags |= cmsysSystem_Shell_Flag_VSIDE;
      }
!   else if(!this->LinkScriptShell)
      {
      flags |= cmsysSystem_Shell_Flag_Make;

Index: cmExtraEclipseCDT4Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmExtraEclipseCDT4Generator.cxx,v
retrieving revision 1.13.2.1
retrieving revision 1.13.2.2
diff -C 2 -d -r1.13.2.1 -r1.13.2.2
*** cmExtraEclipseCDT4Generator.cxx	8 Apr 2008 16:22:48 -0000	1.13.2.1
--- cmExtraEclipseCDT4Generator.cxx	6 Aug 2008 21:04:19 -0000	1.13.2.2
***************
*** 352,356 ****
        }
      // for EXECUTABLE_OUTPUT_PATH when not in binary dir
!     std::string outputPath = mf->GetDefinition("EXECUTABLE_OUTPUT_PATH");
      if (!outputPath.empty() && !cmSystemTools::IsSubDirectory(
                          outputPath.c_str(), this->HomeOutputDirectory.c_str()))
--- 352,356 ----
        }
      // for EXECUTABLE_OUTPUT_PATH when not in binary dir
!     std::string outputPath = mf->GetSafeDefinition("EXECUTABLE_OUTPUT_PATH");
      if (!outputPath.empty() && !cmSystemTools::IsSubDirectory(
                          outputPath.c_str(), this->HomeOutputDirectory.c_str()))
***************
*** 369,375 ****
        }
      // for LIBRARY_OUTPUT_PATH when not in binary dir
!     if (outputPath != mf->GetDefinition("LIBRARY_OUTPUT_PATH"))
        {
!       outputPath = mf->GetDefinition("LIBRARY_OUTPUT_PATH");
        if (!outputPath.empty() && !cmSystemTools::IsSubDirectory(
                          outputPath.c_str(), this->HomeOutputDirectory.c_str()))
--- 369,375 ----
        }
      // for LIBRARY_OUTPUT_PATH when not in binary dir
!     if (outputPath != mf->GetSafeDefinition("LIBRARY_OUTPUT_PATH"))
        {
!       outputPath = mf->GetSafeDefinition("LIBRARY_OUTPUT_PATH");
        if (!outputPath.empty() && !cmSystemTools::IsSubDirectory(
                          outputPath.c_str(), this->HomeOutputDirectory.c_str()))

Index: cmMakefileLibraryTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v
retrieving revision 1.58.2.2
retrieving revision 1.58.2.3
diff -C 2 -d -r1.58.2.2 -r1.58.2.3
*** cmMakefileLibraryTargetGenerator.cxx	21 Apr 2008 00:44:52 -0000	1.58.2.2
--- cmMakefileLibraryTargetGenerator.cxx	6 Aug 2008 21:04:19 -0000	1.58.2.3
***************
*** 365,368 ****
--- 365,376 ----
    this->LocalGenerator->AppendFlags(linkFlags, extraFlags);
  
+   // Add OSX version flags, if any.
+   if(this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
+      this->Target->GetType() == cmTarget::MODULE_LIBRARY)
+     {
+     this->AppendOSXVerFlag(linkFlags, linkLanguage, "COMPATIBILITY", true);
+     this->AppendOSXVerFlag(linkFlags, linkLanguage, "CURRENT", false);
+     }
+ 
    // Construct the name of the library.
    std::string targetName;
***************
*** 605,608 ****
--- 613,617 ----
  
    // For static libraries there might be archiving rules.
+   bool haveStaticLibraryRule = false;
    std::vector<std::string> archiveCreateCommands;
    std::vector<std::string> archiveAppendCommands;
***************
*** 611,614 ****
--- 620,625 ----
    if(this->Target->GetType() == cmTarget::STATIC_LIBRARY)
      {
+     haveStaticLibraryRule =
+       this->Makefile->GetDefinition(linkRuleVar)? true:false;
      std::string arCreateVar = "CMAKE_";
      arCreateVar += linkLanguage;
***************
*** 636,639 ****
--- 647,651 ----
    // Decide whether to use archiving rules.
    bool useArchiveRules =
+     !haveStaticLibraryRule &&
      !archiveCreateCommands.empty() && !archiveAppendCommands.empty();
    if(useArchiveRules)
***************
*** 906,907 ****
--- 918,953 ----
                            libCleanFiles.begin(),libCleanFiles.end());
  }
+ 
+ //----------------------------------------------------------------------------
+ void
+ cmMakefileLibraryTargetGenerator
+ ::AppendOSXVerFlag(std::string& flags, const char* lang,
+                    const char* name, bool so)
+ {
+   // Lookup the flag to specify the version.
+   std::string fvar = "CMAKE_";
+   fvar += lang;
+   fvar += "_OSX_";
+   fvar += name;
+   fvar += "_VERSION_FLAG";
+   const char* flag = this->Makefile->GetDefinition(fvar.c_str());
+ 
+   // Skip if no such flag.
+   if(!flag)
+     {
+     return;
+     }
+ 
+   // Lookup the target version information.
+   int major;
+   int minor;
+   int patch;
+   this->Target->GetTargetVersion(so, major, minor, patch);
+   if(major > 0 || minor > 0 || patch > 0)
+     {
+     // Append the flag since a non-zero version is specified.
+     cmOStringStream vflag;
+     vflag << flag << major << "." << minor << "." << patch;
+     this->LocalGenerator->AppendFlags(flags, vflag.str().c_str());
+     }
+ }

Index: cmGlobalXCodeGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalXCodeGenerator.cxx,v
retrieving revision 1.186.2.5
retrieving revision 1.186.2.6
diff -C 2 -d -r1.186.2.5 -r1.186.2.6
*** cmGlobalXCodeGenerator.cxx	15 Jul 2008 15:35:46 -0000	1.186.2.5
--- cmGlobalXCodeGenerator.cxx	6 Aug 2008 21:04:19 -0000	1.186.2.6
***************
*** 1456,1463 ****
      buildSettings->AddAttribute("LIBRARY_STYLE",
                                  this->CreateString("DYNAMIC"));
-     buildSettings->AddAttribute("DYLIB_COMPATIBILITY_VERSION",
-                                 this->CreateString("1"));
-     buildSettings->AddAttribute("DYLIB_CURRENT_VERSION",
-                                 this->CreateString("1"));
      break;
      }
--- 1456,1459 ----
***************
*** 1677,1680 ****
--- 1673,1708 ----
                                  "-Wmost -Wno-four-char-constants"
                                  " -Wno-unknown-pragmas"));
+ 
+   // Runtime version information.
+   if(target.GetType() == cmTarget::SHARED_LIBRARY)
+     {
+     int major;
+     int minor;
+     int patch;
+ 
+     // VERSION -> current_version
+     target.GetTargetVersion(false, major, minor, patch);
+     if(major == 0 && minor == 0 && patch == 0)
+       {
+       // Xcode always wants at least 1.0.0
+       major = 1;
+       }
+     cmOStringStream v;
+     v << major << "." << minor << "." << patch;
+     buildSettings->AddAttribute("DYLIB_CURRENT_VERSION",
+                                 this->CreateString(v.str().c_str()));
+ 
+     // SOVERSION -> compatibility_version
+     target.GetTargetVersion(true, major, minor, patch);
+     if(major == 0 && minor == 0 && patch == 0)
+       {
+       // Xcode always wants at least 1.0.0
+       major = 1;
+       }
+     cmOStringStream vso;
+     vso << major << "." << minor << "." << patch;
+     buildSettings->AddAttribute("DYLIB_COMPATIBILITY_VERSION",
+                                 this->CreateString(vso.str().c_str()));
+     }
  }
  

Index: cmakemain.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmakemain.cxx,v
retrieving revision 1.80.2.1
retrieving revision 1.80.2.2
diff -C 2 -d -r1.80.2.1 -r1.80.2.2
*** cmakemain.cxx	15 May 2008 19:39:57 -0000	1.80.2.1
--- cmakemain.cxx	6 Aug 2008 21:04:20 -0000	1.80.2.2
***************
*** 102,105 ****
--- 102,108 ----
     "Print extra stuff during the cmake run like stack traces with "
     "message(send_error ) calls."},
+   {"--trace", "Put cmake in trace mode.",
+    "Print a trace of all calls made and from where with "
+    "message(send_error ) calls."},
    {"--help-command cmd [file]", "Print help for a single command and exit.",
     "Full documentation specific to the given command is displayed. "

Index: cmTarget.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmTarget.h,v
retrieving revision 1.109.2.5
retrieving revision 1.109.2.6
diff -C 2 -d -r1.109.2.5 -r1.109.2.6
*** cmTarget.h	28 Jul 2008 15:31:35 -0000	1.109.2.5
--- cmTarget.h	6 Aug 2008 21:04:20 -0000	1.109.2.6
***************
*** 270,273 ****
--- 270,278 ----
    void GetTargetVersion(int& major, int& minor);
  
+   /** Get the target major, minor, and patch version numbers
+       interpreted from the VERSION or SOVERSION property.  Version 0
+       is returned if the property is not set or cannot be parsed.  */
+   void GetTargetVersion(bool soversion, int& major, int& minor, int& patch);
+ 
    /**
     * Trace through the source files in this target and add al source files

Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CMakeLists.txt,v
retrieving revision 1.397.2.3
retrieving revision 1.397.2.4
diff -C 2 -d -r1.397.2.3 -r1.397.2.4
*** CMakeLists.txt	14 Jul 2008 16:24:34 -0000	1.397.2.3
--- CMakeLists.txt	6 Aug 2008 21:04:19 -0000	1.397.2.4
***************
*** 303,306 ****
--- 303,319 ----
  ENDIF(CMAKE_BUILD_ON_VISUAL_STUDIO OR MINGW)
  
+ # With the Microsoft compiler (for _bstr_t support used from
+ # cmCallVisualStudioMacro) we need the comsupp lib. Needed when
+ # _MSC_VER and HAVE_COMDEF_H are defined...
+ #
+ IF(MSVC)
+   IF(MSVC60)
+     # comsuppd did not yet exist in VS6
+     TARGET_LINK_LIBRARIES(CMakeLib comsupp)
+   ELSE(MSVC60)
+     TARGET_LINK_LIBRARIES(CMakeLib optimized comsupp debug comsuppd)
+   ENDIF(MSVC60)
+ ENDIF(MSVC)
+ 
  #
  # CTestLib

Index: cmELF.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmELF.cxx,v
retrieving revision 1.8.2.2
retrieving revision 1.8.2.3
diff -C 2 -d -r1.8.2.2 -r1.8.2.3
*** cmELF.cxx	15 May 2008 19:39:54 -0000	1.8.2.2
--- cmELF.cxx	6 Aug 2008 21:04:19 -0000	1.8.2.3
***************
*** 885,890 ****
  {
    if(this->Valid() &&
!      this->Internal->GetFileType() == cmELF::FileTypeExecutable ||
!      this->Internal->GetFileType() == cmELF::FileTypeSharedLibrary)
      {
      return this->Internal->GetRPath();
--- 885,890 ----
  {
    if(this->Valid() &&
!      (this->Internal->GetFileType() == cmELF::FileTypeExecutable ||
!       this->Internal->GetFileType() == cmELF::FileTypeSharedLibrary))
      {
      return this->Internal->GetRPath();
***************
*** 900,905 ****
  {
    if(this->Valid() &&
!      this->Internal->GetFileType() == cmELF::FileTypeExecutable ||
!      this->Internal->GetFileType() == cmELF::FileTypeSharedLibrary)
      {
      return this->Internal->GetRunPath();
--- 900,905 ----
  {
    if(this->Valid() &&
!      (this->Internal->GetFileType() == cmELF::FileTypeExecutable ||
!       this->Internal->GetFileType() == cmELF::FileTypeSharedLibrary))
      {
      return this->Internal->GetRunPath();

Index: cmMakefileLibraryTargetGenerator.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.h,v
retrieving revision 1.6.2.1
retrieving revision 1.6.2.2
diff -C 2 -d -r1.6.2.1 -r1.6.2.2
*** cmMakefileLibraryTargetGenerator.h	8 Apr 2008 16:22:50 -0000	1.6.2.1
--- cmMakefileLibraryTargetGenerator.h	6 Aug 2008 21:04:19 -0000	1.6.2.2
***************
*** 42,45 ****
--- 42,48 ----
    // Store the computd framework version for OS X Frameworks.
    std::string FrameworkVersion;
+ 
+   void AppendOSXVerFlag(std::string& flags, const char* lang,
+                         const char* name, bool so);
  };
  

Index: cmTarget.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmTarget.cxx,v
retrieving revision 1.207.2.8
retrieving revision 1.207.2.9
diff -C 2 -d -r1.207.2.8 -r1.207.2.9
*** cmTarget.cxx	28 Jul 2008 15:31:35 -0000	1.207.2.8
--- cmTarget.cxx	6 Aug 2008 21:04:19 -0000	1.207.2.9
***************
*** 1760,1769 ****
  void cmTarget::GetTargetVersion(int& major, int& minor)
  {
    // Set the default values.
    major = 0;
    minor = 0;
  
!   // Look for a VERSION property.
!   if(const char* version = this->GetProperty("VERSION"))
      {
      // Try to parse the version number and store the results that were
--- 1760,1779 ----
  void cmTarget::GetTargetVersion(int& major, int& minor)
  {
+   int patch;
+   this->GetTargetVersion(false, major, minor, patch);
+ }
+ 
+ //----------------------------------------------------------------------------
+ void cmTarget::GetTargetVersion(bool soversion,
+                                 int& major, int& minor, int& patch)
+ {
    // Set the default values.
    major = 0;
    minor = 0;
+   patch = 0;
  
!   // Look for a VERSION or SOVERSION property.
!   const char* prop = soversion? "SOVERSION" : "VERSION";
!   if(const char* version = this->GetProperty(prop))
      {
      // Try to parse the version number and store the results that were
***************
*** 1771,1776 ****
      int parsed_major;
      int parsed_minor;
!     switch(sscanf(version, "%d.%d", &parsed_major, &parsed_minor))
        {
        case 2: minor = parsed_minor; // no break!
        case 1: major = parsed_major; // no break!
--- 1781,1789 ----
      int parsed_major;
      int parsed_minor;
!     int parsed_patch;
!     switch(sscanf(version, "%d.%d.%d",
!                   &parsed_major, &parsed_minor, &parsed_patch))
        {
+       case 3: patch = parsed_patch; // no break!
        case 2: minor = parsed_minor; // no break!
        case 1: major = parsed_major; // no break!

Index: cmMakefile.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefile.cxx,v
retrieving revision 1.463.2.6
retrieving revision 1.463.2.7
diff -C 2 -d -r1.463.2.6 -r1.463.2.7
*** cmMakefile.cxx	30 Jun 2008 20:10:35 -0000	1.463.2.6
--- cmMakefile.cxx	6 Aug 2008 21:04:19 -0000	1.463.2.7
***************
*** 396,399 ****
--- 396,414 ----
         (!this->GetCMakeInstance()->GetScriptMode() || pcmd->IsScriptable()))
        {
+       // if trace is one, print out invoke information
+       if(this->GetCMakeInstance()->GetTrace())
+         {
+         cmOStringStream msg;
+         msg << lff.FilePath << "(" << lff.Line << "):  ";
+         msg << lff.Name << "(";
+         for(std::vector<cmListFileArgument>::const_iterator i = 
+               lff.Arguments.begin(); i != lff.Arguments.end(); ++i)
+           {
+           msg << i->Value;
+           msg << " ";
+           }
+         msg << ")";
+         cmSystemTools::Message(msg.str().c_str());
+         }
        // Try invoking the command.
        if(!pcmd->InvokeInitialPass(lff.Arguments,status) ||



More information about the Cmake-commits mailing list