Author: fireball
Date: Thu Feb 28 16:35:09 2008
New Revision: 32522
URL:
http://svn.reactos.org/svn/reactos?rev=32522&view=rev
Log:
- If BASEDIR env var is set to point to your WDK installation, make msvcX will take it
into account, and add additional include directories for WDK headers and libraries for all
kernelmode modules.
Modified:
trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/msvc/…
==============================================================================
--- trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp (original)
+++ trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp Thu Feb 28 16:35:09 2008
@@ -350,12 +350,36 @@
multiple_includes = true;
}
}
+ else
+ {
+ // Add WDK or PSDK paths, if user provides them
+ if (getenv ( "BASEDIR" ) != NULL &&
+ (module.type == Kernel ||
+ module.type == KernelModeDLL ||
+ module.type == KernelModeDriver))
+ {
+ string WdkBase, SdkPath, CrtPath, DdkPath;
+ WdkBase = getenv ( "BASEDIR" );
+ SdkPath = WdkBase + "\\inc\\api";
+ CrtPath = WdkBase + "\\inc\\crt";
+ DdkPath = WdkBase + "\\inc\\ddk";
+
+ if ( multiple_includes )
+ fprintf ( OUT, ";" );
+
+ fprintf ( OUT, "%s;", SdkPath.c_str() );
+ fprintf ( OUT, "%s;", CrtPath.c_str() );
+ fprintf ( OUT, "%s", DdkPath.c_str() );
+ multiple_includes = true;
+ }
+ }
fprintf ( OUT, "\"\r\n" );
StringSet defines = common_defines;
- // Always add _CRT_SECURE_NO_WARNINGS to disable warnings about not using the
safe functions introduced in MSVC8.
- defines.insert ( "_CRT_SECURE_NO_WARNINGS" );
+ // Always add _CRT_SECURE_NO_WARNINGS to disable warnings about not
+ // using the safe functions introduced in MSVC8.
+ defines.insert ( "_CRT_SECURE_NO_WARNINGS" );
if ( debug )
{
@@ -485,6 +509,26 @@
fprintf ( OUT, "\"\r\n" );
fprintf ( OUT, "\t\t\t\tAdditionalLibraryDirectories=\"" );
+
+ // Add WDK libs paths, if needed
+ if (getenv ( "BASEDIR" ) != NULL &&
+ (module.type == Kernel ||
+ module.type == KernelModeDLL ||
+ module.type == KernelModeDriver))
+ {
+ string WdkBase, CrtPath, DdkPath;
+ WdkBase = getenv ( "BASEDIR" );
+ CrtPath = WdkBase + "\\lib\\crt\\i386";
+ DdkPath = WdkBase + "\\lib\\wnet\\i386";
+
+ fprintf ( OUT, "%s;", CrtPath.c_str() );
+ fprintf ( OUT, "%s", DdkPath.c_str() );
+
+ if (libraries.size () > 0)
+ fprintf ( OUT, ";" );
+ }
+
+ // Add conventional libraries dirs
for (i = 0; i < libraries.size (); i++)
{
if ( i > 0 )
@@ -495,6 +539,7 @@
libpath = libpath.substr (0, libpath.find_last_of ("\\") );
fprintf ( OUT, "%s", libpath.c_str() );
}
+
fprintf ( OUT, "\"\r\n" );
fprintf ( OUT, "\t\t\t\tOutputFile=\"$(OutDir)/%s%s\"\r\n",
module.name.c_str(), module_type.c_str() );