Skip to content

Commit 66eb5e7

Browse files
authored
allow to build with system liburiparser (php#18886)
1 parent 271995d commit 66eb5e7

File tree

2 files changed

+36
-12
lines changed

2 files changed

+36
-12
lines changed

ext/uri/config.m4

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
dnl Configure options
22
dnl
33

4+
PHP_ARG_WITH([external-uriparser],
5+
[for external/system liburiparser],
6+
[AS_HELP_STRING([--with-external-uriparser],
7+
[Use external/system liburiparser])],
8+
[no],
9+
[no])
10+
411
PHP_INSTALL_HEADERS([ext/uri], m4_normalize([
512
php_uri.h
613
php_uri_common.h
@@ -9,20 +16,32 @@ PHP_INSTALL_HEADERS([ext/uri], m4_normalize([
916
uri_parser_php_parse_url.h
1017
]))
1118

19+
1220
AC_DEFINE([URI_ENABLE_ANSI], [1], [Define to 1 for enabling ANSI support of uriparser.])
1321
AC_DEFINE([URI_NO_UNICODE], [1], [Define to 1 for disabling unicode support of uriparser.])
1422

15-
URIPARSER_DIR="uriparser"
16-
URIPARSER_SOURCES="$URIPARSER_DIR/src/UriCommon.c $URIPARSER_DIR/src/UriCompare.c $URIPARSER_DIR/src/UriCopy.c \
17-
$URIPARSER_DIR/src/UriEscape.c $URIPARSER_DIR/src/UriFile.c $URIPARSER_DIR/src/UriIp4.c $URIPARSER_DIR/src/UriIp4Base.c \
18-
$URIPARSER_DIR/src/UriMemory.c $URIPARSER_DIR/src/UriNormalize.c $URIPARSER_DIR/src/UriNormalizeBase.c \
19-
$URIPARSER_DIR/src/UriParse.c $URIPARSER_DIR/src/UriParseBase.c $URIPARSER_DIR/src/UriQuery.c \
20-
$URIPARSER_DIR/src/UriRecompose.c $URIPARSER_DIR/src/UriResolve.c $URIPARSER_DIR/src/UriSetFragment.c \
21-
$URIPARSER_DIR/src/UriSetHostAuto.c $URIPARSER_DIR/src/UriSetHostCommon.c $URIPARSER_DIR/src/UriSetHostIp4.c \
22-
$URIPARSER_DIR/src/UriSetHostIp6.c $URIPARSER_DIR/src/UriSetHostIpFuture.c $URIPARSER_DIR/src/UriSetHostRegName.c \
23-
$URIPARSER_DIR/src/UriSetPath.c $URIPARSER_DIR/src/UriSetPort.c $URIPARSER_DIR/src/UriSetQuery.c \
24-
$URIPARSER_DIR/src/UriSetScheme.c $URIPARSER_DIR/src/UriSetUserInfo.c $URIPARSER_DIR/src/UriShorten.c $URIPARSER_DIR/src/UriVersion.c"
23+
if test "$PHP_EXTERNAL_URIPARSER" = "no"; then
24+
URIPARSER_DIR="uriparser"
25+
URIPARSER_SOURCES="$URIPARSER_DIR/src/UriCommon.c $URIPARSER_DIR/src/UriCompare.c $URIPARSER_DIR/src/UriCopy.c \
26+
$URIPARSER_DIR/src/UriEscape.c $URIPARSER_DIR/src/UriFile.c $URIPARSER_DIR/src/UriIp4.c $URIPARSER_DIR/src/UriIp4Base.c \
27+
$URIPARSER_DIR/src/UriMemory.c $URIPARSER_DIR/src/UriNormalize.c $URIPARSER_DIR/src/UriNormalizeBase.c \
28+
$URIPARSER_DIR/src/UriParse.c $URIPARSER_DIR/src/UriParseBase.c $URIPARSER_DIR/src/UriQuery.c \
29+
$URIPARSER_DIR/src/UriRecompose.c $URIPARSER_DIR/src/UriResolve.c $URIPARSER_DIR/src/UriSetFragment.c \
30+
$URIPARSER_DIR/src/UriSetHostAuto.c $URIPARSER_DIR/src/UriSetHostCommon.c $URIPARSER_DIR/src/UriSetHostIp4.c \
31+
$URIPARSER_DIR/src/UriSetHostIp6.c $URIPARSER_DIR/src/UriSetHostIpFuture.c $URIPARSER_DIR/src/UriSetHostRegName.c \
32+
$URIPARSER_DIR/src/UriSetPath.c $URIPARSER_DIR/src/UriSetPort.c $URIPARSER_DIR/src/UriSetQuery.c \
33+
$URIPARSER_DIR/src/UriSetScheme.c $URIPARSER_DIR/src/UriSetUserInfo.c $URIPARSER_DIR/src/UriShorten.c $URIPARSER_DIR/src/UriVersion.c"
34+
URI_CFLAGS="-DURI_STATIC_BUILD"
35+
else
36+
PKG_CHECK_MODULES([LIBURIPARSER], [liburiparser >= 0.9.9])
37+
PHP_EVAL_LIBLINE([$LIBURIPARSER_LIBS], [URI_SHARED_LIBADD])
38+
PHP_EVAL_INCLINE([$LIBURIPARSER_CFLAGS])
39+
fi
2540

26-
PHP_NEW_EXTENSION(uri, [php_uri.c php_uri_common.c uri_parser_rfc3986.c uri_parser_whatwg.c uri_parser_php_parse_url.c $URIPARSER_SOURCES], [no],,[-I$ext_srcdir/$URIPARSER_DIR/include -DURI_STATIC_BUILD -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1])
41+
PHP_NEW_EXTENSION(uri, [php_uri.c php_uri_common.c uri_parser_rfc3986.c uri_parser_whatwg.c uri_parser_php_parse_url.c $URIPARSER_SOURCES], [no],,[$URI_CFLAGS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1])
2742
PHP_ADD_EXTENSION_DEP(uri, lexbor)
28-
PHP_ADD_BUILD_DIR($ext_builddir/$URIPARSER_DIR/src $ext_builddir/$URIPARSER_DIR/include)
43+
44+
if test "$PHP_EXTERNAL_URIPARSER" = "no"; then
45+
PHP_ADD_BUILD_DIR($ext_builddir/$URIPARSER_DIR/src $ext_builddir/$URIPARSER_DIR/include)
46+
PHP_ADD_INCLUDE([$ext_srcdir/$URIPARSER_DIR/include])
47+
fi

ext/uri/php_uri.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "uri_parser_rfc3986.h"
3131
#include "uri_parser_php_parse_url.h"
3232
#include "php_uri_arginfo.h"
33+
#include "uriparser/UriBase.h"
3334

3435
zend_class_entry *uri_rfc3986_uri_ce;
3536
zend_object_handlers uri_rfc3986_uri_object_handlers;
@@ -1062,8 +1063,12 @@ static PHP_MINFO_FUNCTION(uri)
10621063
{
10631064
php_info_print_table_start();
10641065
php_info_print_table_row(2, "URI support", "active");
1066+
#ifdef URI_STATIC_BUILD
1067+
php_info_print_table_row(2, "uriparser bundled version", URI_VER_ANSI);
1068+
#else
10651069
php_info_print_table_row(2, "uriparser compiled version", URI_VER_ANSI);
10661070
php_info_print_table_row(2, "uriparser loaded version", uriBaseRuntimeVersionA());
1071+
#endif
10671072
php_info_print_table_end();
10681073
}
10691074

0 commit comments

Comments
 (0)