Re: window build doesn't apply PG_CPPFLAGS correctly - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: window build doesn't apply PG_CPPFLAGS correctly
Date
Msg-id e2b72b9a-b628-a83e-7fe8-481ca5741765@dunslane.net
Whole thread Raw
In response to Re: window build doesn't apply PG_CPPFLAGS correctly  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-hackers
On 7/22/21 8:11 AM, Pavel Stehule wrote:
>
>
> čt 22. 7. 2021 v 14:04 odesílatel Andrew Dunstan <andrew@dunslane.net
> <mailto:andrew@dunslane.net>> napsal:
>
>
>     On 7/22/21 12:06 AM, Pavel Stehule wrote:
>     > Hi
>     >
>     > I tried to write test for plpgsql debug API, where I need to
>     access to
>     > plpgsql.h
>     >
>     > I have line
>     >
>     > PG_CPPFLAGS = -I$(top_srcdir)/src/pl/plpgsql/src
>     >
>     > that is working well on unix, but it do nothing on windows
>     >
>     > [00:05:14] Project "C:\projects\postgresql\pgsql.sln" (1) is
>     building
>     > "C:\projects\postgresql\test_dbgapi.vcxproj" (87) on node 1 (default
>     > targets).
>     > [00:05:14] PrepareForBuild:
>     > [00:05:14]   Creating directory ".\Release\test_dbgapi\".
>     > [00:05:14]   Creating directory
>     ".\Release\test_dbgapi\test_dbgapi.tlog\".
>     > [00:05:14] InitializeBuildStatus:
>     > [00:05:14]   Creating
>     > ".\Release\test_dbgapi\test_dbgapi.tlog\unsuccessfulbuild" because
>     > "AlwaysCreate" was specified.
>     > [00:05:14] ClCompile:
>     > [00:05:14]   C:\Program Files (x86)\Microsoft Visual Studio
>     > 12.0\VC\bin\x86_amd64\CL.exe /c /Isrc/include
>     /Isrc/include/port/win32
>     > /Isrc/include/port/win32_msvc /Zi /nologo /W3 /WX- /Ox /D WIN32 /D
>     > _WINDOWS /D __WINDOWS__ /D __WIN32__ /D
>     WIN32_STACK_RLIMIT=4194304 /D
>     > _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _WINDLL /D
>     > _MBCS /GF /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope
>     > /Fo".\Release\test_dbgapi\\"
>     /Fd".\Release\test_dbgapi\vc120.pdb" /Gd
>     > /TC /wd4018 /wd4244 /wd4273 /wd4102 /wd4090 /wd4267
>     /errorReport:queue
>     > /MP src/test/modules/test_dbgapi/test_dbgapi.c
>     > [00:05:14]   test_dbgapi.c
>     > [00:05:16] src/test/modules/test_dbgapi/test_dbgapi.c(17): fatal
>     error
>     > C1083: Cannot open include file: 'plpgsql.h': No such file or
>     > directory [C:\projects\postgresql\test_dbgapi.vcxproj]
>     > [00:05:16] Done Building Project
>     > "C:\projects\postgresql\test_dbgapi.vcxproj" (default targets)
>     -- FAILED.
>     > [00:05:16] Project "C:\projects\postgresql\pgsql.sln" (1) is
>     building
>     > "C:\projects\postgresql\test_ddl_deparse.vcxproj" (88) on node 1
>     > (default targets).
>     >
>     > looks so PG_CPPFLAGS is not propagated to CPPFLAGS there.
>     >
>     >
>
>     Almost everything in the Makefiles is not used by the MSVC buid
>     system.
>     Using this one seems likely to be quite difficult, since the
>     syntax for
>     the MSVC compiler command line is very different, and furthermore the
>     MSVC build system doesn't know anything about how to use this setting.
>
>     AFAICT PG_CPPFLAGS is only used by pgxs.
>
>     You would need to tell us more about how your build process is
>     working.
>
>
> I need access to plpgsql.h in build time. This is only one dependency.
> When I build an extension, then plpgsql.h is in a shared directory.
> But when I build a module for a test, the header files are not
> installed yet. For build it requires an include dir
> -I$(top_srcdir)/src/pl/plpgsql/src
>
>

If I understand correctly what you're doing, you probably need to add an
entry for your module to $contrib_extraincludes in
src/tools/msvc/Mkvcbuild.pm, e.g.


my $contrib_extraincludes = { 'dblink'         => ['src/backend'] ,

                              'test_dbgapi'    => [ 'src/pl/plpgsql/src'
] };


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Ajin Cherian
Date:
Subject: Re: logical replication empty transactions
Next
From: Simon Riggs
Date:
Subject: Re: Detecting File Damage & Inconsistencies