Build ICU support by default.

Discussion: https://postgr.es/m/82c4c816-06f6-d3e3-ba02-fca4a5cef065%40enterprisedb.com
Reviewed-by: Peter Eisentraut
This commit is contained in:
Jeff Davis 2023-04-18 13:20:11 -07:00
parent 4ddee4d9de
commit fcb21b3acd
4 changed files with 61 additions and 60 deletions

View File

@ -776,6 +776,7 @@ task:
time ./configure \
--host=x86_64-w64-mingw32 \
--enable-cassert \
--without-icu \
CC="ccache x86_64-w64-mingw32-gcc" \
CXX="ccache x86_64-w64-mingw32-g++"
make -s -j${BUILD_JOBS} clean

36
configure vendored
View File

@ -1558,7 +1558,7 @@ Optional Packages:
set WAL block size in kB [8]
--with-CC=CMD set compiler (deprecated)
--with-llvm build with LLVM based JIT support
--with-icu build with ICU support
--without-icu build without ICU support
--with-tcl build Tcl modules (PL/Tcl)
--with-tclconfig=DIR tclConfig.sh is in DIR
--with-perl build Perl modules (PL/Perl)
@ -8401,7 +8401,9 @@ $as_echo "#define USE_ICU 1" >>confdefs.h
esac
else
with_icu=no
with_icu=yes
$as_echo "#define USE_ICU 1" >>confdefs.h
fi
@ -8470,31 +8472,17 @@ fi
# Put the nasty error message in config.log where it belongs
echo "$ICU_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (icu-uc icu-i18n) were not met:
$ICU_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables ICU_CFLAGS
and ICU_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
as_fn_error $? "ICU library not found
If you have ICU already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-icu to disable ICU support." "$LINENO" 5
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables ICU_CFLAGS
and ICU_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; }
as_fn_error $? "ICU library not found
If you have ICU already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-icu to disable ICU support." "$LINENO" 5
else
ICU_CFLAGS=$pkg_cv_ICU_CFLAGS
ICU_LIBS=$pkg_cv_ICU_LIBS

View File

@ -853,13 +853,17 @@ AC_SUBST(enable_thread_safety)
# ICU
#
AC_MSG_CHECKING([whether to build with ICU support])
PGAC_ARG_BOOL(with, icu, no, [build with ICU support],
PGAC_ARG_BOOL(with, icu, yes, [build without ICU support],
[AC_DEFINE([USE_ICU], 1, [Define to build with ICU support. (--with-icu)])])
AC_MSG_RESULT([$with_icu])
AC_SUBST(with_icu)
if test "$with_icu" = yes; then
PKG_CHECK_MODULES(ICU, icu-uc icu-i18n)
PKG_CHECK_MODULES(ICU, icu-uc icu-i18n, [],
[AC_MSG_ERROR([ICU library not found
If you have ICU already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-icu to disable ICU support.])])
fi
#

View File

@ -146,6 +146,35 @@ documentation. See standalone-profile.xsl for details.
<application>pg_restore</application>.
</para>
</listitem>
<listitem>
<para>
The ICU locale provider (see <xref linkend="locale-providers"/>) is used by default. If you don't want to use it then you must specify the <option>--without-icu</option> option to <filename>configure</filename>. Using this option disables support for ICU collation features (see <xref linkend="collation"/>).
</para>
<para>
ICU support requires the <productname>ICU4C</productname> package to be
installed. The minimum required version of
<productname>ICU4C</productname> is currently 4.2.
</para>
<para>
By default,
<productname>pkg-config</productname><indexterm><primary>pkg-config</primary></indexterm>
will be used to find the required compilation options. This is
supported for <productname>ICU4C</productname> version 4.6 and later.
For older versions, or if <productname>pkg-config</productname> is not
available, the variables <envar>ICU_CFLAGS</envar> and
<envar>ICU_LIBS</envar> can be specified to
<filename>configure</filename>, like in this example:
<programlisting>
./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
</programlisting>
(If <productname>ICU4C</productname> is in the default search path
for the compiler, then you still need to specify nonempty strings in
order to avoid use of <productname>pkg-config</productname>, for
example, <literal>ICU_CFLAGS=' '</literal>.)
</para>
</listitem>
</itemizedlist>
</para>
@ -926,40 +955,6 @@ build-postgresql:
</listitem>
</varlistentry>
<varlistentry id="configure-option-with-icu">
<term><option>--with-icu</option></term>
<listitem>
<para>
Build with support for
the <productname>ICU</productname><indexterm><primary>ICU</primary></indexterm>
library, enabling use of ICU collation
features<phrase condition="standalone-ignore"> (see
<xref linkend="collation"/>)</phrase>.
This requires the <productname>ICU4C</productname> package
to be installed. The minimum required version
of <productname>ICU4C</productname> is currently 4.2.
</para>
<para>
By default,
<productname>pkg-config</productname><indexterm><primary>pkg-config</primary></indexterm>
will be used to find the required compilation options. This is
supported for <productname>ICU4C</productname> version 4.6 and later.
For older versions, or if <productname>pkg-config</productname> is
not available, the variables <envar>ICU_CFLAGS</envar>
and <envar>ICU_LIBS</envar> can be specified
to <filename>configure</filename>, like in this example:
<programlisting>
./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
</programlisting>
(If <productname>ICU4C</productname> is in the default search path
for the compiler, then you still need to specify nonempty strings in
order to avoid use of <productname>pkg-config</productname>, for
example, <literal>ICU_CFLAGS=' '</literal>.)
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-with-llvm">
<term><option>--with-llvm</option></term>
<listitem>
@ -1231,6 +1226,19 @@ build-postgresql:
<variablelist>
<varlistentry id="configure-option-without-icu">
<term><option>--without-icu</option></term>
<listitem>
<para>
Build without support for the
<productname>ICU</productname><indexterm><primary>ICU</primary></indexterm>
library, disabling the use of ICU collation features<phrase
condition="standalone-ignore"> (see <xref
linkend="collation"/>)</phrase>.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-option-without-readline">
<term><option>--without-readline</option></term>
<listitem>