ENH: put error checking for missing linker languages
This commit is contained in:
parent
56234aed4b
commit
36c8f1d157
@ -598,6 +598,12 @@ void cmLocalGenerator::CreateCustomTargetsAndCommands(std::set<cmStdString> cons
|
|||||||
case cmTarget::EXECUTABLE:
|
case cmTarget::EXECUTABLE:
|
||||||
{
|
{
|
||||||
const char* llang = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* llang = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!llang)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
target.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
// if the language is not in the set lang then create custom
|
// if the language is not in the set lang then create custom
|
||||||
// commands to build the target
|
// commands to build the target
|
||||||
if(lang.count(llang) == 0)
|
if(lang.count(llang) == 0)
|
||||||
@ -988,6 +994,12 @@ void cmLocalGenerator::GetTargetFlags(std::string& linkLibs,
|
|||||||
linkFlags += " ";
|
linkFlags += " ";
|
||||||
}
|
}
|
||||||
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
target.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string langVar = "CMAKE_";
|
std::string langVar = "CMAKE_";
|
||||||
langVar += linkLanguage;
|
langVar += linkLanguage;
|
||||||
std::string flagsVar = langVar + "_FLAGS";
|
std::string flagsVar = langVar + "_FLAGS";
|
||||||
@ -1056,6 +1068,12 @@ void cmLocalGenerator::OutputLinkLibraries(std::ostream& fout,
|
|||||||
buildType = cmSystemTools::UpperCase(buildType);
|
buildType = cmSystemTools::UpperCase(buildType);
|
||||||
|
|
||||||
const char* linkLanguage = tgt.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = tgt.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
tgt.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string runTimeFlagVar = "CMAKE_SHARED_LIBRARY_RUNTIME_";
|
std::string runTimeFlagVar = "CMAKE_SHARED_LIBRARY_RUNTIME_";
|
||||||
runTimeFlagVar += linkLanguage;
|
runTimeFlagVar += linkLanguage;
|
||||||
runTimeFlagVar += "_FLAG";
|
runTimeFlagVar += "_FLAG";
|
||||||
|
@ -876,6 +876,12 @@ void cmLocalUnixMakefileGenerator::OutputSharedLibraryRule(std::ostream& fout,
|
|||||||
const cmTarget &t)
|
const cmTarget &t)
|
||||||
{
|
{
|
||||||
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language target:",
|
||||||
|
t.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string createRule = "CMAKE_";
|
std::string createRule = "CMAKE_";
|
||||||
createRule += linkLanguage;
|
createRule += linkLanguage;
|
||||||
createRule += "_CREATE_SHARED_LIBRARY";
|
createRule += "_CREATE_SHARED_LIBRARY";
|
||||||
@ -922,6 +928,12 @@ void cmLocalUnixMakefileGenerator::OutputModuleLibraryRule(std::ostream& fout,
|
|||||||
const cmTarget &t)
|
const cmTarget &t)
|
||||||
{
|
{
|
||||||
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
t.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string createRule = "CMAKE_";
|
std::string createRule = "CMAKE_";
|
||||||
createRule += linkLanguage;
|
createRule += linkLanguage;
|
||||||
createRule += "_CREATE_SHARED_MODULE";
|
createRule += "_CREATE_SHARED_MODULE";
|
||||||
@ -954,6 +966,12 @@ void cmLocalUnixMakefileGenerator::OutputStaticLibraryRule(std::ostream& fout,
|
|||||||
const cmTarget &t)
|
const cmTarget &t)
|
||||||
{
|
{
|
||||||
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
t.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string createRule = "CMAKE_";
|
std::string createRule = "CMAKE_";
|
||||||
createRule += linkLanguage;
|
createRule += linkLanguage;
|
||||||
createRule += "_CREATE_STATIC_LIBRARY";
|
createRule += "_CREATE_STATIC_LIBRARY";
|
||||||
@ -1034,7 +1052,12 @@ void cmLocalUnixMakefileGenerator::OutputExecutableRule(std::ostream& fout,
|
|||||||
linkFlags += " ";
|
linkFlags += " ";
|
||||||
}
|
}
|
||||||
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = t.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
t.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string langVar = "CMAKE_";
|
std::string langVar = "CMAKE_";
|
||||||
langVar += linkLanguage;
|
langVar += linkLanguage;
|
||||||
|
|
||||||
|
@ -1065,6 +1065,12 @@ void cmLocalVisualStudio6Generator::WriteDSPHeader(std::ostream& fout, const cha
|
|||||||
target.GetType() <= cmTarget::MODULE_LIBRARY)
|
target.GetType() <= cmTarget::MODULE_LIBRARY)
|
||||||
{
|
{
|
||||||
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
target.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
// if CXX is on and the target contains cxx code then add the cxx flags
|
// if CXX is on and the target contains cxx code then add the cxx flags
|
||||||
std::string baseFlagVar = "CMAKE_";
|
std::string baseFlagVar = "CMAKE_";
|
||||||
baseFlagVar += linkLanguage;
|
baseFlagVar += linkLanguage;
|
||||||
|
@ -329,6 +329,12 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
|
|||||||
if(strcmp(configType, "10") != 0)
|
if(strcmp(configType, "10") != 0)
|
||||||
{
|
{
|
||||||
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
target.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string baseFlagVar = "CMAKE_";
|
std::string baseFlagVar = "CMAKE_";
|
||||||
baseFlagVar += linkLanguage;
|
baseFlagVar += linkLanguage;
|
||||||
baseFlagVar += "_FLAGS";
|
baseFlagVar += "_FLAGS";
|
||||||
@ -629,6 +635,12 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
|
|||||||
fout << "\t\t\t\tGenerateDebugInformation=\"TRUE\"\n";
|
fout << "\t\t\t\tGenerateDebugInformation=\"TRUE\"\n";
|
||||||
}
|
}
|
||||||
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
target.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::string stackVar = "CMAKE_";
|
std::string stackVar = "CMAKE_";
|
||||||
stackVar += linkLanguage;
|
stackVar += linkLanguage;
|
||||||
stackVar += "_STACK_SIZE";
|
stackVar += "_STACK_SIZE";
|
||||||
@ -697,8 +709,14 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
|
|||||||
{
|
{
|
||||||
fout << "\t\t\t\tSubSystem=\"1\"\n";
|
fout << "\t\t\t\tSubSystem=\"1\"\n";
|
||||||
}
|
}
|
||||||
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
const char* linkLanguage = target.GetLinkerLanguage(this->GetGlobalGenerator());
|
||||||
std::string stackVar = "CMAKE_";
|
if(!linkLanguage)
|
||||||
|
{
|
||||||
|
cmSystemTools::Error("CMake can not determine linker language for target:",
|
||||||
|
target.GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::string stackVar = "CMAKE_";
|
||||||
stackVar += linkLanguage;
|
stackVar += linkLanguage;
|
||||||
stackVar += "_STACK_SIZE";
|
stackVar += "_STACK_SIZE";
|
||||||
const char* stackVal = m_Makefile->GetDefinition(stackVar.c_str());
|
const char* stackVal = m_Makefile->GetDefinition(stackVar.c_str());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user