@@ -7,64 +7,75 @@ f18flag = fc.first_supported_argument(['-std=f2018', '-stand f18', '/stand:f18']
77if fc.get_id() == ' gcc'
88 add_project_arguments (' -fimplicit-none' , f18flag, language : ' fortran' )
99 quiet = [' -Wno-compare-reals' , ' -Wno-maybe-uninitialized' ]
10- elif fcid == ' intel'
10+ elif fc.get_id() == ' intel'
1111 add_project_arguments (' -warn' , ' -heap-arrays' , f18flag, language : ' fortran' )
12- elif fcid == ' intel-cl'
12+ elif fc.get_id() == ' intel-cl'
1313 add_project_arguments (' /warn' , ' /heap-arrays' , f18flag, language : ' fortran' )
14- elif fcid == ' pgi'
14+ elif fc.get_id() == ' pgi'
1515 add_project_arguments (' -C' , ' -Mdclchk' , language : ' fortran' )
1616endif
1717
1818#== find HDF5
1919
2020# needed for HDF5 on some systems including Ubuntu
21+ # these are moving to glibc so eventually this goes away
22+ # https://github.com/mesonbuild/meson/issues/4297#issuecomment-425744841
2123threads = dependency (' threads' , required : false )
2224dl = fc.find_library (' dl' , required : false )
2325
2426use_static = get_option (' default_library' ) == ' static'
2527# NOTE: static: parameter is too strict for now. Works more reliably without this parameter
2628
2729hdf5 = dependency (' hdf5' , language : ' fortran' , required : false , disabler : true ) # , static: use_static
30+ hdf5 = [hdf5]
31+ if threads.found()
32+ hdf5 += threads
33+ endif
34+ if dl.found()
35+ hdf5 += dl
36+ endif
2837if fc.links(' use h5lt; end' , dependencies : hdf5, name : ' HDF5' )
29- h5incdir = []
30- hdf5 = [hdf5, threads, dl]
38+ hdf5_incdir = []
3139 subdir_done ()
3240endif
3341
3442# HDF5 was not found
35- h5incdir = include_directories (get_option (' h5incdir ' ))
36- h5libdir = get_option (' h5libdir ' )
37- if h5libdir == ''
43+ hdf5_incdir = include_directories (get_option (' hdf5_incdir ' ))
44+ hdf5_libdir = get_option (' hdf5_libdir ' )
45+ if hdf5_libdir == ''
3846 if os == ' darwin'
3947 # assume homebrew
40- h5libdir = ' /usr/local/opt/hdf5/lib'
41- h5incdir = include_directories (' /usr/local/opt/hdf5/include' )
48+ hdf5_libdir = ' /usr/local/opt/hdf5/lib'
49+ hdf5_incdir = include_directories (' /usr/local/opt/hdf5/include' )
4250 elif os == ' windows'
4351 # assume MSYS2
44- h5libdir = ' c:/msys64/mingw64/lib'
52+ hdf5_libdir = ' c:/msys64/mingw64/lib'
4553 if use_static
46- h5incdir = include_directories (' c:/msys64/mingw64/include/static' )
54+ hdf5_incdir = include_directories (' c:/msys64/mingw64/include/static' )
4755 else
48- h5incdir = include_directories (' c:/msys64/mingw64/include/shared' )
56+ hdf5_incdir = include_directories (' c:/msys64/mingw64/include/shared' )
4957 endif
5058 else
51- h5libdir = []
59+ hdf5_libdir = []
5260 endif
5361endif
5462
5563hdf5_libs = []
5664foreach name : [' hdf5' , ' hdf5_fortran' , ' hdf5_hl' , ' hdf5_hl_fortran' , # msys2 names
5765 ' hdf5_serial' , ' hdf5_serial_fortran' ,
5866 ' hdf5_serial_hl' , ' hdf5_serialhl_fortran' ]
59- lib = fc.find_library (name, required : false , dirs : h5libdir ) # , static: use_static
67+ lib = fc.find_library (name, required : false , dirs : hdf5_libdir ) # , static: use_static
6068 if lib.found()
6169 hdf5_libs += lib
6270 endif
6371endforeach
6472
6573
66- if not fc.links(' use h5lt; end' , dependencies : hdf5_libs, include_directories : h5incdir, name : ' HDF5' )
67- hdf5 = disabler ()
74+ if fc.links(' use h5lt; end' , dependencies : hdf5_libs,
75+ include_directories : hdf5_incdir,
76+ name : ' HDF5' )
77+ hdf5 = declare_dependency (dependencies : [hdf5_libs, threads, dl],
78+ include_directories : hdf5_incdir)
6879else
69- hdf5 = declare_dependency ( dependencies : [hdf5_libs, threads, dl], include_directories : h5incdir )
80+ hdf5 = disabler ( )
7081endif
0 commit comments