From 7b75f95f4bcc1e54215f0f55102a60ba1f21859f Mon Sep 17 00:00:00 2001 From: "KJK::Hyperion" Date: Wed, 15 Oct 2008 13:46:23 +0000 Subject: [PATCH] Give .gch files an unique path based on module name: allows multiple modules to (safely!) share a single precompiled header. Enjoy rebuilding the whole tree <3 This commit dedicated to hpoussin See issue #3263 for more details. svn path=/trunk/; revision=36760 --- .../tools/rbuild/backend/mingw/modulehandler.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp index dab0a87cef9..a06d7e002d3 100644 --- a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp +++ b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp @@ -1018,7 +1018,7 @@ MingwModuleHandler::GetPrecompiledHeaderFilename () const if ( !module.pch || !use_pch ) return NULL; return new FileLocation ( IntermediateDirectory, - module.pch->file->relative_path, + module.pch->file->relative_path + "/.gch_" + module.name, module.pch->file->name + ".gch" ); } @@ -2081,14 +2081,14 @@ MingwModuleHandler::GetDefaultDependencies ( if ( ModuleHandlerInformations[module.type].DefaultHost == HostTrue ) return; - if (module.name != "psdk" && + if (module.name != "psdk" && module.name != "dxsdk") { dependencies.push_back ( "$(PSDK_TARGET) $(psdk_HEADERS)" ); dependencies.push_back ( "$(DXSDK_TARGET) $(dxsdk_HEADERS)" ); } - if (module.name != "errcodes" && + if (module.name != "errcodes" && module.name != "bugcodes" && module.name != "ntstatus") { @@ -3139,9 +3139,9 @@ MingwIsoModuleHandler::GenerateIsoModuleTarget () vSourceFiles.push_back ( reactosDff ); - /* + /* We use only the name and not full FileLocation(ouput) because Iso/LiveIso are an exception to the general rule. - Iso/LiveIso outputs are generated in code base root + Iso/LiveIso outputs are generated in code base root */ string IsoName = module.output->name; @@ -3320,9 +3320,9 @@ MingwLiveIsoModuleHandler::GenerateLiveIsoModuleTarget () const FileLocation *isoboot = bootModule->output; - /* + /* We use only the name and not full FileLocation(ouput) because Iso/LiveIso are an exception to the general rule. - Iso/LiveIso outputs are generated in code base root + Iso/LiveIso outputs are generated in code base root */ IsoName = module.output->name; @@ -3435,7 +3435,7 @@ MingwCabinetModuleHandler::Process () string targetMacro ( GetTargetMacro (module) ); GenerateRules (); - + const FileLocation *target_file = GetTargetFilename ( module, NULL ); fprintf ( fMakefile, "%s: $(CABMAN_TARGET) | %s\n", targetMacro.c_str (),