exp-rs 0.1.0

no_std expression parser, compiler, and evaluation engine for math expressions designed for embedded, with qemu examples
Documentation
# To build for QEMU:
# meson setup build-qemu --cross-file qemu_test/qemu_harness/arm-cortex-m7-qemu.ini -Dbuild_target=qemu_tests
# meson compile -C build-qemu
# meson test -C build-qemu

project('exp-rs', 'c', version: '0.1.2', meson_version: '>=1.0.0')

# Get configuration options
enable_f64 = get_option('enable_f64')

# Set Rust features based on configuration
if enable_f64
  rust_features = ['f64']
else
  rust_features = ['f32']
endif

# Build Rust static library using cargo build
exp_rs_build = custom_target(
  'cargo_build',
  output: 'libexp_rs.a',
  command: [
    'pwd',
    '&&',
    'cargo',
    'build',
    '--target', 'thumbv7em-none-eabihf',
    '--release',
    '--no-default-features',
    '--features', ','.join(rust_features),
    '--lib', '&&',
    'cp',
    meson.source_root() + '/target/thumbv7em-none-eabihf/release/libexp_rs.a',
    '@OUTPUT@',
  ],
  build_always_stale: true,
  install: false,
  console: true,
)

exp_rs_dep = declare_dependency(
  # sources: ['src/ffi.rs'],
  include_directories: include_directories('.'),
  link_with: exp_rs_build,
)

# Include the qemu_test subdir if building qemu tests
if get_option('build_target') == 'qemu_tests'
  subdir('qemu_test')
endif