1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Adjust MSVC build scripts to parse Makefiles for defines

This adjusts the MSVC build scripts to look at the compile flags mentioned
in the Makefile to look for -D arguments in order to determine which
constants should be defined in Visual Studio builds.

One small anomaly that appeared as a result of this change is that the
Makefile for the ltree contrib module defined LOWER_NODE, but this was
not properly defined in the MSVC build scripts.  This meant that MSVC
builds would differ in case sensitivity in the ltree module when
compared to builds using a make build environment.  To maintain the same
behavior here we remove the -DLOWER_NODE from the Makefile and just always
define it in ltree.h for non-MSVC builds.  We need to maintain the old
behavior here as this affects the on-disk compatibility of GiST indexes
when using the ltree type.

The only other resulting change here is that REFINT_VERBOSE is now defined
for the autoinc, insert_username and moddatetime contrib modules.
Previously on MSVC, this was only defined for the refint module.  This
aligns the behavior to build environments using make as all 4 of these
modules share the same Makefile.

Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/CAApHDvpo6g5csCTjc_0C7DMvgFPomVb0Rh-AcW5afd=Ya=LRuw@mail.gmail.com
This commit is contained in:
David Rowley
2021-07-29 12:01:23 +12:00
parent 15f16ec651
commit 245de48455
4 changed files with 34 additions and 2 deletions

View File

@ -12,7 +12,6 @@ OBJS = \
ltree_op.o \
ltxtquery_io.o \
ltxtquery_op.o
PG_CPPFLAGS = -DLOWER_NODE
EXTENSION = ltree
DATA = ltree--1.1--1.2.sql ltree--1.1.sql ltree--1.0--1.1.sql

View File

@ -8,6 +8,7 @@
*/
#include "postgres.h"
#include "ltree.h"
#ifdef LOWER_NODE
#include <ctype.h>

View File

@ -17,6 +17,19 @@
*/
#define LTREE_LABEL_MAX_CHARS 255
/*
* LOWER_NODE used to be defined in the Makefile via the compile flags.
* However the MSVC build scripts neglected to do the same which resulted in
* MSVC builds not using LOWER_NODE. Since then, the MSVC scripts have been
* modified to look for -D compile flags in Makefiles, so here, in order to
* get the historic behavior of LOWER_NODE not being defined on MSVC, we only
* define it when not building in that environment. This is important as we
* want to maintain the same LOWER_NODE behavior after a pg_update.
*/
#ifndef _MSC_VER
#define LOWER_NODE
#endif
typedef struct
{
uint16 len; /* label string length in bytes */