Skip to content

Release v1.4.0: Complete emphf integration with full cross-platform support

Choose a tag to compare

@ad3002 ad3002 released this 15 Jun 11:11
· 35 commits to master since this release

πŸš€ Major Release: Complete emphf Integration with Cross-Platform Support

✨ Key Features

  • Complete emphf integration: All sources now local in src/emphf
  • Zero external dependencies: No more cmake, git, or external repo requirements
  • Cross-platform compatibility: Native builds for Linux x86_64/ARM64, macOS x86_64/ARM64
  • Cross-compilation support: x86_64 builds on ARM64 macOS runners in CI
  • macOS compatibility: POSIX-compatible filesystem operations for macOS < 10.15
  • Simplified build system: Single Makefile handles all platforms and architectures

πŸ”§ Technical Improvements

  • Cross-compilation: Added TARGET_ARCH support for building x86_64 on ARM64 machines
  • Architecture detection: Fixed Python platform detection in CI for proper wheel naming
  • POSIX compatibility: Replaced std::filesystem with POSIX code for broader macOS support
  • Build order fixes: Corrected dependency order in ARM64 and standard builds
  • Wheel repair: Simplified macOS wheel repair to avoid delocate conflicts
  • Variable initialization: Proper defaults for all architecture-specific variables

πŸ—οΈ Build System

  • Local sources only: All dependencies bundled in repository
  • Native compilation: No cross-compilation complexity for most use cases
  • Cross-compilation when needed: Automatic x86_64 builds on ARM64 CI runners
  • Automatic architecture detection: Builds optimal version for target platform
  • Faster CI/CD: Reduced build times and improved reliability

πŸ“¦ Distribution

  • Python wheels for all major platforms and architectures:
    • Linux: x86_64, aarch64
    • macOS: x86_64, arm64 (both native and cross-compiled)
  • Source distribution with complete build environment
  • Compatible with Python 3.8-3.12

πŸ› οΈ Build Targets

  • make all: Standard build for current platform
  • make arm64: ARM64-optimized build (Apple Silicon)
  • TARGET_ARCH=x86_64 make all: Cross-compile x86_64 on ARM64

This release represents a complete rewrite of the build system for maximum compatibility and cross-platform support.