ECPG requires a local include directory to override the project-wide ones.
authorMagnus Hagander <magnus@hagander.net>
Tue, 12 Jun 2007 18:31:28 +0000 (18:31 +0000)
committerMagnus Hagander <magnus@hagander.net>
Tue, 12 Jun 2007 18:31:28 +0000 (18:31 +0000)
Add ability to add "prefix include directories", and use it...

With this, ecpg regression tests now pass on MSVC builds.

src/tools/msvc/Mkvcbuild.pm
src/tools/msvc/Project.pm

index 4f1e88601ce85fdfeb1839db592bff399c7096f7..4db38dcc347b1350ccb7de0ee935b187910b4cb3 100644 (file)
@@ -148,6 +148,7 @@ sub mkvcbuild
     my $ecpg = $solution->AddProject('ecpg','exe','interfaces','src\interfaces\ecpg\preproc');
     $ecpg->AddIncludeDir('src\interfaces\ecpg\include');
     $ecpg->AddIncludeDir('src\interfaces\libpq');
+    $ecpg->AddPrefixInclude('src\interfaces\ecpg\preproc');
     $ecpg->AddFiles('src\interfaces\ecpg\preproc','pgc.l','preproc.y');
     $ecpg->AddDefine('MAJOR_VERSION=4');
     $ecpg->AddDefine('MINOR_VERSION=2');
index 6771ca35fc7d699ce19717a1367325d1521fa65d..640b230a963e85d9239ae6188aa3abe3f52cd600 100644 (file)
@@ -27,6 +27,7 @@ sub new
         libraries       => [],
         suffixlib       => [],
         includes        => '',
+        prefixincludes  => '',
         defines         => ';',
         solution        => $solution,
         disablewarnings => '4018;4244;4273;4102',
@@ -128,6 +129,13 @@ sub AddIncludeDir
     $self->{includes} .= $inc;
 }
 
+sub AddPrefixInclude
+{
+    my ($self, $inc) = @_;
+
+    $self->{prefixincludes} = $inc . ';' . $self->{prefixincludes};
+}
+
 sub AddDefine
 {
     my ($self, $def) = @_;
@@ -467,7 +475,7 @@ sub WriteConfiguration
   <Configuration Name="$cfgname|Win32" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}"
        ConfigurationType="$cfgtype" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="FALSE" CharacterSet="2" WholeProgramOptimization="$p->{wholeopt}">
        <Tool Name="VCCLCompilerTool" Optimization="$p->{opt}"
-               AdditionalIncludeDirectories="src/include;src/include/port/win32;src/include/port/win32_msvc;$self->{includes}"
+               AdditionalIncludeDirectories="$self->{prefixincludes}src/include;src/include/port/win32;src/include/port/win32_msvc;$self->{includes}"
                PreprocessorDefinitions="WIN32;_WINDOWS;__WINDOWS__;__WIN32__;EXEC_BACKEND;WIN32_STACK_RLIMIT=4194304;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE$self->{defines}$p->{defs}"
                StringPooling="$p->{strpool}"
                RuntimeLibrary="$p->{runtime}" DisableSpecificWarnings="$self->{disablewarnings}"