@@ -817,27 +817,42 @@ def _get_snappy_clib(field=None):
817
817
def _get_sperr_clib (field = None ):
818
818
"""sperr static lib and sperr filter C++20 source file build config"""
819
819
sperr_dir = "src/SPERR"
820
- h5z_sperr_dir = "src/H5Z-SPERR"
821
820
822
821
config = dict (
823
- sources = glob (f"{ sperr_dir } /src/*.cpp" ) + [ f" { h5z_sperr_dir } /src/h5zsperr_helper.cpp" ] ,
824
- include_dirs = BuildConfig . get_hdf5_include_dirs () + [f"{ sperr_dir } /include" , f" { h5z_sperr_dir } /include" ],
822
+ sources = glob (f"{ sperr_dir } /src/*.cpp" ),
823
+ include_dirs = [f"{ sperr_dir } /include" ],
825
824
macros = [
826
825
("SPERR_VERSION_MAJOR" , 0 ), # Check project(SPERR VERSION ... in src/SPERR/CMakeLists.txt
827
826
("USE_VANILLA_CONFIG" , 1 ),
828
827
],
829
828
cflags = ["-std=c++20" , "/std:c++20" ],
830
829
)
831
830
831
+ if field is None :
832
+ return config
833
+ if field in ('extra_link_args' , 'libraries' ):
834
+ return []
835
+ return config [field ]
836
+
837
+
838
+ def _get_sperr_filter_clib (field = None ):
839
+ """sperr filter C++20 source file build config"""
840
+ h5z_sperr_dir = "src/H5Z-SPERR"
841
+
842
+ config = dict (
843
+ sources = [f"{ h5z_sperr_dir } /src/h5zsperr_helper.cpp" ],
844
+ include_dirs = BuildConfig .get_hdf5_include_dirs () + ["src/SPERR/include" , f"{ h5z_sperr_dir } /include" ],
845
+ macros = [],
846
+ cflags = ["-std=c++20" , "/std:c++20" ],
847
+ )
848
+
832
849
if sys .platform == 'win32' :
833
850
# h5zsperr_helper.cpp is part of the plugin
834
851
config ["macros" ].append (('H5_BUILT_AS_DYNAMIC_LIB' , None ))
835
852
836
853
if field is None :
837
854
return config
838
- if field in ('extra_link_args' , 'libraries' ):
839
- return []
840
- return config [field ]
855
+ raise RuntimeError ("SPERR filter C++ source lib config is not expected to be used this way" )
841
856
842
857
843
858
def _get_zfp_clib (field = None ):
@@ -918,11 +933,12 @@ def _get_zstd_clib(field=None):
918
933
"lz4" : _get_lz4_clib ,
919
934
"snappy" : _get_snappy_clib ,
920
935
"sperr" : _get_sperr_clib ,
936
+ "sperr_filter" : _get_sperr_filter_clib ,
921
937
"zfp" : _get_zfp_clib ,
922
938
"zlib" : _get_zlib_clib ,
923
939
"zstd" : _get_zstd_clib ,
924
940
}
925
- _CLIB_NAMES = {"blosc" , "blosc2" } | set (_EMBEDDED_CLIB_CONFIG_GETTERS .keys ())
941
+ _CLIB_NAMES = {"blosc" , "blosc2" } | set (_EMBEDDED_CLIB_CONFIG_GETTERS .keys ()) - { "sperr_filter" }
926
942
927
943
928
944
@lru_cache ()
@@ -1372,7 +1388,6 @@ def _get_sperr_plugin():
1372
1388
"compactor.c" ,
1373
1389
]
1374
1390
),
1375
- sources = [f"{ h5z_sperr_dir } /src/h5z-sperr.c" ],
1376
1391
include_dirs = get_clib_config ("sperr" , "include_dirs" ) + [f"{ h5z_sperr_dir } /include" ],
1377
1392
extra_link_args = ['-lstdc++' ] + get_clib_config ("sperr" , "extra_link_args" ),
1378
1393
libraries = get_clib_config ("sperr" , "libraries" ),
@@ -1381,7 +1396,7 @@ def _get_sperr_plugin():
1381
1396
)
1382
1397
1383
1398
1384
- PLUGIN_LIB_DEPENDENCIES ['sperr' ] = ("sperr" ,)
1399
+ PLUGIN_LIB_DEPENDENCIES ['sperr' ] = ("sperr" , "sperr_filter" )
1385
1400
1386
1401
1387
1402
_EMBEDDED_PLUGIN_EXTENSIONS = {
0 commit comments