Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions recipes/polars-mojo/recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
context:
name: polars-mojo
version: "0.1.0"
mojo_version: "=1.0.0"

package:
name: ${{ name }}
version: ${{ version }}

source:
- git: https://github.com/ethqnol/polars-mojo.git
rev: 191381da3c6a0cffba532c5581d38883489d72ea

build:
number: 0
script:
- cargo build --release
- |
TARGET_DIR="target/${CARGO_BUILD_TARGET:-}/release"
if [ ! -d "$TARGET_DIR" ]; then
TARGET_DIR="target/release"
fi
mkdir -p ${{ PREFIX }}/lib
if [ -f "$TARGET_DIR/libpolars_ffi.dylib" ]; then
cp "$TARGET_DIR/libpolars_ffi.dylib" ${{ PREFIX }}/lib/
fi
if [ -f "$TARGET_DIR/libpolars_ffi.so" ]; then
cp "$TARGET_DIR/libpolars_ffi.so" ${{ PREFIX }}/lib/
fi
cp "$TARGET_DIR/libpolars_ffi.a" ${{ PREFIX }}/lib/

- mkdir -p ${{ PREFIX }}/lib/mojo
- mojo precompile molars -o ${{ PREFIX }}/lib/mojo/molars.mojoc
- cp -r molars ${{ PREFIX }}/lib/mojo/molars

- mkdir -p ${{ PREFIX }}/etc/conda/activate.d ${{ PREFIX }}/etc/conda/deactivate.d
- |
cat << 'EOF' > ${{ PREFIX }}/etc/conda/activate.d/molars.sh
export _MOLARS_OLD_LIBRARY_PATH="${LIBRARY_PATH:-}"
export _MOLARS_OLD_LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}"
export _MOLARS_OLD_DYLD_FALLBACK_LIBRARY_PATH="${DYLD_FALLBACK_LIBRARY_PATH:-}"
export LIBRARY_PATH="${CONDA_PREFIX}/lib${LIBRARY_PATH:+:${LIBRARY_PATH}}"
export LD_LIBRARY_PATH="${CONDA_PREFIX}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
export DYLD_FALLBACK_LIBRARY_PATH="${CONDA_PREFIX}/lib${DYLD_FALLBACK_LIBRARY_PATH:+:${DYLD_FALLBACK_LIBRARY_PATH}}"
EOF
- |
cat << 'EOF' > ${{ PREFIX }}/etc/conda/deactivate.d/molars.sh
if [ -n "${_MOLARS_OLD_LIBRARY_PATH+x}" ]; then
export LIBRARY_PATH="${_MOLARS_OLD_LIBRARY_PATH}"
unset _MOLARS_OLD_LIBRARY_PATH
fi
if [ -n "${_MOLARS_OLD_LD_LIBRARY_PATH+x}" ]; then
export LD_LIBRARY_PATH="${_MOLARS_OLD_LD_LIBRARY_PATH}"
unset _MOLARS_OLD_LD_LIBRARY_PATH
fi
if [ -n "${_MOLARS_OLD_DYLD_FALLBACK_LIBRARY_PATH+x}" ]; then
export DYLD_FALLBACK_LIBRARY_PATH="${_MOLARS_OLD_DYLD_FALLBACK_LIBRARY_PATH}"
unset _MOLARS_OLD_DYLD_FALLBACK_LIBRARY_PATH
fi
EOF

requirements:
build:
- ${{ compiler('c') }}
- ${{ compiler('rust') }}
host:
- mojo-compiler ${{ mojo_version }}
run:
- ${{ pin_compatible('mojo-compiler') }}

tests:
- package_contents:
files:
- lib/libpolars_ffi.${{ "dylib" if osx else "so" }}
- lib/libpolars_ffi.a
- lib/mojo/molars.mojoc
- files:
source:
- tests/
script:
- mojo run -I $PREFIX/lib/mojo -Xlinker -L$PREFIX/lib -Xlinker -lpolars_ffi tests/test_arrow_abi.mojo
- mojo run -I $PREFIX/lib/mojo -Xlinker -L$PREFIX/lib -Xlinker -lpolars_ffi tests/test_dataframe.mojo

about:
homepage: https://github.com/ethqnol/polars-mojo
license: MIT
license_file: LICENSE
summary: Polars DataFrame bindings for Mojo via Arrow C Data Interface