@@ -23,32 +23,46 @@ def crash(str)
2323 end
2424else
2525 dir_config ( 'xml2' )
26+ pkg_config ( 'libxml-2.0' )
2627end
2728
28- found_header = find_header ( 'libxml/xmlversion.h' ,
29- '/opt/include/libxml2' ,
30- '/opt/local/include/libxml2' ,
31- '/opt/homebrew/opt/libxml2/include/libxml2' ,
32- '/usr/local/include/libxml2' ,
33- '/usr/include/libxml2' ,
34- '/usr/local/include' ,
35- '/usr/local/opt/libxml2/include/libxml2' )
29+ include_dirs = [ ]
30+ lib_dirs = [ ]
31+
32+ if ( msystem_prefix = ENV [ 'MSYSTEM_PREFIX' ] ) && !msystem_prefix . empty?
33+ include_dirs . concat ( [
34+ "#{ msystem_prefix } /include/libxml2" ,
35+ "#{ msystem_prefix } /include"
36+ ] )
37+ lib_dirs << "#{ msystem_prefix } /lib"
38+ end
39+
40+ include_dirs . concat ( [
41+ '/opt/include/libxml2' ,
42+ '/opt/local/include/libxml2' ,
43+ '/opt/homebrew/opt/libxml2/include/libxml2' ,
44+ '/usr/local/include/libxml2' ,
45+ '/usr/include/libxml2' ,
46+ '/usr/local/include' ,
47+ '/usr/local/opt/libxml2/include/libxml2'
48+ ] )
49+
50+ lib_dirs . concat ( [
51+ '/opt/lib' ,
52+ '/opt/local/lib' ,
53+ '/opt/homebrew/opt/libxml2/lib' ,
54+ '/usr/lib' ,
55+ '/usr/local/lib' ,
56+ '/usr/local/opt/libxml2/lib'
57+ ] )
58+
59+ found_header = find_header ( 'libxml/xmlversion.h' , *include_dirs )
3660
3761found_lib = find_library ( 'xml2' , 'xmlParseDoc' ,
38- '/opt/lib' ,
39- '/opt/local/lib' ,
40- '/opt/homebrew/opt/libxml2/lib' ,
41- '/usr/lib' ,
42- '/usr/local/lib' ,
43- '/usr/local/opt/libxml2/lib' )
62+ *lib_dirs )
4463
4564found_lib ||= find_library ( 'libxml2' , 'xmlParseDoc' ,
46- '/opt/lib' ,
47- '/opt/local/lib' ,
48- '/opt/homebrew/opt/libxml2/lib' ,
49- '/usr/lib' ,
50- '/usr/local/lib' ,
51- '/usr/local/opt/libxml2/lib' )
65+ *lib_dirs )
5266
5367if !found_header || !found_lib
5468 crash ( <<~EOL )
0 commit comments