- include path to generated idl files for dependant projects
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Fri, 8 Dec 2006 11:50:56 +0000 (11:50 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Fri, 8 Dec 2006 11:50:56 +0000 (11:50 +0000)
svn path=/trunk/; revision=25089

reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp

index fb6fe7d..07f63e7 100644 (file)
@@ -114,6 +114,7 @@ MSVCBackend::_generate_vcproj ( const Module& module )
        // TODO FIXME - need more checks here for 'sys' and possibly 'drv'?
 
        bool console = exe && (module.type == Win32CUI);
+       bool include_idl = false;
 
        string vcproj_path = module.GetBasePath();
        vector<string> source_files, resource_files, includes, includes_wine, libraries;
@@ -155,7 +156,15 @@ MSVCBackend::_generate_vcproj ( const Module& module )
                        string path = Path::RelativeFromDirectory (
                                incs[i]->directory,
                                module.GetBasePath() );
-
+                       if ( module.type != RpcServer && module.type != RpcClient )
+                       {
+                               printf("path %s\n", path.c_str ());
+                               if ( path.find ("/include/reactos/idl") != string::npos)
+                               {
+                                       include_idl = true;
+                                       continue;
+                               }
+                       }
                        // add to another list win32api and include/wine directories
                        if ( !strncmp(incs[i]->directory.c_str(), "include\\ddk", 11 ) ||
                             !strncmp(incs[i]->directory.c_str(), "include\\crt", 11 ) ||
@@ -272,6 +281,20 @@ MSVCBackend::_generate_vcproj ( const Module& module )
                                multiple_includes = true;
                        }
                }
+               if ( include_idl )
+               {
+                       if ( multiple_includes )
+                               fprintf ( OUT, ";" );
+
+                       if ( configuration.UseConfigurationInPath )
+                       {
+                               fprintf ( OUT, "%s\\include\\reactos\\idl%s\\%s\r\n", intdir.c_str (), vcdir.c_str (), cfg.name.c_str() );
+                       }
+                       else
+                       {
+                               fprintf ( OUT, "%s\\include\\reactos\\idl\r\n", intdir.c_str () );
+                       }
+               }
                if ( cfg.headers == WineHeaders )
                {
                        for ( i = 0; i < includes_wine.size(); i++ )