@@ -29,7 +29,7 @@ impl Version {
2929 }
3030
3131 pub fn parse ( s : & str ) -> Option < Self > {
32- let re = Regex :: new ( r"^(1)\.(8|10|12|13)\.(\d\d?)(_\d+)?(-patch\d+)?$" ) . ok ( ) ?;
32+ let re = Regex :: new ( r"^(1)\.(8|10|12|13|14 )\.(\d\d?)(_\d+)?(-( patch)? \d+)?$" ) . ok ( ) ?;
3333 let captures = re. captures ( s) ?;
3434 Some ( Self {
3535 major : captures. get ( 1 ) . and_then ( |c| c. as_str ( ) . parse :: < u8 > ( ) . ok ( ) ) ?,
@@ -305,14 +305,15 @@ mod macos {
305305 }
306306 // We have to explicitly support homebrew since the HDF5 bottle isn't
307307 // packaged with pkg-config metadata.
308- let ( v18, v110, v112) = if let Some ( version) = config. version {
308+ let ( v18, v110, v112, v114 ) = if let Some ( version) = config. version {
309309 (
310310 version. major == 1 && version. minor == 8 ,
311311 version. major == 1 && version. minor == 10 ,
312312 version. major == 1 && version. minor == 12 ,
313+ version. major == 1 && version. minor == 14 ,
313314 )
314315 } else {
315- ( false , false , false )
316+ ( false , false , false , false )
316317 } ;
317318 println ! (
318319 "Attempting to find HDF5 via Homebrew ({})..." ,
@@ -322,10 +323,19 @@ mod macos {
322323 "1.10.*"
323324 } else if v112 {
324325 "1.12.*"
326+ } else if v114 {
327+ "1.14.*"
325328 } else {
326329 "any version"
327330 }
328331 ) ;
332+ if !( v18 || v110 || v112) {
333+ if let Some ( out) = run_command ( "brew" , & [ "--prefix" , "hdf5@1.14" ] ) {
334+ if is_root_dir ( & out) {
335+ config. inc_dir = Some ( PathBuf :: from ( out) . join ( "include" ) ) ;
336+ }
337+ }
338+ }
329339 if !( v18 || v110) {
330340 if let Some ( out) = run_command ( "brew" , & [ "--prefix" , "hdf5@1.12" ] ) {
331341 if is_root_dir ( & out) {
@@ -611,8 +621,9 @@ impl Config {
611621 assert ! ( version >= Version :: new( 1 , 8 , 4 ) , "required HDF5 version: >=1.8.4" ) ;
612622 let mut vs: Vec < _ > = ( 5 ..=21 ) . map ( |v| Version :: new ( 1 , 8 , v) ) . collect ( ) ; // 1.8.[5-21]
613623 vs. extend ( ( 0 ..=8 ) . map ( |v| Version :: new ( 1 , 10 , v) ) ) ; // 1.10.[0-8]
614- vs. extend ( ( 0 ..=1 ) . map ( |v| Version :: new ( 1 , 12 , v) ) ) ; // 1.12.[0-1 ]
624+ vs. extend ( ( 0 ..=2 ) . map ( |v| Version :: new ( 1 , 12 , v) ) ) ; // 1.12.[0-2 ]
615625 vs. extend ( ( 0 ..=0 ) . map ( |v| Version :: new ( 1 , 13 , v) ) ) ; // 1.13.[0-0]
626+ vs. extend ( ( 0 ..=0 ) . map ( |v| Version :: new ( 1 , 14 , v) ) ) ; // 1.14.[0-0]
616627 for v in vs. into_iter ( ) . filter ( |& v| version >= v) {
617628 println ! ( "cargo:rustc-cfg=feature=\" {}.{}.{}\" " , v. major, v. minor, v. micro) ;
618629 println ! ( "cargo:version_{}_{}_{}=1" , v. major, v. minor, v. micro) ;
0 commit comments