[Cmake-commits] [cmake-commits] hoffman committed cmLocalVisualStudio7Generator.cxx 1.217.2.7 1.217.2.8 cmMakefile.cxx 1.463.2.5 1.463.2.6 cmMakefile.h 1.230.2.2 1.230.2.3
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Jun 30 16:10:49 EDT 2008
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv12797/Source
Modified Files:
Tag: CMake-2-6
cmLocalVisualStudio7Generator.cxx cmMakefile.cxx cmMakefile.h
Log Message:
ENH: check in RC 6 merges from trunk
Index: cmLocalVisualStudio7Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v
retrieving revision 1.217.2.7
retrieving revision 1.217.2.8
diff -C 2 -d -r1.217.2.7 -r1.217.2.8
*** cmLocalVisualStudio7Generator.cxx 25 Jun 2008 13:51:32 -0000 1.217.2.7
--- cmLocalVisualStudio7Generator.cxx 30 Jun 2008 20:10:32 -0000 1.217.2.8
***************
*** 2174,2179 ****
this->FlagString += " ";
this->FlagString +=
! cmSystemTools::EscapeWindowsShellArgument(flag,
! cmsysSystem_Shell_Flag_VSIDE);
}
--- 2174,2181 ----
this->FlagString += " ";
this->FlagString +=
! cmSystemTools::EscapeWindowsShellArgument(
! flag,
! cmsysSystem_Shell_Flag_AllowMakeVariables |
! cmsysSystem_Shell_Flag_VSIDE);
}
Index: cmMakefile.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefile.h,v
retrieving revision 1.230.2.2
retrieving revision 1.230.2.3
diff -C 2 -d -r1.230.2.2 -r1.230.2.3
*** cmMakefile.h 1 May 2008 16:35:40 -0000 1.230.2.2
--- cmMakefile.h 30 Jun 2008 20:10:36 -0000 1.230.2.3
***************
*** 830,833 ****
--- 830,838 ----
std::string DefineFlags;
+ // Track the value of the computed DEFINITIONS property.
+ void AddDefineFlag(const char*, std::string&);
+ void RemoveDefineFlag(const char*, std::string::size_type, std::string&);
+ std::string DefineFlagsOrig;
+
#if defined(CMAKE_BUILD_WITH_CMAKE)
std::vector<cmSourceGroup> SourceGroups;
Index: cmMakefile.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefile.cxx,v
retrieving revision 1.463.2.5
retrieving revision 1.463.2.6
diff -C 2 -d -r1.463.2.5 -r1.463.2.6
*** cmMakefile.cxx 13 Jun 2008 12:55:17 -0000 1.463.2.5
--- cmMakefile.cxx 30 Jun 2008 20:10:35 -0000 1.463.2.6
***************
*** 1019,1022 ****
--- 1019,1025 ----
}
+ // Update the string used for the old DEFINITIONS property.
+ this->AddDefineFlag(flag, this->DefineFlagsOrig);
+
// If this is really a definition, update COMPILE_DEFINITIONS.
if(this->ParseDefineFlag(flag, false))
***************
*** 1025,1028 ****
--- 1028,1037 ----
}
+ // Add this flag that does not look like a definition.
+ this->AddDefineFlag(flag, this->DefineFlags);
+ }
+
+ void cmMakefile::AddDefineFlag(const char* flag, std::string& dflags)
+ {
// remove any \n\r
std::string ret = flag;
***************
*** 1040,1045 ****
}
! this->DefineFlags += " ";
! this->DefineFlags += ret;
}
--- 1049,1054 ----
}
! dflags += " ";
! dflags += ret;
}
***************
*** 1054,1057 ****
--- 1063,1069 ----
}
+ // Update the string used for the old DEFINITIONS property.
+ this->RemoveDefineFlag(flag, len, this->DefineFlagsOrig);
+
// If this is really a definition, update COMPILE_DEFINITIONS.
if(this->ParseDefineFlag(flag, true))
***************
*** 1060,1073 ****
}
// Remove all instances of the flag that are surrounded by
// whitespace or the beginning/end of the string.
! for(std::string::size_type lpos = this->DefineFlags.find(flag, 0);
! lpos != std::string::npos; lpos = this->DefineFlags.find(flag, lpos))
{
std::string::size_type rpos = lpos + len;
! if((lpos <= 0 || isspace(this->DefineFlags[lpos-1])) &&
! (rpos >= this->DefineFlags.size() || isspace(this->DefineFlags[rpos])))
{
! this->DefineFlags.erase(lpos, len);
}
else
--- 1072,1093 ----
}
+ // Remove this flag that does not look like a definition.
+ this->RemoveDefineFlag(flag, len, this->DefineFlags);
+ }
+
+ void cmMakefile::RemoveDefineFlag(const char* flag,
+ std::string::size_type len,
+ std::string& dflags)
+ {
// Remove all instances of the flag that are surrounded by
// whitespace or the beginning/end of the string.
! for(std::string::size_type lpos = dflags.find(flag, 0);
! lpos != std::string::npos; lpos = dflags.find(flag, lpos))
{
std::string::size_type rpos = lpos + len;
! if((lpos <= 0 || isspace(dflags[lpos-1])) &&
! (rpos >= dflags.size() || isspace(dflags[rpos])))
{
! dflags.erase(lpos, len);
}
else
***************
*** 2909,2914 ****
if (!strcmp("PARENT_DIRECTORY",prop))
{
! output = this->LocalGenerator->GetParent()
! ->GetMakefile()->GetStartDirectory();
return output.c_str();
}
--- 2929,2936 ----
if (!strcmp("PARENT_DIRECTORY",prop))
{
! if(cmLocalGenerator* plg = this->LocalGenerator->GetParent())
! {
! output = plg->GetMakefile()->GetStartDirectory();
! }
return output.c_str();
}
***************
*** 2955,2960 ****
}
else if (!strcmp("DEFINITIONS",prop))
! {
! output = this->GetDefineFlags();
return output.c_str();
}
--- 2977,2982 ----
}
else if (!strcmp("DEFINITIONS",prop))
! {
! output += this->DefineFlagsOrig;
return output.c_str();
}
***************
*** 3177,3181 ****
"are currently being processed, in order. So if one listfile "
"does an INCLUDE command then that is effectively pushing "
! "the included listfile onto the stack.");
cm->DefineProperty
--- 3199,3203 ----
"are currently being processed, in order. So if one listfile "
"does an INCLUDE command then that is effectively pushing "
! "the included listfile onto the stack.", false);
cm->DefineProperty
***************
*** 3246,3249 ****
--- 3268,3329 ----
"The same concept applies to the default build of other generators.",
false);
+
+ cm->DefineProperty
+ ("PARENT_DIRECTORY", cmProperty::DIRECTORY,
+ "Source directory that added current subdirectory.",
+ "This read-only property specifies the source directory that "
+ "added the current source directory as a subdirectory of the build. "
+ "In the top-level directory the value is the empty-string.", false);
+
+ cm->DefineProperty
+ ("INCLUDE_REGULAR_EXPRESSION", cmProperty::DIRECTORY,
+ "Include file scanning regular expression.",
+ "This read-only property specifies the regular expression used "
+ "during dependency scanning to match include files that should "
+ "be followed. See the include_regular_expression command.", false);
+
+ cm->DefineProperty
+ ("VARIABLES", cmProperty::DIRECTORY,
+ "List of variables defined in the current directory.",
+ "This read-only property specifies the list of CMake variables "
+ "currently defined. "
+ "It is intended for debugging purposes.", false);
+
+ cm->DefineProperty
+ ("CACHE_VARIABLES", cmProperty::DIRECTORY,
+ "List of cache variables available in the current directory.",
+ "This read-only property specifies the list of CMake cache "
+ "variables currently defined. "
+ "It is intended for debugging purposes.", false);
+
+ cm->DefineProperty
+ ("MACROS", cmProperty::DIRECTORY,
+ "List of macro commands available in the current directory.",
+ "This read-only property specifies the list of CMake macros "
+ "currently defined. "
+ "It is intended for debugging purposes. "
+ "See the macro command.", false);
+
+ cm->DefineProperty
+ ("DEFINITIONS", cmProperty::DIRECTORY,
+ "For CMake 2.4 compatibility only. Use COMPILE_DEFINITIONS instead.",
+ "This read-only property specifies the list of flags given so far "
+ "to the add_definitions command. "
+ "It is intended for debugging purposes. "
+ "Use the COMPILE_DEFINITIONS instead.", false);
+
+ cm->DefineProperty
+ ("INCLUDE_DIRECTORIES", cmProperty::DIRECTORY,
+ "List of preprocessor include file search directories.",
+ "This read-only property specifies the list of directories given "
+ "so far to the include_directories command. "
+ "It is intended for debugging purposes.", false);
+
+ cm->DefineProperty
+ ("LINK_DIRECTORIES", cmProperty::DIRECTORY,
+ "List of linker search directories.",
+ "This read-only property specifies the list of directories given "
+ "so far to the link_directories command. "
+ "It is intended for debugging purposes.", false);
}
More information about the Cmake-commits
mailing list