Resolve feature dependencies in CMake build
compile with command
cmake -DLIBXML2_WITH_OUTPUT=OFF .
make
will raise
[ 1%] Building C object CMakeFiles/LibXml2.dir/c14n.c.o
/libxml2/c14n.c:54:5: error: unknown type name 'xmlC14NIsVisibleCallback'; did you mean 'xmlC14NVisibleNsStack'?
xmlC14NIsVisibleCallback is_visible_callback;
^~~~~~~~~~~~~~~~~~~~~~~~
xmlC14NVisibleNsStack
/libxml2/c14n.c:49:3: note: 'xmlC14NVisibleNsStack' declared here
} xmlC14NVisibleNsStack, *xmlC14NVisibleNsStackPtr;
^
/libxml2/c14n.c:65:5: error: unknown type name 'xmlC14NMode'
xmlC14NMode mode;
...
and command
cmake -DLIBXML2_WITH_XPATH=OFF .
make
will raise
[ 1%] Building C object CMakeFiles/LibXml2.dir/buf.c.o
[ 2%] Building C object CMakeFiles/LibXml2.dir/c14n.c.o
In file included from /libxml2/c14n.c:25:
/libxml/c14n.h:71:7: error: unknown type name 'xmlNodeSetPtr'; did you mean 'xmlNodePtr'?
xmlNodeSetPtr nodes,
^~~~~~~~~~~~~
xmlNodePtr
/libxml2/include/libxml/tree.h:490:18: note: 'xmlNodePtr' declared here
typedef xmlNode *xmlNodePtr;
^
In file included from /libxml2/c14n.c:25:
/libxml2/include/libxml/c14n.h:79:7: error: unknown type name 'xmlNodeSetPtr'; did you mean 'xmlNodePtr'?
xmlNodeSetPtr nodes,
^~~~~~~~~~~~~
xmlNodePtr
/libxml2/include/libxml/tree.h:490:18: note: 'xmlNodePtr' declared here
typedef xmlNode *xmlNodePtr;
^
In file included from /fuzz/libxml2/c14n.c:25:
...