2024-04-04 13:14:46 +03:00
project (
'libxml2' ,
'c' ,
version : '2.13.0' ,
license : 'MIT' ,
default_options : [ 'buildtype=debug' , 'warning_level=3' ] ,
meson_version : '>= 0.61' ,
)
v_array = meson . project_version ( ) . split ( '.' )
v_maj = v_array [ 0 ]
v_min = v_array [ 1 ]
v_mic = v_array [ 2 ]
v_nbr = v_maj . to_int ( ) * 10000 + v_min . to_int ( ) * 100 + v_mic . to_int ( )
v_extra = ''
r = run_command ( 'git' , 'describe' , check : false )
if ( r . returncode ( ) == 0 )
v_extra = '-GIT' + r . stdout ( ) . strip ( )
endif
# install paths
dir_prefix = get_option ( 'prefix' )
dir_bin = dir_prefix / get_option ( 'bindir' )
dir_include = dir_prefix / get_option ( 'includedir' )
dir_pkginclude = dir_include / meson . project_name ( )
dir_lib = dir_prefix / get_option ( 'libdir' )
dir_data = dir_prefix / get_option ( 'datadir' )
dir_doc = dir_data / 'doc' / 'libxml2'
dir_locale = dir_prefix / get_option ( 'localedir' )
# host
host_os = host_machine . system ( )
2024-06-18 00:28:51 +03:00
bsd = [ 'freebsd' , 'dragonfly' ]
2024-04-04 13:14:46 +03:00
cygwin = 'cygwin'
windows = 'windows'
2024-06-17 04:19:42 +03:00
sys_bsd = bsd . contains ( host_os )
2024-04-04 13:14:46 +03:00
sys_cygwin = cygwin . contains ( host_os )
sys_windows = windows . contains ( host_os )
libxml2_cflags = [ ]
xml_cflags = ''
2024-06-06 20:50:19 +03:00
dep_args = [ ]
2024-04-04 13:14:46 +03:00
if sys_cygwin or sys_windows
if get_option ( 'default_library' ) == 'static'
xml_cflags = '-DLIBXML_STATIC'
libxml2_cflags + = '-DLIBXML_STATIC'
2024-06-06 20:50:19 +03:00
dep_args + = '-DLIBXML_STATIC'
2024-04-04 13:14:46 +03:00
endif
endif
# binaries
cc = meson . get_compiler ( 'c' )
# options
want_c14n = get_option ( 'c14n' )
want_catalog = get_option ( 'catalog' )
want_debug = get_option ( 'debuging' )
want_html = get_option ( 'html' )
want_http = get_option ( 'http' )
want_ipv6 = get_option ( 'ipv6' )
want_iso8859x = get_option ( 'iso8859x' )
want_legacy = get_option ( 'legacy' )
want_output = get_option ( 'output' )
want_pattern = get_option ( 'pattern' )
want_push = get_option ( 'push' )
want_python = get_option ( 'python' )
want_reader = get_option ( 'reader' )
want_regexps = get_option ( 'regexps' )
want_sax1 = get_option ( 'sax1' )
want_schemas = get_option ( 'schemas' )
want_schematron = get_option ( 'schematron' )
want_thread_alloc = get_option ( 'thread-alloc' )
want_tls = get_option ( 'tls' )
want_valid = get_option ( 'valid' )
want_writer = get_option ( 'writer' )
want_xinclude = get_option ( 'xinclude' )
want_xpath = get_option ( 'xpath' )
want_xptr = get_option ( 'xptr' )
2024-05-21 00:46:37 +03:00
# TODO: Options should be three-valued: "yes", "no", default
2024-05-21 00:51:01 +03:00
# TODO: Legacy defaults
2024-04-04 13:14:46 +03:00
# hard dependencies on options
if want_c14n == true
if want_output == false
message ( '-Dc14n=true overrides -Doutput' )
endif
want_output = true
if want_xpath == false
message ( '-Dc14n=true overrides -Dxpath' )
endif
want_xpath = true
endif
if want_schemas == true
if want_pattern == false
message ( '-Dschemas=true overrides -Dpattern' )
endif
want_pattern = true
if want_regexps == false
message ( '-Dschemas=true overrides -Dregexps' )
endif
want_regexps = true
endif
if want_schematron == true
if want_pattern == false
message ( '-Dschematron=true overrides -Dpattern' )
endif
want_pattern = true
if want_xpath == false
message ( '-Dschematron=true overrides -Dxpath' )
endif
want_xpath = true
endif
if want_reader == true
if want_push == false
message ( '-Dreader=true overrides -Dpush' )
endif
want_push = true
endif
if want_writer == true
if want_output == false
message ( '-Dwriter=true overrides -Doutput' )
endif
want_output = true
if want_push == false
message ( '-Dwriter=true overrides -Dpush' )
endif
want_push = true
endif
if want_xinclude == true
if want_xpath == false
message ( '-Dxinclude=true overrides -Dxpath' )
endif
want_xpath = true
endif
if want_xptr == true
if want_xpath == false
message ( '-Dxptr=true overrides -Dxpath' )
endif
want_xpath = true
endif
# minimum dependencies
if get_option ( 'minimum' )
2024-05-21 00:46:37 +03:00
# TODO: This is should allow other options
2024-04-04 13:14:46 +03:00
want_c14n = false
want_catalog = false
want_debug = false
want_html = false
want_http = false
want_ipv6 = false
want_iso8859x = false
want_output = false
want_pattern = false
want_push = false
want_python = false
want_reader = false
want_regexps = false
want_sax1 = false
want_schemas = false
want_schematron = false
want_thread_alloc = false
want_valid = false
want_writer = false
want_xinclude = false
want_xpath = false
want_xptr = false
else
# Disable dependent modules
if want_output == false
want_c14n = false
want_writer = false
endif
if want_pattern == false
want_schemas = false
want_schematron = false
endif
if want_push == false
want_reader = false
want_writer = false
endif
if want_regexps == false
want_schemas = false
endif
if want_xpath == false
want_c14n = false
want_schematron = false
want_xinclude = false
want_xptr = false
endif
endif
cflags_try = [ ]
### workaround for native compilers, see configure.ac
if cc . get_argument_syntax ( ) == 'gcc'
cflags_try + = [
'-Wshadow' ,
'-Wpointer-arith' ,
'-Wcast-align' ,
'-Wwrite-strings' ,
'-Wstrict-prototypes' ,
'-Wmissing-prototypes' ,
'-Wno-long-long' ,
'-Wno-format-extra-args' ,
]
if host_machine . cpu_family ( ) == 'alpha'
cflags_try + = '-mieee'
endif
else
if host_machine . cpu_family ( ) == 'alpha'
cflags_try + = '-ieee'
elif host_machine . cpu_family ( ) == 'parisc'
cflags_try + = '-Wp,-H30000'
endif
endif
foreach cf : cflags_try
if cc . has_argument ( cf )
libxml2_cflags + = cf
endif
endforeach
# configuration
#
# X : done
# N : not done
#
# [X] config.h.in
# [X] include/libxml/xmlversion.h.in
# [N] libxml-2.0-uninstalled.pc.in
# [X] libxml-2.0.pc.in
# [X] libxml2-config.cmake.in
# [X] python/setup.py.in
# [N] xml2-config.in
## config.h
config_h = configuration_data ( )
config_h . set_quoted ( 'PACKAGE_NAME' , meson . project_name ( ) )
config_h . set_quoted ( 'PACKAGE_VERSION' , meson . project_version ( ) )
config_h . set_quoted ( 'PACKAGE_BIN_DIR' , dir_bin )
config_h . set_quoted ( 'PACKAGE_LIB_DIR' , dir_lib )
config_h . set_quoted ( 'PACKAGE_DATA_DIR' , dir_data )
config_h . set_quoted ( 'LOCALEDIR' , dir_locale )
# header files
xml_check_headers = [
'stdint.h' ,
'fcntl.h' ,
'unistd.h' ,
'sys/stat.h' ,
'sys/mman.h' ,
'sys/socket.h' ,
'netinet/in.h' ,
'arpa/inet.h' ,
'netdb.h' ,
'sys/select.h' ,
'poll.h' ,
'sys/time.h' ,
'sys/timeb.h' ,
'dl.h' ,
'dlfcn.h' ,
'glob.h' ,
]
foreach header : xml_check_headers
if cc . has_header ( header )
config_h . set10 ( 'HAVE_' + header . underscorify ( ) . to_upper ( ) , true )
endif
endforeach
# library functions
xml_check_functions = [
# fct | header
[ 'gettimeofday' , 'sys/time.h' ] ,
[ 'ftime' , 'sys/timeb.h' ] ,
[ 'stat' , 'sys/stat.h' ] ,
[ 'mmap' , 'sys/mman.h' ] ,
[ 'munmap' , 'sys/mman.h' ] ,
]
foreach function : xml_check_functions
if cc . has_header_symbol ( function [ 1 ] , function [ 0 ] )
config_h . set10 ( 'HAVE_' + function [ 0 ] . to_upper ( ) , true )
endif
endforeach
# library
config_dir = [ include_directories ( '.' ) , include_directories ( 'include' ) ]
## dependencies
xml_deps = [ ]
### math library
if sys_windows == false
m_dep = cc . find_library ( 'm' , required : false )
if m_dep . found ( )
xml_deps + = m_dep
endif
endif
### thread local storage
if want_tls == true
tls_src = '' '
#include <threads.h>
int main ( )
{
_Thread_local int v ;
return 0 ;
}
'' '
res = cc . compiles ( tls_src , name : '_Thread_local' )
if res == true
config_h . set ( 'XML_THREAD_LOCAL' , '_Thread_local' )
else
tls_src = '' '
int main ( )
{
__thread int v ;
return 0 ;
}
'' '
res = cc . compiles ( tls_src , name : '__thread' )
if res == true
config_h . set ( 'XML_THREAD_LOCAL' , '__thread' )
else
tls_src = '' '
int main ( )
{
__declspec ( thread ) int v ;
return 0 ;
}
'' '
res = cc . compiles ( tls_src , name : '__declspec(thread)' )
if res == true
config_h . set ( 'XML_THREAD_LOCAL' , '__declspec(thread)' )
else
want_tls = false
endif
endif
endif
endif
### __attribute__((destructor))
if cc . has_function_attribute ( 'destructor' )
config_h . set10 ( 'HAVE_ATTRIBUTE_DESTRUCTOR' , true )
config_h . set ( 'ATTRIBUTE_DESTRUCTOR' , '__attribute__((destructor))' )
endif
### DSO support
2024-06-06 23:42:03 +03:00
if sys_cygwin == true
module_extension = '.dll'
elif sys_windows == true
module_extension = '.dll'
else
module_extension = '.so'
endif
2024-04-04 13:14:46 +03:00
2024-06-06 23:42:03 +03:00
dl_dep = dependency ( '' , required : false )
if not get_option ( 'minimum' )
if host_machine . system ( ) != 'windows'
2024-05-03 23:11:47 +03:00
if meson . version ( ) . version_compare ( '>=0.62' )
2024-06-06 23:42:03 +03:00
dl_dep = dependency ( 'dl' , required : get_option ( 'modules' ) )
2024-05-03 23:11:47 +03:00
else
2024-06-06 23:42:03 +03:00
dl_dep = cc . find_library ( 'dl' , required : get_option ( 'modules' ) )
2024-05-03 23:11:47 +03:00
endif
2024-04-04 13:14:46 +03:00
if dl_dep . found ( )
config_h . set10 ( 'HAVE_DLOPEN' , true )
xml_deps + = dl_dep
endif
2024-06-06 23:42:03 +03:00
elif get_option ( 'modules' ) . allowed ( )
dl_dep = declare_dependency ( )
2024-04-04 13:14:46 +03:00
endif
endif
### threads
2024-06-06 23:42:03 +03:00
threads_dep = dependency ( '' , required : false )
if not get_option ( 'minimum' )
if host_machine . system ( ) != 'windows'
threads_dep = dependency ( 'threads' , required : get_option ( 'threads' ) )
2024-04-04 13:14:46 +03:00
if threads_dep . found ( )
config_h . set10 ( 'HAVE_PTHREAD_H' , true )
xml_deps + = threads_dep
endif
2024-06-06 23:42:03 +03:00
elif get_option ( 'threads' ) . allowed ( )
threads_dep = declare_dependency ( )
2024-04-04 13:14:46 +03:00
endif
endif
2024-06-06 23:42:03 +03:00
want_thread_alloc = threads_dep . found ( )
2024-04-04 13:14:46 +03:00
### xmllint shell history
xmllint_deps = [ ]
2024-06-19 02:47:15 +03:00
if not get_option ( 'minimum' )
readline_dep = dependency ( 'readline' , required : get_option ( 'readline' ) )
else
readline_dep = dependency ( '' , required : false )
2024-04-04 13:14:46 +03:00
endif
2024-06-19 02:47:15 +03:00
config_h . set ( 'HAVE_LIBREADLINE' , readline_dep . found ( ) )
xmllint_deps + = readline_dep
2024-06-19 03:05:09 +03:00
if not get_option ( 'minimum' ) and readline_dep . found ( )
history_dep = dependency ( 'history' , required : get_option ( 'history' ) )
else
history_dep = dependency ( '' , required : false )
endif
config_h . set ( 'HAVE_LIBHISTORY' , history_dep . found ( ) )
xmllint_deps + = history_dep
2024-04-04 13:14:46 +03:00
### crypto
if sys_windows == true
bcrypt_dep = cc . find_library ( 'bcrypt' , required : true )
xml_deps + = bcrypt_dep
endif
### inet
2024-06-12 19:19:55 +03:00
if want_http == true
2024-04-04 13:14:46 +03:00
if sys_windows == true
ws2_dep = cc . find_library ( 'ws2_32' , required : true )
xml_deps + = ws2_dep
else
has_in_libc = cc . has_function ( 'gethostbyname' )
if has_in_libc == false
nsl_dep = cc . find_library ( 'nsl' , required : true )
if nsl_dep . found ( )
has_in_nsl = cc . has_function (
'gethostbyname' ,
dependencies : nsl_dep ,
required : false ,
)
if has_in_nsl == true
xml_deps + = nsl_dep
endif
endif
endif
endif
### socket length
socklen_src = '' '
#include <stddef.h>
#ifdef _WIN32
#include <ws2tcpip.h>
#else
#include <sys/socket.h>
#endif
int main ( )
{
( void ) getsockopt ( 1 , 1 , 1 , NULL , ( socklen_t * ) NULL ) ;
return 0 ;
}
'' '
res = cc . compiles ( socklen_src , name : 'socket length as socklen_t' )
if res == true
config_h . set ( 'XML_SOCKLEN_T' , 'socklen_t' )
else
socklen_src = '' '
#include <stddef.h>
#include <sys/socket.h>
int main ( )
{
( void ) getsockopt ( 1 , 1 , 1 , NULL , ( size_t * ) NULL ) ;
return 0 ;
}
'' '
res = cc . compiles ( socklen_src , name : 'socket length as size_t' )
if res == true
config_h . set ( 'XML_SOCKLEN_T' , 'size_t' )
else
socklen_src = '' '
#include <stddef.h>
#include <sys/socket.h>
int main ( )
{
( void ) getsockopt ( 1 , 1 , 1 , NULL , ( int * ) NULL ) ;
return 0 ;
}
'' '
res = cc . compiles ( socklen_src , name : 'socket length as int' )
if res == false
message ( 'could not determine socket length type, use int' )
endif
config_h . set ( 'XML_SOCKLEN_T' , 'int' )
endif
endif
if want_ipv6 == true
### IPV6 on Windows has been supported since Windows XP SP1 (around 2003)
### see:
### https://learn.microsoft.com/en-us/windows/win32/winsock/ipv6-support-2
### nevertheless, we check it like autotools
ipv6_src = '' '
#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#endif
int main ( )
{
struct sockaddr_storage ss ;
socket ( AF_INET6 , SOCK_STREAM , 0 ) ;
getaddrinfo ( 0 , 0 , 0 , 0 ) ;
return 0 ;
}
'' '
res = cc . compiles ( ipv6_src , name : 'support for IPV6' )
if res == true
config_h . set10 ( 'SUPPORT_IP6' , true )
endif
endif
endif
### zlib
2024-06-06 23:42:03 +03:00
if not get_option ( 'minimum' )
zlib_dep = dependency ( 'zlib' , required : get_option ( 'zlib' ) )
else
zlib_dep = dependency ( '' , required : false )
2024-04-04 13:14:46 +03:00
endif
2024-06-06 23:42:03 +03:00
xml_deps + = zlib_dep
2024-04-04 13:14:46 +03:00
### lzma
2024-06-06 23:42:03 +03:00
if not get_option ( 'minimum' )
lzma_dep = dependency ( 'liblzma' , required : get_option ( 'lzma' ) )
else
lzma_dep = dependency ( '' , required : false )
2024-04-04 13:14:46 +03:00
endif
2024-06-06 23:42:03 +03:00
xml_deps + = lzma_dep
2024-04-04 13:14:46 +03:00
2024-06-16 05:41:08 +03:00
# icu
icu_dep = dependency ( 'icu-i18n' , method : 'pkg-config' , required : get_option ( 'icu' ) )
if icu_dep . found ( )
defs = icu_dep . get_variable ( pkgconfig : 'DEFS' )
if cc . has_argument ( defs )
libxml2_cflags + = defs
endif
endif
xml_deps + = icu_dep
2024-04-04 13:14:46 +03:00
### iconv
2024-06-06 23:42:03 +03:00
if not get_option ( 'minimum' )
2024-06-16 05:41:08 +03:00
# this is a hack for the BSDs. The iconv dependency works as long as libiconv is not in the include path.
if sys_bsd and icu_dep . found ( )
2024-06-18 00:28:51 +03:00
iconv_dep = cc . find_library ( 'iconv' , dirs : icu_dep . get_variable ( pkgconfig : 'libdir' ) , required : get_option ( 'iconv' ) )
2024-06-16 05:41:08 +03:00
else
iconv_dep = dependency ( 'iconv' , required : get_option ( 'iconv' ) )
endif
2024-06-06 23:42:03 +03:00
else
iconv_dep = dependency ( '' , required : false )
2024-04-04 13:14:46 +03:00
endif
2024-06-06 23:42:03 +03:00
xml_deps + = iconv_dep
2024-04-04 13:14:46 +03:00
2024-06-06 23:42:03 +03:00
if not iconv_dep . found ( ) and want_iso8859x == false
2024-04-04 13:14:46 +03:00
want_iso8859x = false
else
want_iso8859x = true
endif
subdir ( 'include/libxml' )
# Set config_h after all subdirs and dependencies have set values
configure_file ( output : 'config.h' , configuration : config_h )
## libxml2 library
xml_src = [
'buf.c' ,
'chvalid.c' ,
'dict.c' ,
'entities.c' ,
'encoding.c' ,
'error.c' ,
'globals.c' ,
'hash.c' ,
'list.c' ,
'parser.c' ,
'parserInternals.c' ,
'SAX2.c' ,
'threads.c' ,
'tree.c' ,
'uri.c' ,
'valid.c' ,
'xmlIO.c' ,
'xmlmemory.c' ,
'xmlstring.c' ,
]
xml_opt_src = [
[ want_c14n , [ 'c14n.c' ] ] ,
[ want_catalog , [ 'catalog.c' ] ] ,
[ want_debug , [ 'debugXML.c' ] ] ,
[ want_html , [ 'HTMLparser.c' , 'HTMLtree.c' ] ] ,
[ want_http , [ 'nanohttp.c' ] ] ,
[ want_legacy , [ 'legacy.c' ] ] ,
2024-06-06 23:42:03 +03:00
[ lzma_dep . found ( ) , [ 'xzlib.c' ] ] ,
[ dl_dep . found ( ) , [ 'xmlmodule.c' ] ] ,
2024-04-04 13:14:46 +03:00
[ want_output , [ 'xmlsave.c' ] ] ,
[ want_pattern , [ 'pattern.c' ] ] ,
[ want_reader , [ 'xmlreader.c' ] ] ,
[ want_regexps , [ 'xmlregexp.c' , 'xmlunicode.c' ] ] ,
[ want_schemas , [ 'relaxng.c' , 'xmlschemas.c' , 'xmlschemastypes.c' ] ] ,
[ want_schemas and not want_xpath , [ 'xpath.c' ] ] ,
[ want_schematron , [ 'schematron.c' ] ] ,
[ want_writer , [ 'xmlwriter.c' ] ] ,
[ want_xinclude , [ 'xinclude.c' ] ] ,
[ want_xpath , [ 'xpath.c' ] ] ,
[ want_xptr , [ 'xlink.c' , 'xpointer.c' ] ] ,
]
foreach file : xml_opt_src
want = file [ 0 ]
src = file [ 1 ]
if want == true
if src . length ( ) > 1
foreach s : src
xml_src + = s
endforeach
else
xml_src + = src
endif
endif
endforeach
xml_lib = library (
'xml2' ,
files ( xml_src ) ,
c_args : libxml2_cflags ,
dependencies : xml_deps ,
include_directories : config_dir ,
install : true ,
version : meson . project_version ( ) ,
)
2024-05-01 23:07:52 +03:00
dep_inc = include_directories ( 'include' )
2024-06-06 20:50:19 +03:00
xml_dep = declare_dependency ( include_directories : dep_inc , link_with : xml_lib , compile_args : dep_args )
2024-05-01 23:07:52 +03:00
meson . override_dependency ( 'libxml-2.0' , xml_dep )
2024-04-04 13:14:46 +03:00
## xmllint tool
executable (
'xmllint' ,
2024-06-16 18:57:12 +03:00
files ( 'xmllint.c' , 'shell.c' ) ,
2024-04-04 13:14:46 +03:00
dependencies : [ xml_dep , xmllint_deps ] ,
include_directories : config_dir ,
install : true ,
)
## xmlcatalog tool
executable (
'xmlcatalog' ,
files ( 'xmlcatalog.c' ) ,
dependencies : [ xml_dep , xmllint_deps ] ,
include_directories : config_dir ,
install : true ,
)
## testdso module
testdso_mod = shared_module (
'testdso' ,
files ( 'testdso.c' ) ,
build_rpath : get_option ( 'libdir' ) ,
include_directories : config_dir ,
name_prefix : '' ,
)
## tests
2024-06-17 05:56:07 +03:00
checks = {
'runsuite' : [ ] ,
'runtest' : threads_dep ,
'runxmlconf' : [ ] ,
2024-04-04 13:14:46 +03:00
# Disabled for now, see #694
2024-06-17 05:56:07 +03:00
# 'testModule': [],
'testapi' : [ ] ,
'testchar' : [ ] ,
'testdict' : [ ] ,
'testlimits' : [ ] ,
'testparser' : [ ] ,
'testrecurse' : [ ] ,
}
2024-04-04 13:14:46 +03:00
2024-06-17 05:56:07 +03:00
foreach check , deps : checks
2024-04-04 13:14:46 +03:00
exe = executable (
check ,
files ( check + '.c' ) ,
2024-06-17 05:56:07 +03:00
dependencies : [ deps , xml_dep ] ,
2024-04-04 13:14:46 +03:00
include_directories : config_dir ,
)
if check != 'testlimits'
test ( check , exe , timeout : 0 , workdir : meson . current_source_dir ( ) )
endif
endforeach
subdir ( 'example' )
subdir ( 'doc' )
if want_python == true
subdir ( 'python' )
endif
## pc files
pkgmod = import ( 'pkgconfig' )
pkgmod . generate (
xml_lib ,
description : 'libXML library version2.' ,
filebase : 'libxml-2.0' ,
name : 'libXML' ,
2024-06-20 00:13:47 +03:00
subdirs : [ meson . project_name ( ) ] ,
2024-06-06 23:42:03 +03:00
variables : 'modules=' + dl_dep . found ( ) . to_string ( '1' , '0' ) ,
2024-04-04 13:14:46 +03:00
)
## libxml2-config.cmake file
config_cmake = configuration_data ( )
config_cmake . set ( 'LIBXML_MAJOR_VERSION' , v_maj )
config_cmake . set ( 'LIBXML_MINOR_VERSION' , v_min )
config_cmake . set ( 'LIBXML_MICRO_VERSION' , v_mic )
config_cmake . set ( 'VERSION' , meson . project_version ( ) )
2024-06-06 23:42:03 +03:00
config_cmake . set ( 'WITH_ICONV' , iconv_dep . found ( ) . to_int ( ) . to_string ( ) )
config_cmake . set ( 'WITH_ICU' , icu_dep . found ( ) . to_int ( ) . to_string ( ) )
config_cmake . set ( 'WITH_LZMA' , lzma_dep . found ( ) . to_int ( ) . to_string ( ) )
config_cmake . set ( 'WITH_MODULES' , dl_dep . found ( ) . to_int ( ) . to_string ( ) )
config_cmake . set ( 'WITH_THREADS' , threads_dep . found ( ) . to_int ( ) . to_string ( ) )
config_cmake . set ( 'WITH_ZLIB' , zlib_dep . found ( ) . to_int ( ) . to_string ( ) )
2024-04-04 13:14:46 +03:00
config_cmake . set ( 'XML_CFLAGS' , xml_cflags )
configure_file (
input : 'libxml2-config.cmake.in' ,
output : 'libxml2-config.cmake' ,
configuration : config_cmake ,
install_dir : dir_lib / 'cmake' / 'libxml2' ,
)
# summary
summary (
{
'OS' : host_os ,
'c14n' : want_c14n ,
'catalog' : want_catalog ,
'debug' : want_debug ,
2024-06-19 03:05:09 +03:00
'history' : history_dep . found ( ) ,
2024-04-04 13:14:46 +03:00
'html' : want_html ,
'http' : want_http ,
2024-06-06 23:42:03 +03:00
'iconv' : iconv_dep . found ( ) ,
'icu' : icu_dep . found ( ) ,
2024-04-04 13:14:46 +03:00
'ipv6' : want_ipv6 ,
'iso8859x' : want_iso8859x ,
'legacy' : want_legacy ,
2024-06-06 23:42:03 +03:00
'lzma' : lzma_dep . found ( ) ,
'modules' : dl_dep . found ( ) ,
2024-04-04 13:14:46 +03:00
'output' : want_output ,
'pattern' : want_pattern ,
'push' : want_push ,
'python' : want_python ,
'reader' : want_reader ,
2024-06-19 02:47:15 +03:00
'readline' : readline_dep . found ( ) ,
2024-04-04 13:14:46 +03:00
'regexps' : want_regexps ,
'sax1' : want_sax1 ,
'schemas' : want_schemas ,
'schematron' : want_schematron ,
2024-06-06 23:42:03 +03:00
'threads' : threads_dep . found ( ) ,
2024-04-04 13:14:46 +03:00
'thread-alloc' : want_thread_alloc ,
'tls' : want_tls ,
'valid' : want_valid ,
'writer' : want_writer ,
'xinclude' : want_xinclude ,
'xpath' : want_xpath ,
'xptr' : want_xptr ,
2024-06-06 23:42:03 +03:00
'zlib' : zlib_dep . found ( ) ,
2024-04-04 13:14:46 +03:00
} ,
section : 'Configuration Options Summary:' ,
)