summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/CMakeLists.txt4
-rw-r--r--Source/cmAddCustomCommandCommand.h4
-rw-r--r--Source/cmCacheManager.cxx12
-rw-r--r--Source/cmCacheManager.h6
-rw-r--r--Source/cmDocumentVariables.cxx14
-rw-r--r--Source/cmFindPackageCommand.cxx22
-rw-r--r--Source/cmGlobalMinGWMakefileGenerator.cxx12
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx36
-rw-r--r--Source/cmGlobalVisualStudio10Generator.h1
-rw-r--r--Source/cmGlobalVisualStudio10IA64Generator.cxx51
-rw-r--r--Source/cmGlobalVisualStudio10IA64Generator.h40
-rw-r--r--Source/cmGlobalVisualStudio10Win64Generator.cxx36
-rw-r--r--Source/cmGlobalVisualStudio10Win64Generator.h1
-rw-r--r--Source/cmGlobalVisualStudio9IA64Generator.cxx48
-rw-r--r--Source/cmGlobalVisualStudio9IA64Generator.h50
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx7
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.h10
-rw-r--r--Source/cmMakefile.cxx9
-rw-r--r--Source/cmMakefile.h2
-rw-r--r--Source/cmProperty.cxx4
-rw-r--r--Source/cmProperty.h2
-rw-r--r--Source/cmPropertyMap.cxx4
-rw-r--r--Source/cmPropertyMap.h2
-rw-r--r--Source/cmSetPropertyCommand.cxx20
-rw-r--r--Source/cmSetPropertyCommand.h6
-rw-r--r--Source/cmSourceFile.cxx6
-rw-r--r--Source/cmSourceFile.h2
-rw-r--r--Source/cmTarget.cxx5
-rw-r--r--Source/cmTarget.h2
-rw-r--r--Source/cmTest.cxx4
-rw-r--r--Source/cmTest.h2
-rw-r--r--Source/cmTryCompileCommand.h9
-rw-r--r--Source/cmake.cxx10
-rw-r--r--Source/cmake.h2
-rw-r--r--Source/kwsys/kwsysDateStamp.cmake2
35 files changed, 343 insertions, 104 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index ca063d5..1c942ba 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -308,6 +308,8 @@ IF (WIN32)
cmGlobalVisualStudio8Win64Generator.h
cmGlobalVisualStudio9Win64Generator.cxx
cmGlobalVisualStudio9Win64Generator.h
+ cmGlobalVisualStudio9IA64Generator.cxx
+ cmGlobalVisualStudio9IA64Generator.h
cmVisualStudioGeneratorOptions.h
cmVisualStudioGeneratorOptions.cxx
cmVisualStudio10TargetGenerator.h
@@ -318,6 +320,8 @@ IF (WIN32)
cmGlobalVisualStudio10Generator.cxx
cmGlobalVisualStudio10Win64Generator.h
cmGlobalVisualStudio10Win64Generator.cxx
+ cmGlobalVisualStudio10IA64Generator.h
+ cmGlobalVisualStudio10IA64Generator.cxx
cmGlobalVisualStudioGenerator.cxx
cmGlobalVisualStudioGenerator.h
cmGlobalWatcomWMakeGenerator.cxx
diff --git a/Source/cmAddCustomCommandCommand.h b/Source/cmAddCustomCommandCommand.h
index 47b542c..05e7dc2 100644
--- a/Source/cmAddCustomCommandCommand.h
+++ b/Source/cmAddCustomCommandCommand.h
@@ -75,6 +75,10 @@ public:
"A target created in the same directory (CMakeLists.txt file) that "
"specifies any output of the custom command as a source file is given "
"a rule to generate the file using the command at build time. "
+ "Do not list the output in more than one independent target that may "
+ "build in parallel or the two instances of the rule may conflict "
+ "(instead use add_custom_target to drive the command and make the "
+ "other targets depend on that one). "
"If an output name is a relative path it will be interpreted "
"relative to the build tree directory corresponding to the current "
"source directory. "
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index c8374db..ab0bb79 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -849,7 +849,8 @@ void cmCacheManager::CacheEntry::SetProperty(const char* prop,
//----------------------------------------------------------------------------
void cmCacheManager::CacheEntry::AppendProperty(const char* prop,
- const char* value)
+ const char* value,
+ bool asString)
{
if(strcmp(prop, "TYPE") == 0)
{
@@ -859,7 +860,7 @@ void cmCacheManager::CacheEntry::AppendProperty(const char* prop,
{
if(value)
{
- if(!this->Value.empty() && *value)
+ if(!this->Value.empty() && *value && !asString)
{
this->Value += ";";
}
@@ -868,7 +869,7 @@ void cmCacheManager::CacheEntry::AppendProperty(const char* prop,
}
else
{
- this->Properties.AppendProperty(prop, value, cmProperty::CACHE);
+ this->Properties.AppendProperty(prop, value, cmProperty::CACHE, asString);
}
}
@@ -893,11 +894,12 @@ void cmCacheManager::CacheIterator::SetProperty(const char* p, const char* v)
//----------------------------------------------------------------------------
void cmCacheManager::CacheIterator::AppendProperty(const char* p,
- const char* v)
+ const char* v,
+ bool asString)
{
if(!this->IsAtEnd())
{
- this->GetEntry().AppendProperty(p, v);
+ this->GetEntry().AppendProperty(p, v, asString);
}
}
diff --git a/Source/cmCacheManager.h b/Source/cmCacheManager.h
index 314017b..9c94d21 100644
--- a/Source/cmCacheManager.h
+++ b/Source/cmCacheManager.h
@@ -41,7 +41,8 @@ private:
cmPropertyMap Properties;
const char* GetProperty(const char*) const;
void SetProperty(const char* property, const char* value);
- void AppendProperty(const char* property, const char* value);
+ void AppendProperty(const char* property, const char* value,
+ bool asString=false);
bool Initialized;
CacheEntry() : Value(""), Type(UNINITIALIZED), Initialized(false)
{}
@@ -61,7 +62,8 @@ public:
bool GetPropertyAsBool(const char*) const ;
bool PropertyExists(const char*) const;
void SetProperty(const char* property, const char* value);
- void AppendProperty(const char* property, const char* value);
+ void AppendProperty(const char* property, const char* value,
+ bool asString=false);
void SetProperty(const char* property, bool value);
const char* GetValue() const { return this->GetEntry().Value.c_str(); }
bool GetValueAsBool() const;
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index ea25e60..4e75f9c 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -719,6 +719,20 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"Variables That Change Behavior");
cm->DefineProperty
+ ("CMAKE_DISABLE_FIND_PACKAGE_<PackageName>", cmProperty::VARIABLE,
+ "Variable for disabling find_package() calls.",
+ "Every non-REQUIRED find_package() call in a project can be disabled "
+ "by setting the variable CMAKE_DISABLE_FIND_PACKAGE_<PackageName> to "
+ "TRUE. This can be used to build a project without an optional package, "
+ "although that package is installed.\n"
+ "This switch should be used during the initial CMake run. Otherwise if "
+ "the package has already been found in a previous CMake run, the "
+ "variables which have been stored in the cache will still be there. "
+ "In the case it is recommended to remove the cache variables for "
+ "this package from the cache using the cache editor or cmake -U", false,
+ "Variables That Change Behavior");
+
+ cm->DefineProperty
("CMAKE_USER_MAKE_RULES_OVERRIDE", cmProperty::VARIABLE,
"Specify a CMake file that overrides platform information.",
"CMake loads the specified file while enabling support for each "
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index 5f106bc..9d1c220 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -335,6 +335,10 @@ void cmFindPackageCommand::GenerateDocumentation()
this->CommandDocumentation += this->GenericDocumentationPathsOrder;
this->CommandDocumentation +=
"\n"
+ "Every non-REQUIRED find_package() call can be disabled by setting the "
+ "variable CMAKE_DISABLE_FIND_PACKAGE_<package> to TRUE. See the "
+ "documentation for the CMAKE_DISABLE_FIND_PACKAGE_<package> variable for "
+ "more information.\n"
"See the cmake_policy() command documentation for discussion of the "
"NO_POLICY_SCOPE option."
;
@@ -607,6 +611,24 @@ bool cmFindPackageCommand
}
}
+ std::string disableFindPackageVar = "CMAKE_DISABLE_FIND_PACKAGE_";
+ disableFindPackageVar += this->Name;
+ if(this->Makefile->IsOn(disableFindPackageVar.c_str()))
+ {
+ if (this->Required)
+ {
+ cmOStringStream e;
+ e << "for module " << this->Name << " called with REQUIRED, but "
+ << disableFindPackageVar
+ << " is enabled. A REQUIRED package cannot be disabled.";
+ this->SetError(e.str().c_str());
+ return false;
+ }
+
+ return true;
+ }
+
+
this->SetModuleVariables(components);
// See if there is a Find<package>.cmake module.
diff --git a/Source/cmGlobalMinGWMakefileGenerator.cxx b/Source/cmGlobalMinGWMakefileGenerator.cxx
index 2f558dc..a9e7798 100644
--- a/Source/cmGlobalMinGWMakefileGenerator.cxx
+++ b/Source/cmGlobalMinGWMakefileGenerator.cxx
@@ -66,18 +66,6 @@ cmLocalGenerator *cmGlobalMinGWMakefileGenerator::CreateLocalGenerator()
lg->SetPassMakeflags(false);
lg->SetUnixCD(true);
lg->SetMinGWMake(true);
-
- // mingw32-make has trouble running code like
- //
- // @echo message with spaces
- //
- // If quotes are added
- //
- // @echo "message with spaces"
- //
- // it runs but the quotes are displayed. Instead just use cmake to
- // echo.
- lg->SetNativeEchoCommand("@$(CMAKE_COMMAND) -E echo ", false);
return lg;
}
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 328a3da..ec8f4a5 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -175,3 +175,39 @@ std::string cmGlobalVisualStudio10Generator
}
return makeCommand;
}
+
+//----------------------------------------------------------------------------
+bool cmGlobalVisualStudio10Generator::Find64BitTools(cmMakefile* mf)
+{
+ if(!this->PlatformToolset.empty())
+ {
+ return true;
+ }
+ // This edition does not come with 64-bit tools. Look for them.
+ //
+ // TODO: Detect available tools? x64\v100 exists but does not work?
+ // KHLM\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\4.0;VCTargetsPath
+ // c:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/Platforms/
+ // {Itanium,Win32,x64}/PlatformToolsets/{v100,v90,Windows7.1SDK}
+ std::string winSDK_7_1;
+ if(cmSystemTools::ReadRegistryValue(
+ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\"
+ "Windows\\v7.1;InstallationFolder", winSDK_7_1))
+ {
+ cmOStringStream m;
+ m << "Found Windows SDK v7.1: " << winSDK_7_1;
+ mf->DisplayStatus(m.str().c_str(), -1);
+ this->PlatformToolset = "Windows7.1SDK";
+ return true;
+ }
+ else
+ {
+ cmOStringStream e;
+ e << "Cannot enable 64-bit tools with Visual Studio 2010 Express.\n"
+ << "Install the Microsoft Windows SDK v7.1 to get 64-bit tools:\n"
+ << " http://msdn.microsoft.com/en-us/windows/bb980924.aspx";
+ mf->IssueMessage(cmake::FATAL_ERROR, e.str().c_str());
+ cmSystemTools::SetFatalErrorOccured();
+ return false;
+ }
+}
diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h
index bef5642..8573670 100644
--- a/Source/cmGlobalVisualStudio10Generator.h
+++ b/Source/cmGlobalVisualStudio10Generator.h
@@ -74,6 +74,7 @@ public:
virtual std::string GetUserMacrosRegKeyBase();
virtual const char* GetCMakeCFGInitDirectory()
{ return "$(Configuration)";}
+ bool Find64BitTools(cmMakefile* mf);
protected:
virtual const char* GetIDEVersion() { return "10.0"; }
diff --git a/Source/cmGlobalVisualStudio10IA64Generator.cxx b/Source/cmGlobalVisualStudio10IA64Generator.cxx
new file mode 100644
index 0000000..5f70f6b
--- /dev/null
+++ b/Source/cmGlobalVisualStudio10IA64Generator.cxx
@@ -0,0 +1,51 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#include "cmGlobalVisualStudio10IA64Generator.h"
+#include "cmMakefile.h"
+#include "cmake.h"
+
+//----------------------------------------------------------------------------
+cmGlobalVisualStudio10IA64Generator::cmGlobalVisualStudio10IA64Generator()
+{
+}
+
+//----------------------------------------------------------------------------
+void cmGlobalVisualStudio10IA64Generator
+::GetDocumentation(cmDocumentationEntry& entry) const
+{
+ entry.Name = this->GetName();
+ entry.Brief = "Generates Visual Studio 10 Itanium project files.";
+ entry.Full = "";
+}
+
+//----------------------------------------------------------------------------
+void cmGlobalVisualStudio10IA64Generator
+::AddPlatformDefinitions(cmMakefile* mf)
+{
+ this->cmGlobalVisualStudio10Generator::AddPlatformDefinitions(mf);
+ mf->AddDefinition("CMAKE_FORCE_IA64", "TRUE");
+ mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "x64");
+ mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "x64");
+}
+
+//----------------------------------------------------------------------------
+void cmGlobalVisualStudio10IA64Generator
+::EnableLanguage(std::vector<std::string> const& languages,
+ cmMakefile* mf, bool optional)
+{
+ if(this->IsExpressEdition() && !this->Find64BitTools(mf))
+ {
+ return;
+ }
+ this->cmGlobalVisualStudio10Generator
+ ::EnableLanguage(languages, mf, optional);
+}
diff --git a/Source/cmGlobalVisualStudio10IA64Generator.h b/Source/cmGlobalVisualStudio10IA64Generator.h
new file mode 100644
index 0000000..a088272
--- /dev/null
+++ b/Source/cmGlobalVisualStudio10IA64Generator.h
@@ -0,0 +1,40 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#ifndef cmGlobalVisualStudio10IA64Generator_h
+#define cmGlobalVisualStudio10IA64Generator_h
+
+#include "cmGlobalVisualStudio10Generator.h"
+
+class cmGlobalVisualStudio10IA64Generator :
+ public cmGlobalVisualStudio10Generator
+{
+public:
+ cmGlobalVisualStudio10IA64Generator();
+ static cmGlobalGenerator* New() {
+ return new cmGlobalVisualStudio10IA64Generator; }
+
+ ///! Get the name for the generator.
+ virtual const char* GetName() const {
+ return cmGlobalVisualStudio10IA64Generator::GetActualName();}
+ static const char* GetActualName() {return "Visual Studio 10 IA64";}
+
+ virtual const char* GetPlatformName() const {return "Itanium";}
+
+ /** Get the documentation entry for this generator. */
+ virtual void GetDocumentation(cmDocumentationEntry& entry) const;
+
+ virtual void AddPlatformDefinitions(cmMakefile* mf);
+
+ virtual void EnableLanguage(std::vector<std::string>const& languages,
+ cmMakefile *, bool optional);
+};
+#endif
diff --git a/Source/cmGlobalVisualStudio10Win64Generator.cxx b/Source/cmGlobalVisualStudio10Win64Generator.cxx
index 8600777..49dc473 100644
--- a/Source/cmGlobalVisualStudio10Win64Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Win64Generator.cxx
@@ -38,42 +38,6 @@ void cmGlobalVisualStudio10Win64Generator
}
//----------------------------------------------------------------------------
-bool cmGlobalVisualStudio10Win64Generator::Find64BitTools(cmMakefile* mf)
-{
- if(!this->PlatformToolset.empty())
- {
- return true;
- }
- // This edition does not come with 64-bit tools. Look for them.
- //
- // TODO: Detect available tools? x64\v100 exists but does not work?
- // KHLM\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\4.0;VCTargetsPath
- // c:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/Platforms/
- // {Itanium,Win32,x64}/PlatformToolsets/{v100,v90,Windows7.1SDK}
- std::string winSDK_7_1;
- if(cmSystemTools::ReadRegistryValue(
- "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\"
- "Windows\\v7.1;InstallationFolder", winSDK_7_1))
- {
- cmOStringStream m;
- m << "Found Windows SDK v7.1: " << winSDK_7_1;
- mf->DisplayStatus(m.str().c_str(), -1);
- this->PlatformToolset = "Windows7.1SDK";
- return true;
- }
- else
- {
- cmOStringStream e;
- e << "Cannot enable 64-bit tools with Visual Studio 2010 Express.\n"
- << "Install the Microsoft Windows SDK v7.1 to get 64-bit tools:\n"
- << " http://msdn.microsoft.com/en-us/windows/bb980924.aspx";
- mf->IssueMessage(cmake::FATAL_ERROR, e.str().c_str());
- cmSystemTools::SetFatalErrorOccured();
- return false;
- }
-}
-
-//----------------------------------------------------------------------------
void cmGlobalVisualStudio10Win64Generator
::EnableLanguage(std::vector<std::string> const& languages,
cmMakefile* mf, bool optional)
diff --git a/Source/cmGlobalVisualStudio10Win64Generator.h b/Source/cmGlobalVisualStudio10Win64Generator.h
index e6d3dc5..8a2de4c 100644
--- a/Source/cmGlobalVisualStudio10Win64Generator.h
+++ b/Source/cmGlobalVisualStudio10Win64Generator.h
@@ -34,7 +34,6 @@ public:
virtual void AddPlatformDefinitions(cmMakefile* mf);
- bool Find64BitTools(cmMakefile* mf);
virtual void EnableLanguage(std::vector<std::string>const& languages,
cmMakefile *, bool optional);
};
diff --git a/Source/cmGlobalVisualStudio9IA64Generator.cxx b/Source/cmGlobalVisualStudio9IA64Generator.cxx
new file mode 100644
index 0000000..d49739b
--- /dev/null
+++ b/Source/cmGlobalVisualStudio9IA64Generator.cxx
@@ -0,0 +1,48 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#include "cmGlobalVisualStudio9IA64Generator.h"
+#include "cmLocalVisualStudio7Generator.h"
+#include "cmMakefile.h"
+
+
+cmGlobalVisualStudio9IA64Generator::cmGlobalVisualStudio9IA64Generator()
+{
+ this->ArchitectureId = "Itanium";
+}
+
+///! Create a local generator appropriate to this Global Generator
+cmLocalGenerator *cmGlobalVisualStudio9IA64Generator::CreateLocalGenerator()
+{
+ cmLocalVisualStudio7Generator *lg = new cmLocalVisualStudio7Generator;
+ lg->SetVersion9();
+ lg->SetPlatformName(this->GetPlatformName());
+ lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
+ lg->SetGlobalGenerator(this);
+ return lg;
+}
+
+//----------------------------------------------------------------------------
+void cmGlobalVisualStudio9IA64Generator
+::GetDocumentation(cmDocumentationEntry& entry) const
+{
+ entry.Name = this->GetName();
+ entry.Brief = "Generates Visual Studio 9 2008 Itanium project files.";
+ entry.Full = "";
+}
+
+//----------------------------------------------------------------------------
+void cmGlobalVisualStudio9IA64Generator
+::AddPlatformDefinitions(cmMakefile* mf)
+{
+ cmGlobalVisualStudio9Generator::AddPlatformDefinitions(mf);
+ mf->AddDefinition("CMAKE_FORCE_IA64", "TRUE");
+}
diff --git a/Source/cmGlobalVisualStudio9IA64Generator.h b/Source/cmGlobalVisualStudio9IA64Generator.h
new file mode 100644
index 0000000..e33ee15
--- /dev/null
+++ b/Source/cmGlobalVisualStudio9IA64Generator.h
@@ -0,0 +1,50 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#ifndef cmGlobalVisualStudio9IA64Generator_h
+#define cmGlobalVisualStudio9IA64Generator_h
+
+#include "cmGlobalVisualStudio9Generator.h"
+
+
+/** \class cmGlobalVisualStudio8IA64Generator
+ * \brief Write a Unix makefiles.
+ *
+ * cmGlobalVisualStudio8IA64Generator manages UNIX build process for a tree
+ */
+class cmGlobalVisualStudio9IA64Generator :
+ public cmGlobalVisualStudio9Generator
+{
+public:
+ cmGlobalVisualStudio9IA64Generator();
+ static cmGlobalGenerator* New() {
+ return new cmGlobalVisualStudio9IA64Generator; }
+
+ ///! Get the name for the generator.
+ virtual const char* GetName() const {
+ return cmGlobalVisualStudio9IA64Generator::GetActualName();}
+ static const char* GetActualName() {return "Visual Studio 9 2008 IA64";}
+
+ virtual const char* GetPlatformName() const {return "Itanium";}
+
+ /** Get the documentation entry for this generator. */
+ virtual void GetDocumentation(cmDocumentationEntry& entry) const;
+
+ ///! create the correct local generator
+ virtual cmLocalGenerator *CreateLocalGenerator();
+
+ /**
+ * Try to determine system infomation such as shared library
+ * extension, pthreads, byte order etc.
+ */
+ virtual void AddPlatformDefinitions(cmMakefile *);
+};
+#endif
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 5c2cda1..6ab5c2a 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -68,8 +68,6 @@ cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3()
this->ColorMakefile = false;
this->SkipPreprocessedSourceRules = false;
this->SkipAssemblySourceRules = false;
- this->NativeEchoCommand = "@echo ";
- this->NativeEchoWindows = true;
this->MakeCommandEscapeTargetTwice = false;
this->IsMakefileGenerator = true;
this->BorlandMakeCurlyHack = false;
@@ -1235,9 +1233,8 @@ cmLocalUnixMakefileGenerator3::AppendEcho(std::vector<std::string>& commands,
if(color_name.empty())
{
// Use the native echo command.
- cmd = this->NativeEchoCommand;
- cmd += this->EscapeForShell(line.c_str(), false,
- this->NativeEchoWindows);
+ cmd = "@echo ";
+ cmd += this->EscapeForShell(line.c_str(), false, true);
}
else
{
diff --git a/Source/cmLocalUnixMakefileGenerator3.h b/Source/cmLocalUnixMakefileGenerator3.h
index 9ff6e5e..0994222 100644
--- a/Source/cmLocalUnixMakefileGenerator3.h
+++ b/Source/cmLocalUnixMakefileGenerator3.h
@@ -127,14 +127,6 @@ public:
void SetSilentNoColon(bool v) {this->SilentNoColon = v;}
/**
- * Set the command to use for native make shell echo. The value
- * should include all parts of the command up to the beginning of
- * the message (including a whitespace separator).
- */
- void SetNativeEchoCommand(const char* cmd, bool isWindows)
- { this->NativeEchoCommand = cmd; this->NativeEchoWindows = isWindows; }
-
- /**
* Set the string used to include one makefile into another default
* is include.
*/
@@ -365,8 +357,6 @@ private:
std::string IncludeDirective;
std::string MakeSilentFlag;
std::string ConfigurationName;
- std::string NativeEchoCommand;
- bool NativeEchoWindows;
bool DefineWindowsNULL;
bool UnixCD;
bool PassMakeflags;
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 63bf03b..a5cdee4 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1759,6 +1759,10 @@ void cmMakefile::AddDefinition(const char* name, bool value)
void cmMakefile::CheckForUnusedVariables() const
{
+ if (!this->WarnUnused)
+ {
+ return;
+ }
const cmDefinitions& defs = this->Internal->VarStack.top();
const std::set<cmStdString>& locals = defs.LocalKeys();
std::set<cmStdString>::const_iterator it = locals.begin();
@@ -3332,7 +3336,8 @@ void cmMakefile::SetProperty(const char* prop, const char* value)
this->Properties.SetProperty(prop,value,cmProperty::DIRECTORY);
}
-void cmMakefile::AppendProperty(const char* prop, const char* value)
+void cmMakefile::AppendProperty(const char* prop, const char* value,
+ bool asString)
{
if (!prop)
{
@@ -3365,7 +3370,7 @@ void cmMakefile::AppendProperty(const char* prop, const char* value)
return;
}
- this->Properties.AppendProperty(prop,value,cmProperty::DIRECTORY);
+ this->Properties.AppendProperty(prop,value,cmProperty::DIRECTORY,asString);
}
const char *cmMakefile::GetPropertyOrDefinition(const char* prop)
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 1c1aef3..c01bb5d 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -799,7 +799,7 @@ public:
///! Set/Get a property of this directory
void SetProperty(const char *prop, const char *value);
- void AppendProperty(const char *prop, const char *value);
+ void AppendProperty(const char *prop, const char *value,bool asString=false);
const char *GetProperty(const char *prop);
const char *GetPropertyOrDefinition(const char *prop);
const char *GetProperty(const char *prop, cmProperty::ScopeType scope);
diff --git a/Source/cmProperty.cxx b/Source/cmProperty.cxx
index 166bd00..3b37cf3 100644
--- a/Source/cmProperty.cxx
+++ b/Source/cmProperty.cxx
@@ -19,10 +19,10 @@ void cmProperty::Set(const char *name, const char *value)
this->ValueHasBeenSet = true;
}
-void cmProperty::Append(const char *name, const char *value)
+void cmProperty::Append(const char *name, const char *value, bool asString)
{
this->Name = name;
- if(!this->Value.empty() && *value)
+ if(!this->Value.empty() && *value && !asString)
{
this->Value += ";";
}
diff --git a/Source/cmProperty.h b/Source/cmProperty.h
index 71bd1e7..e0fcd63 100644
--- a/Source/cmProperty.h
+++ b/Source/cmProperty.h
@@ -24,7 +24,7 @@ public:
void Set(const char *name, const char *value);
// append to this property
- void Append(const char *name, const char *value);
+ void Append(const char *name, const char *value, bool asString = false);
// get the value
const char *GetValue() const;
diff --git a/Source/cmPropertyMap.cxx b/Source/cmPropertyMap.cxx
index 052b811..a4d0bf3 100644
--- a/Source/cmPropertyMap.cxx
+++ b/Source/cmPropertyMap.cxx
@@ -59,7 +59,7 @@ void cmPropertyMap::SetProperty(const char *name, const char *value,
}
void cmPropertyMap::AppendProperty(const char* name, const char* value,
- cmProperty::ScopeType scope)
+ cmProperty::ScopeType scope, bool asString)
{
// Skip if nothing to append.
if(!name || !value || !*value)
@@ -81,7 +81,7 @@ void cmPropertyMap::AppendProperty(const char* name, const char* value,
#endif
cmProperty *prop = this->GetOrCreateProperty(name);
- prop->Append(name,value);
+ prop->Append(name,value,asString);
}
const char *cmPropertyMap
diff --git a/Source/cmPropertyMap.h b/Source/cmPropertyMap.h
index 02fb060..94275e2 100644
--- a/Source/cmPropertyMap.h
+++ b/Source/cmPropertyMap.h
@@ -25,7 +25,7 @@ public:
cmProperty::ScopeType scope);
void AppendProperty(const char* name, const char* value,
- cmProperty::ScopeType scope);
+ cmProperty::ScopeType scope, bool asString=false);
const char *GetPropertyValue(const char *name,
cmProperty::ScopeType scope,
diff --git a/Source/cmSetPropertyCommand.cxx b/Source/cmSetPropertyCommand.cxx
index 3a4773c..cc10840 100644
--- a/Source/cmSetPropertyCommand.cxx
+++ b/Source/cmSetPropertyCommand.cxx
@@ -20,6 +20,7 @@
cmSetPropertyCommand::cmSetPropertyCommand()
{
this->AppendMode = false;
+ this->AppendAsString = false;
this->Remove = true;
}
@@ -83,6 +84,13 @@ bool cmSetPropertyCommand
{
doing = DoingNone;
this->AppendMode = true;
+ this->AppendAsString = false;
+ }
+ else if(*arg == "APPEND_STRING")
+ {
+ doing = DoingNone;
+ this->AppendMode = true;
+ this->AppendAsString = true;
}
else if(doing == DoingNames)
{
@@ -152,7 +160,7 @@ bool cmSetPropertyCommand::HandleGlobalMode()
}
if(this->AppendMode)
{
- cm->AppendProperty(name, value);
+ cm->AppendProperty(name, value, this->AppendAsString);
}
else
{
@@ -218,7 +226,7 @@ bool cmSetPropertyCommand::HandleDirectoryMode()
}
if(this->AppendMode)
{
- mf->AppendProperty(name, value);
+ mf->AppendProperty(name, value, this->AppendAsString);
}
else
{
@@ -266,7 +274,7 @@ bool cmSetPropertyCommand::HandleTarget(cmTarget* target)
}
if(this->AppendMode)
{
- target->AppendProperty(name, value);
+ target->AppendProperty(name, value, this->AppendAsString);
}
else
{
@@ -317,7 +325,7 @@ bool cmSetPropertyCommand::HandleSource(cmSourceFile* sf)
if(this->AppendMode)
{
- sf->AppendProperty(name, value);
+ sf->AppendProperty(name, value, this->AppendAsString);
}
else
{
@@ -377,7 +385,7 @@ bool cmSetPropertyCommand::HandleTest(cmTest* test)
}
if(this->AppendMode)
{
- test->AppendProperty(name, value);
+ test->AppendProperty(name, value, this->AppendAsString);
}
else
{
@@ -464,7 +472,7 @@ bool cmSetPropertyCommand::HandleCacheEntry(cmCacheManager::CacheIterator& it)
}
if(this->AppendMode)
{
- it.AppendProperty(name, value);
+ it.AppendProperty(name, value, this->AppendAsString);
}
else
{
diff --git a/Source/cmSetPropertyCommand.h b/Source/cmSetPropertyCommand.h
index c477bb7..3a0169e 100644
--- a/Source/cmSetPropertyCommand.h
+++ b/Source/cmSetPropertyCommand.h
@@ -56,7 +56,7 @@ public:
" SOURCE [src1 [src2 ...]] |\n"
" TEST [test1 [test2 ...]] |\n"
" CACHE [entry1 [entry2 ...]]>\n"
- " [APPEND]\n"
+ " [APPEND] [APPEND_STRING]\n"
" PROPERTY <name> [value1 [value2 ...]])\n"
"Set one property on zero or more objects of a scope. "
"The first argument determines the scope in which the property "
@@ -77,6 +77,9 @@ public:
"list. "
"If the APPEND option is given the list is appended to any "
"existing property value."
+ "If the APPEND_STRING option is given the string is append to any "
+ "existing property value as string, i.e. it results in a longer "
+ "string and not a list of strings."
;
}
@@ -93,6 +96,7 @@ private:
std::string PropertyValue;
bool Remove;
bool AppendMode;
+ bool AppendAsString;
// Implementation of each property type.
bool HandleGlobalMode();
diff --git a/Source/cmSourceFile.cxx b/Source/cmSourceFile.cxx
index 42d3f06..dfa2c0b 100644
--- a/Source/cmSourceFile.cxx
+++ b/Source/cmSourceFile.cxx
@@ -291,13 +291,15 @@ void cmSourceFile::SetProperty(const char* prop, const char* value)
}
//----------------------------------------------------------------------------
-void cmSourceFile::AppendProperty(const char* prop, const char* value)
+void cmSourceFile::AppendProperty(const char* prop, const char* value,
+ bool asString)
{
if (!prop)
{
return;
}
- this->Properties.AppendProperty(prop, value, cmProperty::SOURCE_FILE);
+ this->Properties.AppendProperty(prop, value, cmProperty::SOURCE_FILE,
+ asString);
}
//----------------------------------------------------------------------------
diff --git a/Source/cmSourceFile.h b/Source/cmSourceFile.h
index 2dc8488..55147e1 100644
--- a/Source/cmSourceFile.h
+++ b/Source/cmSourceFile.h
@@ -44,7 +44,7 @@ public:
///! Set/Get a property of this source file
void SetProperty(const char *prop, const char *value);
- void AppendProperty(const char* prop, const char* value);
+ void AppendProperty(const char* prop, const char* value,bool asString=false);
const char *GetProperty(const char *prop) const;
bool GetPropertyAsBool(const char *prop) const;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 2cb3c01..e10ba4a 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -2191,13 +2191,14 @@ void cmTarget::SetProperty(const char* prop, const char* value)
}
//----------------------------------------------------------------------------
-void cmTarget::AppendProperty(const char* prop, const char* value)
+void cmTarget::AppendProperty(const char* prop, const char* value,
+ bool asString)
{
if (!prop)
{
return;
}
- this->Properties.AppendProperty(prop, value, cmProperty::TARGET);
+ this->Properties.AppendProperty(prop, value, cmProperty::TARGET, asString);
this->MaybeInvalidatePropertyCache(prop);
}
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 28652e2..26fcef2 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -224,7 +224,7 @@ public:
///! Set/Get a property of this target file
void SetProperty(const char *prop, const char *value);
- void AppendProperty(const char* prop, const char* value);
+ void AppendProperty(const char* prop, const char* value,bool asString=false);
const char *GetProperty(const char *prop);
const char *GetProperty(const char *prop, cmProperty::ScopeType scope);
bool GetPropertyAsBool(const char *prop);
diff --git a/Source/cmTest.cxx b/Source/cmTest.cxx
index c25a8b6..502c174 100644
--- a/Source/cmTest.cxx
+++ b/Source/cmTest.cxx
@@ -84,13 +84,13 @@ void cmTest::SetProperty(const char* prop, const char* value)
}
//----------------------------------------------------------------------------
-void cmTest::AppendProperty(const char* prop, const char* value)
+void cmTest::AppendProperty(const char* prop, const char* value, bool asString)
{
if (!prop)
{
return;
}
- this->Properties.AppendProperty(prop, value, cmProperty::TEST);
+ this->Properties.AppendProperty(prop, value, cmProperty::TEST, asString);
}
//----------------------------------------------------------------------------
diff --git a/Source/cmTest.h b/Source/cmTest.h
index e27a24e..6223a01 100644
--- a/Source/cmTest.h
+++ b/Source/cmTest.h
@@ -47,7 +47,7 @@ public:
///! Set/Get a property of this source file
void SetProperty(const char *prop, const char *value);
- void AppendProperty(const char* prop, const char* value);
+ void AppendProperty(const char* prop, const char* value,bool asString=false);
const char *GetProperty(const char *prop) const;
bool GetPropertyAsBool(const char *prop) const;
cmPropertyMap &GetProperties() { return this->Properties; };
diff --git a/Source/cmTryCompileCommand.h b/Source/cmTryCompileCommand.h
index 9923d03..0d57633 100644
--- a/Source/cmTryCompileCommand.h
+++ b/Source/cmTryCompileCommand.h
@@ -25,7 +25,7 @@ public:
/**
* This is a virtual constructor for the command.
*/
- virtual cmCommand* Clone()
+ virtual cmCommand* Clone()
{
return new cmTryCompileCommand;
}
@@ -45,7 +45,7 @@ public:
/**
* Succinct documentation.
*/
- virtual const char* GetTerseDocumentation()
+ virtual const char* GetTerseDocumentation()
{
return "Try building some code.";
}
@@ -102,14 +102,15 @@ public:
"In both versions of the command, "
"if OUTPUT_VARIABLE is specified, then the "
"output from the build process is stored in the given variable. "
- "Return the success or failure in "
+ "The success or failure of the try_compile, i.e. TRUE or FALSE "
+ "respectively, is returned in "
"RESULT_VAR. CMAKE_FLAGS can be used to pass -DVAR:TYPE=VALUE flags "
"to the cmake that is run during the build. "
"Set variable CMAKE_TRY_COMPILE_CONFIGURATION to choose a build "
"configuration."
;
}
-
+
cmTypeMacro(cmTryCompileCommand, cmCoreTryCompile);
};
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 45927cb..ec87ab6 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -62,8 +62,10 @@
# include "cmGlobalVisualStudio71Generator.h"
# include "cmGlobalVisualStudio8Generator.h"
# include "cmGlobalVisualStudio9Generator.h"
+# include "cmGlobalVisualStudio9IA64Generator.h"
# include "cmGlobalVisualStudio9Win64Generator.h"
# include "cmGlobalVisualStudio10Generator.h"
+# include "cmGlobalVisualStudio10IA64Generator.h"
# include "cmGlobalVisualStudio10Win64Generator.h"
# include "cmGlobalVisualStudio8Win64Generator.h"
# include "cmGlobalBorlandMakefileGenerator.h"
@@ -2440,6 +2442,8 @@ void cmake::AddDefaultGenerators()
&cmGlobalVisualStudio7Generator::New;
this->Generators[cmGlobalVisualStudio10Generator::GetActualName()] =
&cmGlobalVisualStudio10Generator::New;
+ this->Generators[cmGlobalVisualStudio10IA64Generator::GetActualName()] =
+ &cmGlobalVisualStudio10IA64Generator::New;
this->Generators[cmGlobalVisualStudio10Win64Generator::GetActualName()] =
&cmGlobalVisualStudio10Win64Generator::New;
this->Generators[cmGlobalVisualStudio71Generator::GetActualName()] =
@@ -2448,6 +2452,8 @@ void cmake::AddDefaultGenerators()
&cmGlobalVisualStudio8Generator::New;
this->Generators[cmGlobalVisualStudio9Generator::GetActualName()] =
&cmGlobalVisualStudio9Generator::New;
+ this->Generators[cmGlobalVisualStudio9IA64Generator::GetActualName()] =
+ &cmGlobalVisualStudio9IA64Generator::New;
this->Generators[cmGlobalVisualStudio9Win64Generator::GetActualName()] =
&cmGlobalVisualStudio9Win64Generator::New;
this->Generators[cmGlobalVisualStudio8Win64Generator::GetActualName()] =
@@ -3536,7 +3542,7 @@ void cmake::SetProperty(const char* prop, const char* value)
this->Properties.SetProperty(prop, value, cmProperty::GLOBAL);
}
-void cmake::AppendProperty(const char* prop, const char* value)
+void cmake::AppendProperty(const char* prop, const char* value, bool asString)
{
if (!prop)
{
@@ -3549,7 +3555,7 @@ void cmake::AppendProperty(const char* prop, const char* value)
this->DebugConfigs.clear();
}
- this->Properties.AppendProperty(prop, value, cmProperty::GLOBAL);
+ this->Properties.AppendProperty(prop, value, cmProperty::GLOBAL, asString);
}
const char *cmake::GetProperty(const char* prop)
diff --git a/Source/cmake.h b/Source/cmake.h
index fac86c1..b791b7c 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -263,7 +263,7 @@ class cmake
///! Set/Get a property of this target file
void SetProperty(const char *prop, const char *value);
- void AppendProperty(const char *prop, const char *value);
+ void AppendProperty(const char *prop, const char *value,bool asString=false);
const char *GetProperty(const char *prop);
const char *GetProperty(const char *prop, cmProperty::ScopeType scope);
bool GetPropertyAsBool(const char *prop);
diff --git a/Source/kwsys/kwsysDateStamp.cmake b/Source/kwsys/kwsysDateStamp.cmake
index 6961f2d..d53ea09 100644
--- a/Source/kwsys/kwsysDateStamp.cmake
+++ b/Source/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR 2011)
SET(KWSYS_DATE_STAMP_MONTH 07)
# KWSys version date day component. Format is DD.
-SET(KWSYS_DATE_STAMP_DAY 18)
+SET(KWSYS_DATE_STAMP_DAY 26)