diff --git a/reactos/tools/rbuild/backend/mingw/mingw.cpp b/reactos/tools/rbuild/backend/mingw/mingw.cpp index 44050f9e08e..037b68c4cd9 100644 --- a/reactos/tools/rbuild/backend/mingw/mingw.cpp +++ b/reactos/tools/rbuild/backend/mingw/mingw.cpp @@ -308,6 +308,7 @@ MingwBackend::Process () GenerateXmlBuildFilesMacro (); ProcessModules (); GenerateInstallTarget (); + GenerateTestTarget (); GenerateDirectoryTargets (); GenerateDirectories (); UnpackWineResources (); @@ -949,6 +950,32 @@ MingwBackend::GenerateInstallTarget () "\n" ); } +void +MingwBackend::GetModuleTestTargets ( + vector& out ) const +{ + for ( size_t i = 0; i < ProjectNode.modules.size (); i++ ) + { + const Module& module = *ProjectNode.modules[i]; + if ( module.type == Test ) + out.push_back ( module.name ); + } +} + +void +MingwBackend::GenerateTestTarget () +{ + vector vTestTargets; + GetModuleTestTargets ( vTestTargets ); + string testTargets = v2s ( vTestTargets, 5 ); + + fprintf ( fMakefile, + "test: %s\n", + testTargets.c_str () ); + fprintf ( fMakefile, + "\n" ); +} + void MingwBackend::GenerateDirectoryTargets () { diff --git a/reactos/tools/rbuild/backend/mingw/mingw.h b/reactos/tools/rbuild/backend/mingw/mingw.h index 57ba775837f..b67fb016444 100644 --- a/reactos/tools/rbuild/backend/mingw/mingw.h +++ b/reactos/tools/rbuild/backend/mingw/mingw.h @@ -105,6 +105,8 @@ private: std::string GetRegistryTargetFiles (); void OutputRegistryInstallTarget (); void GenerateInstallTarget (); + void GetModuleTestTargets ( std::vector& out ) const; + void GenerateTestTarget (); void GenerateDirectoryTargets (); FILE* fMakefile; bool use_pch;