Make just opening the generated MSVC solution file not modify it

The format of the generated MSVC solution file is fixed in a way that
just opening it in Visual Studio and immediately closing it again
without performing any modifications does not trigger a prompt to save
the solution file. This behavior was caused by several minor
incompatibilities between the generated file and what Visual Studio
2008 expected, so Visual Studio transparently fixed the file format,
marking it internally as modified.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Marius Storm-Olsen <mstormo@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Sebastian Schuberth 2009-09-28 13:34:21 +02:00 коммит произвёл Shawn O. Pearce
Родитель 76031f191e
Коммит e0ab002b50
1 изменённых файлов: 11 добавлений и 31 удалений

Просмотреть файл

@ -571,45 +571,29 @@ sub createGlueProject {
print F "\"${libname}\", \"${libname}\\${libname}.vcproj\", \"${uuid}\""; print F "\"${libname}\", \"${libname}\\${libname}.vcproj\", \"${uuid}\"";
print F "$SLN_POST"; print F "$SLN_POST";
} }
my $uuid_libgit = $build_structure{"LIBS_libgit_GUID"};
my $uuid_xdiff_lib = $build_structure{"LIBS_xdiff_lib_GUID"};
foreach (@apps) { foreach (@apps) {
my $appname = $_; my $appname = $_;
my $uuid = $build_structure{"APPS_${appname}_GUID"}; my $uuid = $build_structure{"APPS_${appname}_GUID"};
print F "$SLN_PRE"; print F "$SLN_PRE";
print F "\"${appname}\", \"${appname}\\${appname}.vcproj\", \"${uuid}\""; print F "\"${appname}\", \"${appname}\\${appname}.vcproj\", \"${uuid}\"\n";
print F " ProjectSection(ProjectDependencies) = postProject\n";
print F " ${uuid_libgit} = ${uuid_libgit}\n";
print F " ${uuid_xdiff_lib} = ${uuid_xdiff_lib}\n";
print F " EndProjectSection";
print F "$SLN_POST"; print F "$SLN_POST";
} }
print F << "EOM"; print F << "EOM";
Global Global
GlobalSection(SolutionConfiguration) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
ConfigName.0 = Debug|Win32 Debug|Win32 = Debug|Win32
ConfigName.1 = Release|Win32 Release|Win32 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
EOM EOM
foreach (@{$build_structure{"APPS"}}) {
my $appname = $_;
my $appname_clean = $_;
$appname_clean =~ s/\//_/g;
$appname_clean =~ s/\.exe//;
my $uuid = $build_structure{"APPS_${appname_clean}_GUID"};
my $dep_index = 0;
foreach(@{$build_structure{"APPS_${appname}_LIBS"}}) {
my $libname = $_;
$libname =~ s/\//_/g;
$libname =~ s/\.(a|lib)//;
my $libuuid = $build_structure{"LIBS_${libname}_GUID"};
if (defined $libuuid) {
print F "\t\t${uuid}.${dep_index} = ${libuuid}\n";
$dep_index += 1;
}
}
}
print F << "EOM"; print F << "EOM";
EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution
GlobalSection(ProjectConfiguration) = postSolution
EOM EOM
foreach (@libs) { foreach (@libs) {
my $libname = $_; my $libname = $_;
@ -630,10 +614,6 @@ EOM
print F << "EOM"; print F << "EOM";
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal EndGlobal
EOM EOM
close F; close F;