diff --git a/reactos/tools/rbuild/backend/msvc/msvc.cpp b/reactos/tools/rbuild/backend/msvc/msvc.cpp
index 858ee2f2f10..789543129ac 100644
--- a/reactos/tools/rbuild/backend/msvc/msvc.cpp
+++ b/reactos/tools/rbuild/backend/msvc/msvc.cpp
@@ -384,6 +384,15 @@ MSVCBackend::_clean_project_files ( void )
remove ( SuoFileName ( module ).c_str () );
remove ( VcprojFileName ( module ).c_str () );
+ string username = getenv ( "USERNAME" );
+ string computername = getenv ( "COMPUTERNAME" );
+ string vcproj_file_user = "";
+
+ if ((computername != "") && (username != ""))
+ vcproj_file_user = VcprojFileName ( module ) + "." + computername + "." + username + ".user";
+
+ remove ( vcproj_file_user.c_str () );
+
_get_object_files ( module, out );
for ( size_t j = 0; j < out.size (); j++)
{
diff --git a/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp b/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
index 756f05611d3..6f07c4cbc67 100644
--- a/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
+++ b/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
@@ -70,6 +70,14 @@ MSVCBackend::_generate_vcproj ( const Module& module )
size_t i;
string vcproj_file = VcprojFileName(module);
+
+ string username = getenv ( "USERNAME" );
+ string computername = getenv ( "COMPUTERNAME" );
+ string vcproj_file_user = "";
+
+ if ((computername != "") && (username != ""))
+ vcproj_file_user = vcproj_file + "." + computername + "." + username + ".user";
+
printf ( "Creating MSVC.NET project: '%s'\n", vcproj_file.c_str() );
FILE* OUT = fopen ( vcproj_file.c_str(), "wb" );
@@ -616,7 +624,57 @@ MSVCBackend::_generate_vcproj ( const Module& module )
fprintf ( OUT, "\t\r\n" );
fprintf ( OUT, "\t\r\n" );
fprintf ( OUT, "\r\n" );
- fclose(OUT);
+ fclose ( OUT );
+
+ /* User configuration file */
+ if (vcproj_file_user != "")
+ {
+ OUT = fopen ( vcproj_file_user.c_str(), "wb" );
+ fprintf ( OUT, "\r\n" );
+ fprintf ( OUT, "\r\n" );
+
+ fprintf ( OUT, "\t\r\n" );
+ for ( size_t icfg = 0; icfg < m_configurations.size(); icfg++ )
+ {
+ const MSVCConfiguration& cfg = *m_configurations[icfg];
+ fprintf ( OUT, "\t\t\r\n" );
+ fprintf ( OUT, "\t\t\t\r\n" );
+ fprintf ( OUT, "\t\t\r\n" );
+ }
+ fprintf ( OUT, "\t\r\n" );
+ fprintf ( OUT, "\r\n" );
+ fclose ( OUT );
+ }
+
}
std::string
@@ -754,6 +812,7 @@ MSVCBackend::_generate_sln ( FILE* OUT )
Module& module = *ProjectNode.modules[i];
std::string vcproj_file = VcprojFileName ( module );
+ std::string vcproj_file_user = vcproj_file + "CHRIS-NOTEBOOK.Christoph.user";
_generate_sln_project ( OUT, module, vcproj_file, sln_guid, module.guid, module.non_if_data.libraries );
}
_generate_sln_footer ( OUT );