Use separate packages to distribute solver jvm part and native parts.
Split each solver package on -core and a bunch of -native parts. E.g, ksmt-z3-core, ksmt-z3-native-windows-x64, ksmt-z3-native-linux-x64, etc.
The solver base package is an umbrella package that includes core and all native packages. E.g, ksmt-z3 includes ksmt-z3-core and all related native parts.
Changes in ksmt usage
ksmt-<solver> packages behaviour didn't change. Users can still use these packages to include solver for all supported platforms.
The user can include ksmt-<solver>-core and ksmt-<solver>-native-<platform> packages to include solver that only supports <platform>, resulting in a significant decrease in the final distribution size.
The user can include ksmt-<solver>-core only and provide their own solver binaries resulting in a better flexibility with solver versions and supported platforms.
Use separate packages to distribute solver jvm part and native parts.
-core
and a bunch of-native
parts. E.g,ksmt-z3-core
,ksmt-z3-native-windows-x64
,ksmt-z3-native-linux-x64
, etc.ksmt-z3
includesksmt-z3-core
and all related native parts.Changes in ksmt usage
ksmt-<solver>
packages behaviour didn't change. Users can still use these packages to include solver for all supported platforms.ksmt-<solver>-core
andksmt-<solver>-native-<platform>
packages to include solver that only supports<platform>
, resulting in a significant decrease in the final distribution size.ksmt-<solver>-core
only and provide their own solver binaries resulting in a better flexibility with solver versions and supported platforms.