Skip to content

Commit afb9f13

Browse files
committed
rework sperr filter build and fix rebase issue
1 parent 750b8ab commit afb9f13

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

Diff for: setup.py

+24-9
Original file line numberDiff line numberDiff line change
@@ -817,27 +817,42 @@ def _get_snappy_clib(field=None):
817817
def _get_sperr_clib(field=None):
818818
"""sperr static lib and sperr filter C++20 source file build config"""
819819
sperr_dir = "src/SPERR"
820-
h5z_sperr_dir = "src/H5Z-SPERR"
821820

822821
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"],
825824
macros=[
826825
("SPERR_VERSION_MAJOR", 0), # Check project(SPERR VERSION ... in src/SPERR/CMakeLists.txt
827826
("USE_VANILLA_CONFIG", 1),
828827
],
829828
cflags=["-std=c++20", "/std:c++20"],
830829
)
831830

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+
832849
if sys.platform == 'win32':
833850
# h5zsperr_helper.cpp is part of the plugin
834851
config["macros"].append(('H5_BUILT_AS_DYNAMIC_LIB', None))
835852

836853
if field is None:
837854
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")
841856

842857

843858
def _get_zfp_clib(field=None):
@@ -918,11 +933,12 @@ def _get_zstd_clib(field=None):
918933
"lz4": _get_lz4_clib,
919934
"snappy": _get_snappy_clib,
920935
"sperr": _get_sperr_clib,
936+
"sperr_filter": _get_sperr_filter_clib,
921937
"zfp": _get_zfp_clib,
922938
"zlib": _get_zlib_clib,
923939
"zstd": _get_zstd_clib,
924940
}
925-
_CLIB_NAMES = {"blosc", "blosc2"} | set(_EMBEDDED_CLIB_CONFIG_GETTERS.keys())
941+
_CLIB_NAMES = {"blosc", "blosc2"} | set(_EMBEDDED_CLIB_CONFIG_GETTERS.keys()) - {"sperr_filter"}
926942

927943

928944
@lru_cache()
@@ -1372,7 +1388,6 @@ def _get_sperr_plugin():
13721388
"compactor.c",
13731389
]
13741390
),
1375-
sources=[f"{h5z_sperr_dir}/src/h5z-sperr.c"],
13761391
include_dirs=get_clib_config("sperr", "include_dirs") + [f"{h5z_sperr_dir}/include"],
13771392
extra_link_args=['-lstdc++'] + get_clib_config("sperr", "extra_link_args"),
13781393
libraries=get_clib_config("sperr", "libraries"),
@@ -1381,7 +1396,7 @@ def _get_sperr_plugin():
13811396
)
13821397

13831398

1384-
PLUGIN_LIB_DEPENDENCIES['sperr'] = ("sperr",)
1399+
PLUGIN_LIB_DEPENDENCIES['sperr'] = ("sperr", "sperr_filter")
13851400

13861401

13871402
_EMBEDDED_PLUGIN_EXTENSIONS = {

0 commit comments

Comments
 (0)