Merge topic 'minor-cleanups'

b8dc7fa Genex: Disallow LINKER_LANGUAGE only when used on a static library.
c8a10ba cmTarget: Fix iface libraries and languages for static libraries.
f94bdb3 cmTarget: Remove duplicates when printing traces of tll signatures
ff3d5fa Export: Fix typo of LINK_INTERFACE_LIBRARIES.
79a7a81 Docs: Document variables for default visibility values.
6f6391b Docs: Generalize and de-duplicate VISIBILITY_PREFIX docs.
d8cb47f Docs: Trim trailing whitespace in generated doc.
f10e648 Docs: Document existing target property debugging options.
4f4d69f Qt4Macros: Simplify some variable population.
a413a40 Qt4Macros: Remove undefined varible use.
b60a29e Qt4Macros: Remove unneeded generate CONDITION.
e454cba Docs: Document file(GENERATE) CONDITION as optional.
This commit is contained in:
Brad King
2013-07-29 09:54:34 -04:00
committed by CMake Topic Stage
17 changed files with 97 additions and 37 deletions
+21 -3
View File
@@ -963,9 +963,11 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"Enables tracing output for target properties.",
"This variable can be populated with a list of properties to generate "
"debug output for when evaluating target properties. Currently it can "
"only be used when evaluating the INCLUDE_DIRECTORIES target property. "
"In that case, it outputs a backtrace for each include directory in "
"the build. Default is unset.",false,"Variables That Change Behavior");
"only be used when evaluating the INCLUDE_DIRECTORIES, "
"COMPILE_DEFINITIONS and COMPILE_OPTIONS target properties. "
"In that case, it outputs a backtrace for each entry in the target "
"propertythe build. Default is unset.",
false,"Variables That Change Behavior");
// Variables defined by CMake that describe the system
@@ -1518,6 +1520,22 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"See that target property for additional information.",
false,
"Variables that Control the Build");
cm->DefineProperty
("CMAKE_<LANG>_VISIBILITY_PRESET", cmProperty::VARIABLE,
"Default value for <LANG>_VISIBILITY_PRESET of targets.",
"This variable is used to initialize the "
"<LANG>_VISIBILITY_PRESET property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
cm->DefineProperty
("CMAKE_VISIBILITY_INLINES_HIDDEN", cmProperty::VARIABLE,
"Default value for VISIBILITY_INLINES_HIDDEN of targets.",
"This variable is used to initialize the "
"VISIBILITY_INLINES_HIDDEN property on all the targets. "
"See that target property for additional information.",
false,
"Variables that Control the Build");
// Variables defined when the a language is enabled These variables will
// also be defined whenever CMake has loaded its support for compiling (LANG)
+1 -1
View File
@@ -641,7 +641,7 @@ cmExportFileGenerator
cmMakefile *mf = target->GetMakefile();
cmOStringStream e;
e << "Target \"" << target->GetName() << "\" has policy CMP0022 enabled, "
"but also has old-style INTERFACE_LINK_LIBRARIES properties "
"but also has old-style LINK_INTERFACE_LIBRARIES properties "
"populated, but it was exported without the "
"EXPORT_LINK_INTERFACE_LIBRARIES to export the old-style properties";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
+1 -1
View File
@@ -90,7 +90,7 @@ public:
" file(TIMESTAMP filename variable [<format string>] [UTC])\n"
" file(GENERATE OUTPUT output_file\n"
" <INPUT input_file|CONTENT input_content>\n"
" CONDITION expression)\n"
" [CONDITION expression])\n"
"WRITE will write a message into a file called 'filename'. It "
"overwrites the file if it already exists, and creates the file "
"if it does not exist. (If the file is a build input, use "
+3 -2
View File
@@ -790,11 +790,12 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
if (propertyName == "LINKER_LANGUAGE")
{
if (dagCheckerParent && dagCheckerParent->EvaluatingLinkLibraries())
if (target->LinkLanguagePropagatesToDependents() &&
dagCheckerParent && dagCheckerParent->EvaluatingLinkLibraries())
{
reportError(context, content->GetOriginalExpression(),
"LINKER_LANGUAGE target property can not be used while evaluating "
"link libraries");
"link libraries for a static library");
return std::string();
}
const char *lang = target->GetLinkerLanguage(context->Config);
+1 -1
View File
@@ -4081,7 +4081,7 @@ void cmMakefile::DefineProperties(cmake *cm)
"List of options to pass to the compiler.",
"This property specifies the list of directories given "
"so far for this property. "
"This property exists on directories and targets. "
"This property exists on directories and targets."
"\n"
"The target property values are used by the generators to set "
"the options for the compiler.\n"
+31 -19
View File
@@ -304,7 +304,7 @@ void cmTarget::DefineProperties(cmake *cm)
"List of options to pass to the compiler.",
"This property specifies the list of options specified "
"so far for this property. "
"This property exists on directories and targets. "
"This property exists on directories and targets."
"\n"
"The target property values are used by the generators to set "
"the options for the compiler.\n"
@@ -1001,22 +1001,13 @@ void cmTarget::DefineProperties(cmake *cm)
"(such as \"lib\") on a library name.");
cm->DefineProperty
("C_VISIBILITY_PRESET", cmProperty::TARGET,
("<LANG>_VISIBILITY_PRESET", cmProperty::TARGET,
"Value for symbol visibility compile flags",
"The C_VISIBILITY_PRESET property determines the value passed used in "
"a visibility related compile option, such as -fvisibility=. This "
"property only has an affect for libraries and executables with "
"The <LANG>_VISIBILITY_PRESET property determines the value passed in "
"a visibility related compile option, such as -fvisibility= for <LANG>. "
"This property only has an affect for libraries and executables with "
"exports. This property is initialized by the value of the variable "
"CMAKE_C_VISIBILITY_PRESET if it is set when a target is created.");
cm->DefineProperty
("CXX_VISIBILITY_PRESET", cmProperty::TARGET,
"Value for symbol visibility compile flags",
"The CXX_VISIBILITY_PRESET property determines the value passed used in "
"a visibility related compile option, such as -fvisibility=. This "
"property only has an affect for libraries and executables with "
"exports. This property is initialized by the value of the variable "
"CMAKE_CXX_VISIBILITY_PRESET if it is set when a target is created.");
"CMAKE_<LANG>_VISIBILITY_PRESET if it is set when a target is created.");
cm->DefineProperty
("VISIBILITY_INLINES_HIDDEN", cmProperty::TARGET,
@@ -2530,6 +2521,7 @@ void cmTarget::GetTllSignatureTraces(cmOStringStream &s,
= (sig == cmTarget::KeywordTLLSignature ? "keyword"
: "plain");
s << "The uses of the " << sigString << " signature are here:\n";
std::set<cmStdString> emitted;
for(std::vector<cmListFileBacktrace>::const_iterator it = sigs.begin();
it != sigs.end(); ++it)
{
@@ -2537,7 +2529,12 @@ void cmTarget::GetTllSignatureTraces(cmOStringStream &s,
if(i != it->end())
{
cmListFileContext const& lfc = *i;
s << " * " << (lfc.Line? "": " in ") << lfc << std::endl;
cmOStringStream line;
line << " * " << (lfc.Line? "": " in ") << lfc << std::endl;
if (emitted.insert(line.str()).second)
{
s << line.str();
}
++i;
}
}
@@ -6244,7 +6241,7 @@ void cmTarget::ComputeImportInfo(std::string const& desired_config,
}
// Get the link languages.
if(this->GetType() == cmTarget::STATIC_LIBRARY)
if(this->LinkLanguagePropagatesToDependents())
{
std::string linkProp = "IMPORTED_LINK_INTERFACE_LANGUAGES";
linkProp += suffix;
@@ -6470,6 +6467,15 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
break;
}
}
else
{
iface.Libraries = impl->Libraries;
if(this->LinkLanguagePropagatesToDependents())
{
// Targets using this archive need its language runtime libraries.
iface.Languages = impl->Languages;
}
}
}
}
@@ -6498,7 +6504,8 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
headTarget,
this, &dagChecker), iface.Libraries);
if(this->GetType() == cmTarget::SHARED_LIBRARY)
if(this->GetType() == cmTarget::SHARED_LIBRARY
|| this->GetType() == cmTarget::STATIC_LIBRARY)
{
// Shared libraries may have runtime implementation dependencies
// on other shared libraries that are not in the interface.
@@ -6532,6 +6539,11 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
}
}
}
if(this->LinkLanguagePropagatesToDependents())
{
// Targets using this archive need its language runtime libraries.
iface.Languages = impl->Languages;
}
}
}
else if (this->GetPolicyStatusCMP0022() == cmPolicies::WARN
@@ -6546,7 +6558,7 @@ bool cmTarget::ComputeLinkInterface(const char* config, LinkInterface& iface,
iface.ImplementationIsInterface = true;
iface.Libraries = impl->Libraries;
iface.WrongConfigLibraries = impl->WrongConfigLibraries;
if(this->GetType() == cmTarget::STATIC_LIBRARY)
if(this->LinkLanguagePropagatesToDependents())
{
// Targets using this archive need its language runtime libraries.
iface.Languages = impl->Languages;
+3
View File
@@ -549,6 +549,9 @@ public:
void FinalizeSystemIncludeDirectories();
bool LinkLanguagePropagatesToDependents() const
{ return this->TargetTypeValue == STATIC_LIBRARY; }
private:
// The set of include directories that are marked as system include
// directories.