Build the language fronts

Python is not built in this repository. R and Julia call libseams_lang, which is built with the engine and does not reimplement the classifiers.

Python

pip install pydseamslib
pip install 'pydseamslib[ase]'
python -c 'import pydseams as ds; print(ds.__version__)'

The package is PydSEAMSlib. The compiled module is pydseams.yoda. import pydseamslib is an alias. Do not add a second Python extension to seams-core.

R

export SEAMS_INCLUDE="$PWD/bindings/cxx"
export SEAMS_LIBDIR="$PWD/bbdir/bindings"
export LD_LIBRARY_PATH="$SEAMS_LIBDIR:$PWD/bbdir/src${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
R CMD INSTALL bindings/r/dseams

The package needs cpp11. configure refuses to run without the two paths. The engine is not a CRAN system library, so this is a source package you build against a seams-core checkout.

Julia

CxxWrap is not linked. libcxxwrap_julia is not in the pixi or Nix closure, and building it pulls a Julia sysimage into the link. The front that ships is ccall:

export SEAMS_LANG_LIB="$PWD/bbdir/bindings/libseams_lang.so"
export DSEAMS_ROOT="$PWD"
julia --project=bindings/julia/Dseams -e 'using Pkg; Pkg.instantiate()'
julia --project=bindings/julia/Dseams bindings/julia/Dseams/test/runtests.jl

Tests

meson test -C bbdir seams_lang_fixtures

The Python checks live in PydSEAMSlib. docs/tutorials reruns one cubic-ice count against an installed pydseamslib.