mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-18 17:31:57 +08:00
VS: Add CSharp project uuid and file extension
This is in preparation for adding CSharp language support to the VS generator.
This commit is contained in:

committed by
Brad King

parent
0de6a404aa
commit
4f78b9ff2d
@@ -159,6 +159,10 @@ void cmGlobalVisualStudio71Generator::WriteProject(std::ostream& fout,
|
||||
ext = ".vfproj";
|
||||
project = "Project(\"{6989167D-11E4-40FE-8C1A-2192A86A7E90}\") = \"";
|
||||
}
|
||||
if (this->TargetIsCSharpOnly(t)) {
|
||||
ext = ".csproj";
|
||||
project = "Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"";
|
||||
}
|
||||
const char* targetExt = t->GetProperty("GENERATOR_FILE_NAME_EXT");
|
||||
if (targetExt) {
|
||||
ext = targetExt;
|
||||
|
@@ -734,6 +734,27 @@ bool cmGlobalVisualStudioGenerator::TargetIsFortranOnly(
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cmGlobalVisualStudioGenerator::TargetIsCSharpOnly(
|
||||
cmGeneratorTarget const* gt)
|
||||
{
|
||||
// check to see if this is a C# build
|
||||
std::set<std::string> languages;
|
||||
{
|
||||
// Issue diagnostic if the source files depend on the config.
|
||||
std::vector<cmSourceFile*> sources;
|
||||
if (!gt->GetConfigCommonSourceFiles(sources)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
gt->GetLanguages(languages, "");
|
||||
if (languages.size() == 1) {
|
||||
if (*languages.begin() == "CSharp") {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cmGlobalVisualStudioGenerator::TargetCompare::operator()(
|
||||
cmGeneratorTarget const* l, cmGeneratorTarget const* r) const
|
||||
{
|
||||
|
@@ -69,6 +69,9 @@ public:
|
||||
// return true if target is fortran only
|
||||
bool TargetIsFortranOnly(const cmGeneratorTarget* gt);
|
||||
|
||||
// return true if target is C# only
|
||||
static bool TargetIsCSharpOnly(cmGeneratorTarget const* gt);
|
||||
|
||||
/** Get the top-level registry key for this VS version. */
|
||||
std::string GetRegistryBase();
|
||||
|
||||
|
Reference in New Issue
Block a user