Skip to content

Commit 7f59fcc

Browse files
kocsismatenielsdosGirgias
authored
Create separate lexbor extension (#18538)
An always enabled lexbor extension is added, containing the lexbor library that was separated from ext/dom extension in preparation of https://wiki.php.net/rfc/url_parsing_api. While at it, the lexbor library is upgraded to 2.5.0. Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Co-authored-by: Gina Peter Banyard <girgias@php.net>
1 parent 4076324 commit 7f59fcc

File tree

437 files changed

+302971
-190538
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

437 files changed

+302971
-190538
lines changed

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@
3030
/ext/date/tests/ossfuzz*.txt binary
3131

3232
# Vendored libraries
33-
/ext/dom/lexbor/lexbor linguist-vendored
33+
/ext/lexbor/lexbor linguist-vendored

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,6 @@ tmp-php.ini
306306
!/ext/fileinfo/libmagic/config.h
307307
!/ext/fileinfo/libmagic.patch
308308
!/ext/fileinfo/magicdata.patch
309-
!/ext/dom/lexbor/patches/*.patch
309+
!/ext/lexbor/patches/*.patch
310310
!/ext/pcre/pcre2lib/config.h
311311
!/win32/build/Makefile

EXTENSIONS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,13 @@ PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net> (1999 - 2002)
195195
MAINTENANCE: Maintained
196196
STATUS: Working
197197
-------------------------------------------------------------------------------
198+
EXTENSION: lexbor
199+
PRIMARY MAINTAINER: Niels Dossche <nielsdos@php.net> (2023 - 2025)
200+
Mate Kocsis <kocsismate@php.net> (2025 - 2025)
201+
MAINTENANCE: Maintained
202+
STATUS: Working
203+
SINCE: 8.5
204+
-------------------------------------------------------------------------------
198205
EXTENSION: libxml
199206
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net> (2003 - 2009)
200207
Christian Stocker <chregu@php.net> (2004 - 2011)

README.REDIST.BINS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
17. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP
1818
18. avifinfo (ext/standard/libavifinfo) see ext/standard/libavifinfo/LICENSE
1919
19. xxHash (ext/hash/xxhash)
20-
20. Lexbor (ext/dom/lexbor/lexbor) see ext/dom/lexbor/LICENSE
20+
20. Lexbor (ext/lexbor/lexbor) see ext/lexbor/LICENSE
2121
21. Portions of libcperciva (ext/hash/hash_sha_{ni,sse2}.c) see the header in the source file
2222

2323
3. pcre2lib (ext/pcre)

UPGRADING

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,10 @@ PHP 8.5 UPGRADE NOTES
400400
. The return type of finfo_close() has been changed to true, rather
401401
than bool.
402402

403+
- Lexbor:
404+
. An always enabled lexbor extension is added. It contains the lexbor
405+
library that was separated from ext/dom for being reused among other
406+
extensions. The new extension is not directly exposed to userland.
403407

404408
- PCRE:
405409
. Upgraded to pcre2lib from 10.44 to 10.45.

codecov.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
ignore:
22
# bundled libraries
3-
- "ext/dom/lexbor/lexbor/core"
4-
- "ext/dom/lexbor/lexbor/css"
5-
- "ext/dom/lexbor/lexbor/dom"
6-
- "ext/dom/lexbor/lexbor/encoding"
7-
- "ext/dom/lexbor/lexbor/html"
8-
- "ext/dom/lexbor/lexbor/ns"
9-
- "ext/dom/lexbor/lexbor/ports"
10-
- "ext/dom/lexbor/lexbor/tag"
3+
- "ext/lexbor/lexbor/core"
4+
- "ext/lexbor/lexbor/css"
5+
- "ext/lexbor/lexbor/dom"
6+
- "ext/lexbor/lexbor/encoding"
7+
- "ext/lexbor/lexbor/html"
8+
- "ext/lexbor/lexbor/ns"
9+
- "ext/lexbor/lexbor/ports"
10+
- "ext/lexbor/lexbor/tag"
1111
- "ext/pcre/pcre2lib"

ext/dom/config.m4

Lines changed: 4 additions & 194 deletions
Original file line numberDiff line numberDiff line change
@@ -8,185 +8,6 @@ if test "$PHP_DOM" != "no"; then
88
PHP_SETUP_LIBXML([DOM_SHARED_LIBADD], [
99
AC_DEFINE([HAVE_DOM], [1],
1010
[Define to 1 if the PHP extension 'dom' is available.])
11-
PHP_LEXBOR_CFLAGS="-I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
12-
LEXBOR_DIR="lexbor/lexbor"
13-
LEXBOR_SOURCES=m4_normalize(["
14-
$LEXBOR_DIR/core/array_obj.c
15-
$LEXBOR_DIR/core/array.c
16-
$LEXBOR_DIR/core/avl.c
17-
$LEXBOR_DIR/core/bst.c
18-
$LEXBOR_DIR/core/conv.c
19-
$LEXBOR_DIR/core/diyfp.c
20-
$LEXBOR_DIR/core/dobject.c
21-
$LEXBOR_DIR/core/dtoa.c
22-
$LEXBOR_DIR/core/hash.c
23-
$LEXBOR_DIR/core/mem.c
24-
$LEXBOR_DIR/core/mraw.c
25-
$LEXBOR_DIR/core/print.c
26-
$LEXBOR_DIR/core/serialize.c
27-
$LEXBOR_DIR/core/shs.c
28-
$LEXBOR_DIR/core/str.c
29-
$LEXBOR_DIR/core/strtod.c
30-
$LEXBOR_DIR/css/css.c
31-
$LEXBOR_DIR/css/log.c
32-
$LEXBOR_DIR/css/parser.c
33-
$LEXBOR_DIR/css/selectors/pseudo_state.c
34-
$LEXBOR_DIR/css/selectors/pseudo.c
35-
$LEXBOR_DIR/css/selectors/selector.c
36-
$LEXBOR_DIR/css/selectors/selectors.c
37-
$LEXBOR_DIR/css/selectors/state.c
38-
$LEXBOR_DIR/css/state.c
39-
$LEXBOR_DIR/css/syntax/anb.c
40-
$LEXBOR_DIR/css/syntax/parser.c
41-
$LEXBOR_DIR/css/syntax/state.c
42-
$LEXBOR_DIR/css/syntax/syntax.c
43-
$LEXBOR_DIR/css/syntax/token.c
44-
$LEXBOR_DIR/css/syntax/tokenizer.c
45-
$LEXBOR_DIR/css/syntax/tokenizer/error.c
46-
$LEXBOR_DIR/dom/interface.c
47-
$LEXBOR_DIR/dom/interfaces/attr.c
48-
$LEXBOR_DIR/dom/interfaces/cdata_section.c
49-
$LEXBOR_DIR/dom/interfaces/character_data.c
50-
$LEXBOR_DIR/dom/interfaces/comment.c
51-
$LEXBOR_DIR/dom/interfaces/document_fragment.c
52-
$LEXBOR_DIR/dom/interfaces/document_type.c
53-
$LEXBOR_DIR/dom/interfaces/document.c
54-
$LEXBOR_DIR/dom/interfaces/element.c
55-
$LEXBOR_DIR/dom/interfaces/node.c
56-
$LEXBOR_DIR/dom/interfaces/processing_instruction.c
57-
$LEXBOR_DIR/dom/interfaces/shadow_root.c
58-
$LEXBOR_DIR/dom/interfaces/text.c
59-
$LEXBOR_DIR/encoding/big5.c
60-
$LEXBOR_DIR/encoding/decode.c
61-
$LEXBOR_DIR/encoding/encode.c
62-
$LEXBOR_DIR/encoding/encoding.c
63-
$LEXBOR_DIR/encoding/euc_kr.c
64-
$LEXBOR_DIR/encoding/gb18030.c
65-
$LEXBOR_DIR/encoding/iso_2022_jp_katakana.c
66-
$LEXBOR_DIR/encoding/jis0208.c
67-
$LEXBOR_DIR/encoding/jis0212.c
68-
$LEXBOR_DIR/encoding/range.c
69-
$LEXBOR_DIR/encoding/res.c
70-
$LEXBOR_DIR/encoding/single.c
71-
$LEXBOR_DIR/html/encoding.c
72-
$LEXBOR_DIR/html/interface.c
73-
$LEXBOR_DIR/html/interfaces/anchor_element.c
74-
$LEXBOR_DIR/html/interfaces/area_element.c
75-
$LEXBOR_DIR/html/interfaces/audio_element.c
76-
$LEXBOR_DIR/html/interfaces/base_element.c
77-
$LEXBOR_DIR/html/interfaces/body_element.c
78-
$LEXBOR_DIR/html/interfaces/br_element.c
79-
$LEXBOR_DIR/html/interfaces/button_element.c
80-
$LEXBOR_DIR/html/interfaces/canvas_element.c
81-
$LEXBOR_DIR/html/interfaces/d_list_element.c
82-
$LEXBOR_DIR/html/interfaces/data_element.c
83-
$LEXBOR_DIR/html/interfaces/data_list_element.c
84-
$LEXBOR_DIR/html/interfaces/details_element.c
85-
$LEXBOR_DIR/html/interfaces/dialog_element.c
86-
$LEXBOR_DIR/html/interfaces/directory_element.c
87-
$LEXBOR_DIR/html/interfaces/div_element.c
88-
$LEXBOR_DIR/html/interfaces/document.c
89-
$LEXBOR_DIR/html/interfaces/element.c
90-
$LEXBOR_DIR/html/interfaces/embed_element.c
91-
$LEXBOR_DIR/html/interfaces/field_set_element.c
92-
$LEXBOR_DIR/html/interfaces/font_element.c
93-
$LEXBOR_DIR/html/interfaces/form_element.c
94-
$LEXBOR_DIR/html/interfaces/frame_element.c
95-
$LEXBOR_DIR/html/interfaces/frame_set_element.c
96-
$LEXBOR_DIR/html/interfaces/head_element.c
97-
$LEXBOR_DIR/html/interfaces/heading_element.c
98-
$LEXBOR_DIR/html/interfaces/hr_element.c
99-
$LEXBOR_DIR/html/interfaces/html_element.c
100-
$LEXBOR_DIR/html/interfaces/iframe_element.c
101-
$LEXBOR_DIR/html/interfaces/image_element.c
102-
$LEXBOR_DIR/html/interfaces/input_element.c
103-
$LEXBOR_DIR/html/interfaces/label_element.c
104-
$LEXBOR_DIR/html/interfaces/legend_element.c
105-
$LEXBOR_DIR/html/interfaces/li_element.c
106-
$LEXBOR_DIR/html/interfaces/link_element.c
107-
$LEXBOR_DIR/html/interfaces/map_element.c
108-
$LEXBOR_DIR/html/interfaces/marquee_element.c
109-
$LEXBOR_DIR/html/interfaces/media_element.c
110-
$LEXBOR_DIR/html/interfaces/menu_element.c
111-
$LEXBOR_DIR/html/interfaces/meta_element.c
112-
$LEXBOR_DIR/html/interfaces/meter_element.c
113-
$LEXBOR_DIR/html/interfaces/mod_element.c
114-
$LEXBOR_DIR/html/interfaces/o_list_element.c
115-
$LEXBOR_DIR/html/interfaces/object_element.c
116-
$LEXBOR_DIR/html/interfaces/opt_group_element.c
117-
$LEXBOR_DIR/html/interfaces/option_element.c
118-
$LEXBOR_DIR/html/interfaces/output_element.c
119-
$LEXBOR_DIR/html/interfaces/paragraph_element.c
120-
$LEXBOR_DIR/html/interfaces/param_element.c
121-
$LEXBOR_DIR/html/interfaces/picture_element.c
122-
$LEXBOR_DIR/html/interfaces/pre_element.c
123-
$LEXBOR_DIR/html/interfaces/progress_element.c
124-
$LEXBOR_DIR/html/interfaces/quote_element.c
125-
$LEXBOR_DIR/html/interfaces/script_element.c
126-
$LEXBOR_DIR/html/interfaces/select_element.c
127-
$LEXBOR_DIR/html/interfaces/slot_element.c
128-
$LEXBOR_DIR/html/interfaces/source_element.c
129-
$LEXBOR_DIR/html/interfaces/span_element.c
130-
$LEXBOR_DIR/html/interfaces/style_element.c
131-
$LEXBOR_DIR/html/interfaces/table_caption_element.c
132-
$LEXBOR_DIR/html/interfaces/table_cell_element.c
133-
$LEXBOR_DIR/html/interfaces/table_col_element.c
134-
$LEXBOR_DIR/html/interfaces/table_element.c
135-
$LEXBOR_DIR/html/interfaces/table_row_element.c
136-
$LEXBOR_DIR/html/interfaces/table_section_element.c
137-
$LEXBOR_DIR/html/interfaces/template_element.c
138-
$LEXBOR_DIR/html/interfaces/text_area_element.c
139-
$LEXBOR_DIR/html/interfaces/time_element.c
140-
$LEXBOR_DIR/html/interfaces/title_element.c
141-
$LEXBOR_DIR/html/interfaces/track_element.c
142-
$LEXBOR_DIR/html/interfaces/u_list_element.c
143-
$LEXBOR_DIR/html/interfaces/unknown_element.c
144-
$LEXBOR_DIR/html/interfaces/video_element.c
145-
$LEXBOR_DIR/html/interfaces/window.c
146-
$LEXBOR_DIR/html/parser.c
147-
$LEXBOR_DIR/html/token_attr.c
148-
$LEXBOR_DIR/html/token.c
149-
$LEXBOR_DIR/html/tokenizer.c
150-
$LEXBOR_DIR/html/tokenizer/error.c
151-
$LEXBOR_DIR/html/tokenizer/state_comment.c
152-
$LEXBOR_DIR/html/tokenizer/state_doctype.c
153-
$LEXBOR_DIR/html/tokenizer/state_rawtext.c
154-
$LEXBOR_DIR/html/tokenizer/state_rcdata.c
155-
$LEXBOR_DIR/html/tokenizer/state_script.c
156-
$LEXBOR_DIR/html/tokenizer/state.c
157-
$LEXBOR_DIR/html/tree.c
158-
$LEXBOR_DIR/html/tree/active_formatting.c
159-
$LEXBOR_DIR/html/tree/error.c
160-
$LEXBOR_DIR/html/tree/insertion_mode/after_after_body.c
161-
$LEXBOR_DIR/html/tree/insertion_mode/after_after_frameset.c
162-
$LEXBOR_DIR/html/tree/insertion_mode/after_body.c
163-
$LEXBOR_DIR/html/tree/insertion_mode/after_frameset.c
164-
$LEXBOR_DIR/html/tree/insertion_mode/after_head.c
165-
$LEXBOR_DIR/html/tree/insertion_mode/before_head.c
166-
$LEXBOR_DIR/html/tree/insertion_mode/before_html.c
167-
$LEXBOR_DIR/html/tree/insertion_mode/foreign_content.c
168-
$LEXBOR_DIR/html/tree/insertion_mode/in_body.c
169-
$LEXBOR_DIR/html/tree/insertion_mode/in_caption.c
170-
$LEXBOR_DIR/html/tree/insertion_mode/in_cell.c
171-
$LEXBOR_DIR/html/tree/insertion_mode/in_column_group.c
172-
$LEXBOR_DIR/html/tree/insertion_mode/in_frameset.c
173-
$LEXBOR_DIR/html/tree/insertion_mode/in_head_noscript.c
174-
$LEXBOR_DIR/html/tree/insertion_mode/in_head.c
175-
$LEXBOR_DIR/html/tree/insertion_mode/in_row.c
176-
$LEXBOR_DIR/html/tree/insertion_mode/in_select_in_table.c
177-
$LEXBOR_DIR/html/tree/insertion_mode/in_select.c
178-
$LEXBOR_DIR/html/tree/insertion_mode/in_table_body.c
179-
$LEXBOR_DIR/html/tree/insertion_mode/in_table_text.c
180-
$LEXBOR_DIR/html/tree/insertion_mode/in_table.c
181-
$LEXBOR_DIR/html/tree/insertion_mode/in_template.c
182-
$LEXBOR_DIR/html/tree/insertion_mode/initial.c
183-
$LEXBOR_DIR/html/tree/insertion_mode/text.c
184-
$LEXBOR_DIR/html/tree/open_elements.c
185-
$LEXBOR_DIR/ns/ns.c
186-
$LEXBOR_DIR/ports/posix/lexbor/core/memory.c
187-
$LEXBOR_DIR/selectors-adapted/selectors.c
188-
$LEXBOR_DIR/tag/tag.c
189-
"])
19011
PHP_NEW_EXTENSION([dom], m4_normalize([
19112
attr.c
19213
cdatasection.c
@@ -223,25 +44,13 @@ if test "$PHP_DOM" != "no"; then
22344
xml_serializer.c
22445
xpath_callbacks.c
22546
xpath.c
226-
$LEXBOR_SOURCES
47+
lexbor/selectors-adapted/selectors.c
22748
]),
22849
[$ext_shared],,
229-
[$PHP_LEXBOR_CFLAGS])
50+
[])
23051
PHP_ADD_BUILD_DIR([
23152
$ext_builddir/parentnode
232-
$ext_builddir/$LEXBOR_DIR/core
233-
$ext_builddir/$LEXBOR_DIR/css/selectors
234-
$ext_builddir/$LEXBOR_DIR/css/syntax/tokenizer
235-
$ext_builddir/$LEXBOR_DIR/css/tokenizer
236-
$ext_builddir/$LEXBOR_DIR/dom/interfaces
237-
$ext_builddir/$LEXBOR_DIR/encoding
238-
$ext_builddir/$LEXBOR_DIR/html/interfaces
239-
$ext_builddir/$LEXBOR_DIR/html/tokenizer
240-
$ext_builddir/$LEXBOR_DIR/html/tree/insertion_mode
241-
$ext_builddir/$LEXBOR_DIR/ns
242-
$ext_builddir/$LEXBOR_DIR/ports/posix/lexbor/core
243-
$ext_builddir/$LEXBOR_DIR/selectors-adapted
244-
$ext_builddir/$LEXBOR_DIR/tag
53+
$ext_builddir/lexbor/selectors-adapted
24554
])
24655
PHP_SUBST([DOM_SHARED_LIBADD])
24756
PHP_INSTALL_HEADERS([ext/dom], m4_normalize([
@@ -251,5 +60,6 @@ if test "$PHP_DOM" != "no"; then
25160
xpath_callbacks.h
25261
]))
25362
PHP_ADD_EXTENSION_DEP(dom, libxml)
63+
PHP_ADD_EXTENSION_DEP(dom, lexbor)
25464
])
25565
fi

ext/dom/config.w32

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,17 @@ if (PHP_DOM == "yes") {
1616
entityreference.c \
1717
token_list.c \
1818
notation.c xpath.c dom_iterators.c \
19-
namednodemap.c xpath_callbacks.c", null, "-Iext/dom/lexbor");
19+
namednodemap.c xpath_callbacks.c", null, "/I ext/lexbor");
20+
21+
ADD_EXTENSION_DEP('dom', 'lexbor');
2022

2123
ADD_SOURCES("ext/dom/parentnode", "tree.c css_selectors.c", "dom");
22-
ADD_SOURCES("ext/dom/lexbor/lexbor/ports/windows_nt/lexbor/core", "memory.c", "dom");
23-
ADD_SOURCES("ext/dom/lexbor/lexbor/core", "array_obj.c array.c avl.c bst.c diyfp.c conv.c dobject.c dtoa.c hash.c mem.c mraw.c print.c serialize.c shs.c str.c strtod.c", "dom");
24-
ADD_SOURCES("ext/dom/lexbor/lexbor/dom", "interface.c", "dom");
25-
ADD_SOURCES("ext/dom/lexbor/lexbor/dom/interfaces", "attr.c cdata_section.c character_data.c comment.c document.c document_fragment.c document_type.c element.c node.c processing_instruction.c shadow_root.c text.c", "dom");
26-
ADD_SOURCES("ext/dom/lexbor/lexbor/html/tokenizer", "error.c state_comment.c state_doctype.c state_rawtext.c state_rcdata.c state_script.c state.c", "dom");
27-
ADD_SOURCES("ext/dom/lexbor/lexbor/html/tree", "active_formatting.c open_elements.c error.c", "dom");
28-
ADD_SOURCES("ext/dom/lexbor/lexbor/html/tree/insertion_mode", "after_after_body.c after_after_frameset.c after_body.c after_frameset.c after_head.c before_head.c before_html.c foreign_content.c in_body.c in_caption.c in_cell.c in_column_group.c in_frameset.c in_head.c in_head_noscript.c initial.c in_row.c in_select.c in_select_in_table.c in_table_body.c in_table.c in_table_text.c in_template.c text.c", "dom");
29-
ADD_SOURCES("ext/dom/lexbor/lexbor/html", "encoding.c interface.c parser.c token.c token_attr.c tokenizer.c tree.c", "dom");
30-
ADD_SOURCES("ext/dom/lexbor/lexbor/encoding", "big5.c decode.c encode.c encoding.c euc_kr.c gb18030.c iso_2022_jp_katakana.c jis0208.c jis0212.c range.c res.c single.c", "dom");
31-
ADD_SOURCES("ext/dom/lexbor/lexbor/html/interfaces", "anchor_element.c area_element.c audio_element.c base_element.c body_element.c br_element.c button_element.c canvas_element.c data_element.c data_list_element.c details_element.c dialog_element.c directory_element.c div_element.c d_list_element.c document.c element.c embed_element.c field_set_element.c font_element.c form_element.c frame_element.c frame_set_element.c head_element.c heading_element.c hr_element.c html_element.c iframe_element.c image_element.c input_element.c label_element.c legend_element.c li_element.c link_element.c map_element.c marquee_element.c media_element.c menu_element.c meta_element.c meter_element.c mod_element.c object_element.c o_list_element.c opt_group_element.c option_element.c output_element.c paragraph_element.c param_element.c picture_element.c pre_element.c progress_element.c quote_element.c script_element.c select_element.c slot_element.c source_element.c span_element.c style_element.c table_caption_element.c table_cell_element.c table_col_element.c table_element.c table_row_element.c table_section_element.c template_element.c text_area_element.c time_element.c title_element.c track_element.c u_list_element.c unknown_element.c video_element.c window.c", "dom");
32-
ADD_SOURCES("ext/dom/lexbor/lexbor/selectors-adapted", "selectors.c", "dom");
33-
ADD_SOURCES("ext/dom/lexbor/lexbor/css", "state.c log.c parser.c css.c", "dom");
34-
ADD_SOURCES("ext/dom/lexbor/lexbor/css/selectors", "state.c selectors.c selector.c pseudo_state.c pseudo.c", "dom");
35-
ADD_SOURCES("ext/dom/lexbor/lexbor/css/syntax", "state.c parser.c syntax.c anb.c tokenizer.c token.c", "dom");
36-
ADD_SOURCES("ext/dom/lexbor/lexbor/css/syntax/tokenizer", "error.c", "dom");
37-
ADD_SOURCES("ext/dom/lexbor/lexbor/ns", "ns.c", "dom");
38-
ADD_SOURCES("ext/dom/lexbor/lexbor/tag", "tag.c", "dom");
39-
ADD_FLAG("CFLAGS_DOM", "/D LEXBOR_STATIC ");
24+
ADD_SOURCES("ext/dom/lexbor/selectors-adapted", "selectors.c", "dom");
4025

4126
AC_DEFINE("HAVE_DOM", 1, "Define to 1 if the PHP extension 'dom' is available.");
4227

4328
if (!PHP_DOM_SHARED) {
44-
ADD_FLAG("CFLAGS_DOM", "/D LIBXML_STATIC ");
29+
ADD_FLAG("CFLAGS_DOM", "/D LIBXML_STATIC /D LEXBOR_STATIC ");
4530
} else {
4631
if (!CHECK_LIB("libxml2.lib", "dom")) {
4732
WARNING("dom support can't be enabled, libxml is not found")
@@ -51,7 +36,8 @@ if (PHP_DOM == "yes") {
5136
"dom_ce.h " +
5237
"namespace_compat.h " +
5338
"xml_common.h " +
54-
"xpath_callbacks.h "
39+
"xpath_callbacks.h " +
40+
"lexbor/selectors-adapted/selectors.h "
5541
);
5642
} else {
5743
WARNING("dom support can't be enabled, libxml is not enabled")

0 commit comments

Comments
 (0)